ニュース

自動車向けの開発ソリューションを加速するNVIDIAのQuadro/Tesla

GPUの仮想化で開発効率の向上やコスト低減も提供

NVIDIAのデータセンター用GPUとなるTesla

 半導体メーカーNVIDIAの日本法人となるエヌビティア ジャパンは、自社の自動車向けソリューションを顧客に対して紹介するプライベートイベントを開催した。現在自動車産業では急速なIT化が進んでおり、自動車を開発する過程でのIT化、そして自動車に搭載されているIVI(In-Vehicle Infotainment)やメーターパネルなどのIT化といった車両側のIT化という2つの側面でIT化が進んでいる。このため、世界中の半導体メーカーが日本の自動車メーカーに対して熱心に売り込みをかけている状況だ。

 そうした中でNVIDIAは、開発過程のIT化、車両そのもののIT化の両方の市場に対して半導体を提供するユニークなポジションにある。開発過程のIT化という観点では、Quadro(クアドロ)やTesla(テスラ)といった演算能力の高い半導体を、CAE(Computer Aided Engineering)と呼ばれるコンピュータを利用した製品設計の支援業務向けに提供しており、非常に高いマーケットシェアを獲得している。車両そのもののIT化という観点では、Tegra(テグラ)と呼ばれる半導体を自動車メーカーに対して提供しており、同社の強みの1つであるGPU(Graphics Processing Unit、画像処理装置)という並列演算が得意なプロセッサを利用したCUDAというプログラミングモデルなどを利用して、ADAS(Advanced Driving Assistant System、先進運転支援システム)などで必要とされる高い画像処理能力を実現することが可能になっている。

 本リポートでは、そうしたエヌビティア ジャパンが開催したプライベートイベントで紹介された自動車向けソリューションのうち、主にCAEなど自動車の開発過程でのIT化に向けたソリューションを紹介していきたい。

CAEを活用した研究、開発を行う自動車メーカーで重要性を増すGPU

 多くの読者にとっての自動車開発といえば、デザイナーが図面で絵を描き、それを元にスケールモデルを作って風洞に入れて開発をしていく……そういうものではないだろうか。だが、もはやそれは過去のものになりつつある。現在の自動車開発には、どんどんとコンピュータが取り入れられている。

 最初のデザインから最終的なイメージモデル、そして風洞の代わりにCFD(Computational Fluid Dynamics、数値流体力学)と呼ばれるシミュレーションが利用されて、最初から最後までコンピュータを利用してデザインされるというのも珍しくなくなりつつある。

 このようにコンピュータを利用して製品の設計開発を支援することはCAEと呼ばれ、自動車メーカーにとってはスケールモデル(実車の数分の一の大きさとなる模型のこと)を作るコストや手間、時間などを削減できるため、よりタイムツーマーケットで製品を投入でき、各社とも導入を進めている。

 そうしたCAEを利用する自動車メーカーにとっての課題は、CAEの効率改善だ。というのも、競合他社よりも効率のよいCAEシステムを構築することができれば、他社に比べて開発期間を短縮することができたり、開発コストを引き下げることができるので、結果として価格競争力で優位に立つことができるからだ。従って、各社ともCAEシステムの効率改善に日々取り組んでいるような状況だ。

 そうした自動車メーカーが最近注目しているのが、NVIDIAのようなGPUメーカーが提供する、GPUコンピューティング(あるいはGPGPUなど)と呼ばれるGPUを利用した汎用演算だ。一般的なPCだけでなく、企業内のサーバー、あるいはクラウドサーバーでは、これまで一般的に演算に利用されてきたのはCPU(Central Processing Unit、中央演算装置)だ。CPUはプログラムのコードを次々に実行していくような従来の演算方式では高い処理能力を持っているのだが、複数の処理を並列演算するような場合は、効率はあまりよくないというのが現状だ。

