田中ゼミではGPUと呼ばれるグラフィックス専用のハードウェアを使って3DCGを生成しています.
GPUそのものは,最近では特殊なものということはなく,現在市販されているPCには必ず搭載されていると考えてよいでしょう.(もちろんそれぞれ性能の差はありますが)
田中ゼミで使用するGPUは,高速かつ複雑なプログラムを実行できる高性能なものを使用しています.
今回はNVIDIA社製のGeForce GTX 480(1.5GB)と GeForce GTX 460(1GB)という最新型を導入しました.いずれも新しいFermiベースのアーキテクチャを採用しています.
こちらは今回導入したGeForce GTX 480 です.
こちらは,そのGTX480をPC本体に取りつけている様子です.ゴツいヒートパイプがその発熱量を想像させてくれます。
こちらの写真は古いGPU(GeForce GTX 295)から新しいGPU(GeForce GTX 480)に交換したところです.取り外された古いGPUは,まだ現役でも十分使える高性能なものなので他のPCに移植されます.
次にGPUのデバイスドライバをインストールしている様子です.OSはFreeBSD 8.1-stableで,ドライバのバージョンは256.44をインストールしました.
設定が全て完了したので,田中ゼミで開発しているデジタルアーカイブシステムを使って日本刀の3DCG再現をしてみました.
田中ゼミの開発中のこのシステムでベンチマークテストを行って,どれくらい3DCGの生成速度が速くなったのかを調べました.
今回,グラフィックスボードを新しくしたら,
- 旧GPU(GTX 295, ただし1GPUのみ使用) : 毎秒50フレーム(50FPS)程度
- 新GPU(GTX 480): 毎秒150フレーム(150FPS)
となり,なんと! 3倍も速くなりました.
次に田中ゼミで開発しているGPGPUによるレイトレーシングシステムでベンチマークテストを行って,どれくらい3DCGの生成速度が速くなったのかを調べました.
こちらは、より複雑な反射や透過をする物体を3DCG再現できるように昨年度の後半から田中ゼミで新しく開発を始めたソフトウェアです.
高精度に多重反射や透過処理が表現できるCGソフトウェアなのですが,複雑な計算処理を行うため高速かつ大容量のメモリを搭載したGPUを必要としています.
この写真は, このシステムで3つの球体を3DCGで再現している様子です.
しかし,こちらの場合はグラフィックスボードを新しくしても,
- 旧GPU(GTX 295, ただし1GPUのみ使用) : 毎秒25フレーム(25FPS)
- 新GPU(GTX 480): 毎秒30フレーム(30FPS)
となって20%程度しか速くなっていません.
田中ゼミで使用している古いGPU(GTX295)は2つ搭載されているうちの1個のGPUしか使っておらず十分な性能を出し切れていないので,本来であれば新しいGPU(GTX480)にすれば,もっと速くなってくれるはずでした.
この原因をいろいろ考察しました.
田中ゼミではGPGPUに関しては,GLSLという言語を使ってソフトウェア開発を行っています.
複雑な反射や透過を繰り返すようなCGを表現するためには一般的なCG生成処理ではなく,より複雑な処理が記述できるGPGPUによる処理が必要です.
しかし,本来GLSLは一般的なCG生成処理を想定しており,GPGPU処理用に使われることを,それほど想定していません.
そのため,田中ゼミで開発しているソフトウェア用に十分にチューニングできていないからだろうと推測できます.
今後,より細かい処理の記述が可能なCUDAを使用していく必要性を感じました.
※上の写真にもCUDAの入門書が写っていますが...
と,いうことでこれから現在開発中のシステムをCUDAに移植していくことになりました.
前途多難です.
今回の記事が面白いと思った方は以下のボタンをクリックして下さい.