【CG】CyclesレンダーのGPUレンダリングが遅いときは、[タイル]値を大きくしてみる【Blender】
ここしばらく思っていたのですが、Blender 2.7xのGPUレンダリングが速くない。
「遅い」とあえて言わなかったのは、3DビューのプレビューレンダリングはGPUのほうが速いんです。
でもF12キーの方のちゃんとしたレンダリングだとCPUと同等か、なんならGPUの方がちょっと遅い。
気になっているのはレンダリング中のタイルの数。CPUは8こ出るんですが、GPUのときは1こでシコシコ頑張るもんだから1vs8ではいくらGPUだってどう見ても分が悪い。これせっかくCUDA使ってるのに一気に1024タイルを処理したりはしないの? V-Rayみたいにジワ~ッって。
私のPCのGPUはNVIDIA GeForce RTX1060、CPUはこの前Core-i7 9700(8スレッド8コア)ですので、ミドルエンドGPUとハイエンドCPUではちょっとあれなのかな?
んー。なんてむりやり自分を納得させようとしましたがそれでも腑に落ちないので調べてみると、K06のBLOG様のサイトにはGPUレンダリングのときはタイル数を大きくしたほうがよいとのこと。
試したらそのとおりでした。
K06のBLOG様のサイトにはCPUとGPUにおけるタイル数とレンダリング時間のデータが良く載っていまして、大いに参考になりました。
やり方
[レンダリング]→[パフォーマンス]→[タイル]の[X]と[Y]の値を変更します。デフォルト値は64です。
必ず2の乗数にしましょう。64、128、256、512、1024、・・・の値です。(設定できないわけではありませんが理論上は最適処理されなくなるはず。)
私のPCでは、256タイル以上はほぼ同じ時間でした。512以上にして何度もレンダリング作業をしているとCuda Memory Allocエラーが時々出てしまうので不安定ですね。256
・GPUレンダリングの同時作業タイル数は、GPU数とのことです。ですので一般的な利用者は1個だけなのですね。
検証比較
私のPCで実際に比較してみました。
①CPU 64タイル(デフォルト)、②CPU 512タイル、③GPU 64タイル、④GPU 512タイルの4つです。
結果
・④GPU タイル512pxがダントツでした。
・③GPU タイル64pxが最も遅い。やっぱり!
・GPU タイル1024px以降ですが、グラボによって変わってくると思われますので参考程度に。
・CPUはタイルが大きいほど遅い。基本は小さいほど速くなりますが、8pxとか小さすぎると遅くなりました。(途中でやめたけど明らかに遅いことだけはわかった。)
Device | Tile | Time [Sec] |
---|---|---|
CPU | Tile= 64 | 6:52 |
CPU | Tile= 512 | 8:33 |
GPU | Tile= 64 | 9:43 |
GPU | Tile= 512 | 4:24 |
GPU | Tile=1024 | 5:03 |
GPU | Tile=2048 | 6:03 |
このデータを得て最終的に私はレンダリング時間が半分以下になりました。(9:43→4:24)
めでたしめでたし。
私のマシンスペック
H/W | Spec |
---|---|
CPU | Intel Core i7 9700 3.00 GHz |
RAM | 16 GB |
GPU | NVIDIA GeForce RTX1060 3GB |