エヌビディア ジャパン プラットフォームビジネス本部 部長 林憲一氏、手に持つのは同社のデータセンター向けのGPU製品となるTesla

 それに対してNVIDIAなどが提唱しているのがGPUを利用した汎用演算であるGPUコンピューティングでは、そうした並列処理をCPUを利用して行う替わりにGPUを利用して処理を行う。GPUというのは、その名のとおり、本来はグラフィックスを専用に処理するために開発されたプロセッサだ。しかし、グラフィックスの処理というのは、同じような処理を並列して行う仕組みだったため、内部の構造がプログラムを並列実行するのに適した構造になっていた。そこで、このGPUをグラフィックスだけでなく汎用(General Purpose)に利用していこうという取り組みがGPUコンピューティングの基本的な考え方になる。処理によってはCPUで処理する場合に比べて「倍精度浮動小数点演算で2~5倍程度」(エヌビディア ジャパン プラットフォームビジネス本部 部長 林憲一氏)の処理能力で実行することが可能になる場合もあるのだ。

CAEに対応したアプリケーションソフトウェアのGPU対応が進んでいる。
従来はCPUだけで行われていた処理を、並列処理するものはGPUで行い、逐次処理するものはCPUで行うと性能を最大化することができる、これがGPUコンピューティングのコンセプト
GPUを利用するとCPUだけの場合に比べて2~5倍に性能が向上

CPUで処理する場合よりも高い処理能力を発揮するGPUを利用したCAE

 もちろん、そうしたCAEに利用するアプリケーションがGPUを利用した処理に対応していなければ意味がないが、エヌビディア ジャパンの林氏は「すでに主要なCAEアプリがGPUを利用した処理に対応しつつある。Abaqus、ANSYS FLUENT、ANSYS Mechanicalなどといった製品がすでにGPUを利用して演算に対応している」と紹介し、CAEに利用されるプロユースのアプリケーションの多くもGPUを利用した処理への対応が進んでいるという。

 自動車メーカーなどでよく利用されているCAEソフトウェアのAbaqus/Standardでは、2011年の6月にリリースされた6.11でGPU演算のサポートが追加され、2012年6月の6.12でマルチGPUなどの機能が追加になり、2013年6月の6.13で最新GPUサポートの追加などどんどんと機能が増えていっているという。そして、実際の処理を利用したベンチマーク結果では、1DMP処理の場合にはCPUだけとCPU+GPUという処理を比較すると後者が3.3倍高速に処理でき、2DMP+Split処理の場合にはCPUだけとCPU+GPU処理を比較すると3倍ほど後者が高速だという。

Abaqus/StandardのGPU対応の履歴
AbaqusにおけるCPUのみの場合と、GPUを利用した場合のパフォーマンス

 GPUを演算に利用するもう1つのメリットは消費電力だと林氏は指摘する。「GPUを追加すると、CPUだけに比べて見た目の消費電力は増えるが、その分だけ処理が速く終わり、結果的に消費電力が下がることになる」として、処理能力が向上しつつ、消費電力が低下することこそがGPUを導入するメリットであると説明した。

