CPU?GPU?
7月終わりに生徒と話をしていて、パーティクルインスタンサーの描画はCPUが行っている!
と話されていたので、改めて記載したいと思います。
まずcpuについて。
cpu(セントラル・プロセッシング・ユニット)とは中央処理装置。
僕らが命令を出した処理を行うのがcpuです。
cpuに関してはアルケミーブログの記事を参照して下さい。
CGマシンを購入する時のスペックまとめ ~CPU編~
次に、GPU(グラフィック・プロセッシング・ユニット)とはPCの画像描画を担当します。
GPUは主にグラフィックカードと呼ばれるハードウェアの中に搭載されているプロセッサが計算しています。
(今は、CPUでも行っていますが。サンディブリッジ世代からグラフィックも担当)
グラフィックカードの性能によって描画性能が大幅に変わります。
Mayaであれば推奨はQuadroです。
高価なグラフィックカード程、メモリ容量、CUDA*のコア数、メモリ帯域などが変わってきます。
*CUDAについてhttp://www.nvidia.co.jp/object/cuda-jp.html
平たく言うと高価なグラフィックスカード程、描画速度が速い!
どのぐらい描画性能が違うか?
以下はmayaでの描画性能をグラフィックカード別に検証されていた動画です。
そして以下のリンクはSPECViewperf*のグラフィックカード性能のテスト結果です。
http://www.tomshardware.com/charts/workstation-graphics-2013/18-OpenGL-SPECViewperf11-Maya-03,3294.html
*SPECViewperf…OpenGL のベンチマークツールです。
そして次に、OpenGL、DirectXが絡んできますが、これは割愛します。
お時間ある方は是非調べて見て下さい。
まとめると、
こちらの命令 → CPU計算 → グラフィックカード計算
になっているかと思われます。
CPUが処理計算をするので間違ってはいないですが、GPUが描画を行う為
インスタンサーのみがCPU依存という事はなさそうです。
もちろんメモリも介在するため、大規模なシミュレーションやシーンデータ構築などは
大容量のメモリを積んだ方が良いかと思います。
GPUとCPUについては、まだまだGPU性能が画面描画性能を引き上げていますが、
今後新しいCPUが開発されるにつれ、GPUの役割を担っていくかと思われます。
下は現在までのcpuがgpuの性能をどのぐらい上げているかという図になっています。
http://pc.watch.impress.co.jp/img/pcw/docs/598/169/html/03.jpg.html
上記内容に関して、間違っている箇所がありましたら申し訳御座いません。
おまけ。
大澤