Your 3D

Blender2.8 Cyclesレンダリングの速度検証【GPU+CPU使用】

BlenderのCyclesレンダーの速度を検証してみました。

Blender2.8には、以前のVersionから実装されたCyclesレンダーと、新たに実装されたEeveeレンダーの2つがありますが、今回はCyclesレンダーに絞って、レンダリング速度の検証を行います。

具体的には、Cyclesレンダリング時GPU・CPUを使用し、タイルサイズ設定を調整することで、どのくらいレンダリング時間に差がでるかを調べます

<本記事の対象者>

・Blenderでレンダリングしたい方全般

・GPU、CPUの使い分けによってどのくらい速度が変わるか知りたい方

 

スポンサーリンク

CyclesレンダーのCPU、GPUによるレンダリング速度の検証

レンダリングに使用したPCのスペック

今回使用した環境は以下の通り。

<使用PC環境>・CPU:Intel Core i7 8700

・GPU:GeForce GTX 1060 6GB

・Blender 2.80

だいたいのスペックを知ってもらうために簡単に説明します。

 

CPU約4万円。12スレッドあるので、最大12個のタイルを平行して処理することができます

 

GPUは約3万円。2019年のゲーミングPCのなかでは、中の下ほどのスペックかと思います。

 

CPU・GPU使用によるレンダリング速度検証の結果

検証のために今回使用するのはBlender公式が公開しているデモシーンです。以下のリンクからダウンロードすることも可能です。

Demo Files — blender.org
Home of the Blender project - Free and Open 3D Creation Software

レンダリング結果はこんな感じ。めちゃくちゃクオリティが高いです。

 

それではさっそく検証結果の報告に入ります。

結果は以下のようになりました。

使用環境 タイル レンダリング時間
CPU 32×32 4分38秒
GPU 256×256 2分34秒
CPU+GPU 16×16 1分36秒
CPU+GPU 32×32 1分40秒
CPU+GPU 64×64 1分53秒
CPU+GPU 128×128 2分38秒
CPU+GPU 256×256 6分47秒

 

最速はCPU+GPUの16×16タイル設定となりました

タイルサイズを大きくするほど、CPUで処理しているタイルのレンダリング時間がかかってしまい、結果として遅くなっています。

これはレンダリング時のCPU、GPU、タイルの性質を知っている方なら予想できた結果でしょう。

 

よほどCPUとGPUのスペックに差がない場合は、CPUとGPUを併用してレンダリングした方が速くなるはず。。。(数十万円以上離れたら話は別)

 

以下の記事でも同様の検証を行っているので、PCスペックの比較に大変参考になりました。

https://water2litter.net/rum/post/pc_blender_cpu_gpu/

 

検証結果の報告はここまでになります。

以下ではレンダリングにおけるCPUとGPU、レンダリングタイルについての解説をしていきます。

まだレンダリングについて詳しくわからない方はぜひこの機会に知っていってください。これを知っておくとレンダリング時の設定が自分で行えるようになります

 

 

スポンサーリンク

レンダリングにおけるCPU・GPU・タイルサイズの関係

レンダリング時にCPUとGPU、タイルサイズについての関係を知っておくことで、レンダリングを行う際に的確な調整を行えるようになります。

CPU・GPUの特性

まずはじめにCPUとGPUの特性について理解しておきましょう。

レンダリングにおけるCPUとGPUの挙動は以下のようになります。

 

CPU:複数のタイルを平行して処理できる(コア数、スレッド数に依存)

GPU:1つのタイルを高速に処理できる

 

CPU、GPUの特性はこのことを覚えておけばOK。

次にタイルサイズについて解説します。

 

レンダリング時のタイルサイズの設定

タイルサイズレンダリング時に1度に処理するピクセルサイズのことを指します。

Blender2.80では以下のように設定します。

[プロパティ]>[レンダー]>[パフォーマンス]>[タイル]

 

タイルサイズが256×256ということは、レンダリングしたい画像を256×256ピクセルの正方形のタイルで分割してレンダリングしていくことになります。

タイルサイズはレンダリング時にオレンジ色の枠として表示されています。

 

CPU・GPUとタイルサイズの設定

以上のことから、CPUは小さいタイルサイズを平行に処理していくのが可能。GPUはタイルサイズに依存せずに高速な処理が可能ということがわかります。

 

例えば、1000×1000の画像をCPU(スレッド数10)のみでレンダリングするときを考えてみると。

タイルサイズ(100×100)で100タイルに分割して処理〇(10スレッドを平行して処理が可能)

タイルサイズ(1000×1000)で1タイルとして処理×(使わないスレッド数(9)だけ無駄になる)

 

ちなみにGPUはタイルサイズを変更しても差は出ません、と思っていたのですが、GPUのみ使用でもタイルサイズが小さい方が速い結果になりました。(256×256:2分34秒、16×16:2分14秒)

 

CPUのみ、GPUのみ、CPU+GPUのみの全パターンにおいてタイルサイズは小さい方がレンダリング速度が速い結果となりましたので、参考にしていただければ幸いです。

 

最後まで読んでいただきありがとうございました。