消費電力を示すグラフ。GPUを利用するとピーク時の電力は上がるが、処理は速く終わるのでトータルでの消費電力は減ることになる
ANSYS FluentでGPUを有効にする方法
ANSYS Fluentでのベンチマーク結果。CPUだけの場合に比較して最大5.9倍も短い時間で処理を終えることができる
ANSYS Fluentでの消費電力の比較。青がCPUだけ、緑がCPU+GPU
CAE向けのNVIDIAの製品ラインアップ、K20(メモリ5GB)、K20X(メモリ6GB)、K40(メモリ12GB)という3つの製品が用意されている

 ゲストとして招待されていたダッソー・システムズは、RTT(Realtime Technology)から買収した3DCGツールの製品群“3DXcite”の紹介を行った。3DXciteを利用すると、写実品質でのCGを作成し、それを製品開発に役立てることができるほか、製品開発後、マーケティング段階に入ったときにも、3DXciteを利用して作成したCGイメージを元に実車イメージの広告を作るなど、さまざまな使い方が考えられると説明した。

 ダッソー・システムズのブースでは、作成したCGのイメージをNVIDIAのGPUを利用してレンダリングすることで、高速に動かすことができる様子がデモされていたほか、データをクラウドサーバーに置き、ユーザーや販売店のタブレット端末からイメージを動かしたりという使い方が考えられるとの説明があった。

 また、3DXciteを利用して作成された衝突実験のシミュレーションの様子もデモされた。言うまでもなく自動車メーカーにとって、安全性の確保は最大のテーマであり、自動車が衝突した時にどのように壊れていくかを調べることができる実験は欠かせない。しかし、実車を作ってテストしなければならないため、多大なコストがかかることになる。3DXciteのようなシミュレーションを使えば、かかるコストはIT関連のコストだけですむことになり、何度も試験をやり直したり、少しずつ条件を変えながら、すぐにテストを行うことができるので要注目と言える。

CGツールを利用してプロトタイプを作成することは、単なる開発だけでなく、マーケティングにも活用できる
3DXciteを利用すると、開発とマーケティングが連動して製品にCGを活用することができる
このような広告も3DCGを活用することで、実車がなくても作ることができるようになる
3DXcite Deltagenを利用しての衝突実験のシミュレーションモデル。追加コストなく何度でもテストすることができるし、車両の内部がどうなっているのかを自由な角度から見たりなどさまざまな使い方が考えられる
3DXciteを利用してプロトタイプのCGを4K(3840×2160ドット)モニターに表示しているところ。6つのGPUをクラスタ化してレンダリングしている。4Kモニターのような高精細なモニターを利用することで、プロトタイプの説明などがより説得力持つことになる
作成したCGはマーケティングにも活用できるという例。これはタブレットのクライアントからクラウドにおいてある3DCGデータにアクセスしてクルマの質感などをエンドユーザーに説明できるシステムの例
会場ではNVIDIA 自動車事業部 事業部長のダニー・シャピーロ氏が来日し、顧客に対して同社製品の説明を行っていた
このようにタブレットやPCを利用してクラウド上に展開されているCGデータにアクセス。さまざまなアングルから写真クオリティで自動車をプレゼンできる

ワークステーション効率化を実現するGPUの仮想化

 エヌビディア ジャパン エンタープライズソリューションプロダクト事業部 ソリューションアーキテクスト 澤井理紀氏は、NVIDIAが推進するGRID vGPUのソリューションについての説明を行った。

 現在IT業界では、仮想化技術の導入が、特にサーバーを中心に進んでいる。仮想化技術というのは、本来、ソフトウェアというのはある特定のハードウェアに限定して作られているのだが、そのソフトウェアとハードウェアの中間に仮想化ソフトウェアと呼ばれる層を1つ増やすことで、ソフトウェア(具体的にはOSと呼ばれる基本ソフトのこと)がどのハードウェアでも動くようにする技術のことだ。VMware(ヴィエムウェア)やCitrix(シトリックス)などがその代表的なソフトウェアで、現在企業のデータセンターに設置されているサーバーなどで普及が進んでいる。

 一般的には仮想化技術はサーバー側に利用されることが多いが、最近ではクライアントと呼ばれるユーザーが利用するPC環境にも利用される例が増えている。その代表的な使い方がVDI(Virtual Desktop Infrastructure)で、データセンターに仮想的なPC(仮想マシン)を作成し、それをユーザーの手元にあるクライアント(PCに限らず、タブレットやシンクライアントなどを含む)からリモートアクセスして利用する使い方の導入を進める企業が出てきている。

 そうしたVDIで課題になっているのが、GPUの仮想化をどうするかだ。一般的に仮想化ソフトウェアの上で動作する仮想マシンというのは、仮想化ソフトウェアに対して処理のリクエストを出して、それを仮想化ソフトウェアが変換して物理的なCPUや、GPUなどに処理を投げるという形になっている。すでにCPUに関しては、仮想マシンとハードウェアのやりとりをバイパスして処理させる方法が一般的になっているのだが、GPUに関してはこれまでそうした方式が用意されておらず、例えばワークステーションのように、CPUよりもGPUを使うことが多いというマシンは仮想化に対応させることができていなかった。

 しかし、NVIDIAが導入するGRID vGPUは、そうしたグラフィックスの処理を直接ハードウェアに対して依頼できる仕組みが用意されている。仮想マシンにはNVIDIAが提供するグラフィックスドライバがインストールされ、エンドユーザーは物理的なGPUがあるのと同じ感覚で利用することができる。澤井氏は「物理的なGPUとしては4つのGPUが搭載されているGRID K1と、ハイエンドのGPUが2つ搭載されているGRID K2の2つのラインアップがある。その1つのGPUを複数の仮想マシンからリソースをシェアすることも可能で、プロファイルによるが1:1から1:8まで対応が可能だ」と述べ、1つのGRIDカードをデータセンターに投入するだけで最大で32の仮想マシンからGPUを利用することが可能だと説明した。

 つまり、従来は各々のユーザーの机に置いてあった巨大なワークステーションPCを、データセンターのブレードサーバーの中に仮想化して移動、かつ1つのGPUを複数ユーザーでシェアすることができるという。これまでならユーザーがワークステーションを使っていないときには、そのワークステーションに搭載されているGPUの処理能力は無駄に死蔵されていたが、GRID vGPUを使って仮想化すればリソースの有効利用という観点でも大きな意味がある。

 すでにこのGPU仮想化のソリューションはデンソー ディーゼル噴射事業部で導入事例があり、vGPUではなく、vDGA(GPUパススルー方式、物理的なGPUとの割り当てが1:1に限定されるGPU仮想化)によるシステムが構築されているという。それにより、大幅な運用効率の改善が実現できている。

 澤井氏によれば、現在NVIDIAは仮想化ソフトウェアベンダのVMwareと協力して、VMwareが2015年にリリース予定の仮想化ソフトウェア「VMware vSphere」でのvGPUサポートをいち早くテストする機会を提供しており、すでにNVIDIA GRIDを搭載したサーバーを運用している企業であれば早期アクセスプログラムに参加できるということだった。

従来の設計環境ではエンジニアの机に置かれているワークステーションからデータセンターにアクセスして、データの処理は基本的にローカルで行われている
リモートアクセスをできるようにすると、職場のワークステーションにリモートでログインして行う形になる
複数台をまとめてリモートアクセスできるようにしても、ワークステーションを複数台用意すると、スペースや排熱の問題は解決できない
NVIDIAのGRIDワークステーション仮想化を利用すると、ワークステーションを1つの仮想GPUサーバーに統合することができる
GRID向けには2つのSKUが用意されている。1つは192の演算エンジン(CUDAコア)を持つKepler世代のGPUが4つオンボードで搭載されているGRID K1(合計768演算エンジン、4GBメモリ、130W)、もう1つが1536演算エンジンを持つKepler世代のGPUが2つ搭載されているGRID K2(合計3.072演算エンジン、8GBメモリ、225W)
NVIDIAのGRID K1を搭載したサーバーを販売しているベンダ
NVIDIAのGRID vGPUを利用すると1つのGPUを複数の仮想マシン(VM)から共有することができる
NVIDIAのGRID vGPUではGPUをハードウェアレベルで仮想化し、それぞれの仮想マシンにNVIDIAのドライバーがインストールされるのでOpenGLやDirect3Dなどの最新のAPIとの互換性も保証される。現在はXenServerで利用できるが、来年にはVMwareのvSphereで利用可能になる予定
それぞれの製品にプロファイルが用意されており、仮想マシンからどのように使うかを定義できる
GRID vGPUのプロファイルの例。1:1から1:8まで4種類の組み合わせが用意されている
デンソーでの導入事例。GRID K1、GRID K2とVMwareを利用して、vDGA(GPUパススルー)という1:1の仮想化になる方式で実現されている
VMware vSphereでのアーリーテストプログラムが現在行われている
NVIDIA GRIDの展示。仮想ワークステーションをクラウド上に展開することができるようになる

エンドユーザーのレンダリング速度を向上させることができるVCA

 また、エヌビディア ジャパンの澤井氏はNVIDIAが推進するVCA(Visual Computing Appliance)についての説明を行った。VCAとはNVIDIAが発表した複数のGPUをラックサーバーにまとめて提供するアプライアンスサーバーで、エンドユーザーはリモートからVCAにアクセスすることで、GPUの演算能力をCGのレンダリング(描画)に利用することができる。

 自動車メーカーにとっては、CAEが一般的になる中、エンジニアのワークステーションにより性能の高いGPUを導入することは、エンジニアの仕事の効率化にとって重要になりつつある。なぜかと言えば、GPUの処理能力が高ければ高いほどレンダリングにかかる時間が短くなり、それだけエンジニアが次の仕事を行うまでの待ち時間が減ることになるからだ。しかし、仮想化のところで説明した通り、それぞれのエンジニアのワークステーションに高価なGPUを導入するのは性能的には最もよい解決方法だが、課題はコストと資産の有効活用という点にある。あるエンジニアが出張に行っている間、そのエンジニアのワークステーションに入っているGPUは、何にも使われていないことになってしまうからだ。そこで、GPUの仮想化と同じように、レンダリングに利用する複数GPUを1つのラックサーバーにまとめて、レンダリング処理だけをネットワーク経由で渡すという使い方をできるようにして、複数のユーザーがGPUの処理能力を共有できるようにしたのがVCAということになる。

写実クオリティの3D CGの最大の課題はレンダリングにかかる時間
その解決方法として用意されるのがVCA
VCAの構成。GPUを搭載した拡張カードが4Uラックサーバーに8枚も入っており、CUDAコアと呼ばれる演算エンジンは2万3040個も内蔵していることになる
巨大なデータを持つ写実クオリティの自動車を、CPUだけでレンダリングした場合には開始してから22.5分もかかるが、VCAを利用すれば11.6秒で、さらにVCAを16台用意すれば0.7秒でレンダリングできるのでほぼリアルタイムに活用できる
別のアニメーションのレンダリング時間では、GPUが2枚あるような環境では11.25時間かかっていたのが、VCAを利用すると2.25時間、VCAが16台のクラスタリング環境ではわずか9分になる

 澤井氏によれば、3D CGアプリケーションなどからVCAを利用してレンダリングする場合には、アプリケーション側にVCAに対応したIrayないしはV-Rayプラグインが必要で、それを利用することでレンダリングをリモートに行うことができるということだった。例えばV-Rayプラグインは3ds MAX、Mayaに関しては既に提供されており、Rhino、SketchUpに関しては対応予定であることがすでに明らかにされているという。

 なお、デモコーナーでは、Dassault Systemesの3D CADアプリケーションのCATIA V6から、VCAを利用したリアルタイムレンダリングの様子が実際にデモされており、来場者が触って試せるようになっていた。

NVIDIAのIrayを利用することで写真品質のレンダリングを行うことができるようになる
右側がIrayを利用してレンダリングした3D CG。左側の写真と比較してもどちらがCGか分からないほど
V-rayプラグインの仕組み
VCAの展示。クライアントで動いているCATIAからVCAに内蔵されたGPUの処理能力を利用してレンダリングすることができる
VCAのラックマウントサーバー。8枚のGPU搭載拡張カードが内蔵されている

(笠原一輝/Photo:安田 剛)