Houdiniの実行処理について色々RnDする機会があったので
少し共有したいと思います。
実行環境は...
Ubuntu 16.04 LTS
Houdini16.0.633
VEX(SIMD) VS OPENCL(GPU&CPU)
今回はSphereを動かす処理をテストしたいと思います。
Test_Hip fileも今回はシェアします。
中身はこんな感じになってます。
SIMDや並列/並行処理に少し慣れてきたので..ちょっと比べてみよ〜と思いました。
sin,cosで円運動を簡単に実装させたものをそれぞれ、50f M_Playで書き出してみます。
GPUプログラマーの方々のアウトプットを見させていただくと...
CLのパフォーマンスを体感できるのは
条件によってかなり変わってくるとのこと...
プログラム次第でもかなり変わってくるらしいです。
これからRnDしていく目標を的確にする目的もあり
今回のtipsを書きました。
OpenCLは...
:CPU
:GPU
それぞれ比べてみました。
OPEN_CL_TYPE = CPU
:CPU_VEX(wrangle)
Total : 16.298s
Viewport : 15.746s
Node : 0.552s
:CPU OPEN_CL
Total:16.145s
Viewport :14.189s
Node : 1.956s
:CPU_Compiled OPEN_CL
Total : 17.188s
Viewport : 14.180s
Node : 3.008s
OPEN_CL_TYPE = GPU
:GPU_VEX(wrangle)
Total:14.866s
Viewport :14.331s
Node : 0.534s
:GPU OPEN_CL
Total:16.280s
Viewport :14.611s
Node : 1.669s
:GPU_Compiled OPEN_CL
Total:15.954s
Viewport :14.265s
Node : 1.688s
ViewCockが不安定であまり参考になりませんが
NodeCockに注目してみてください。
まとめてみます。
50fps Anim_NodeCock
:CPU
VEX - 0.552s
OpenCL - 1.956s
Comed OpenCL - 3.008s
:GPU
VEX - 0.534s
OpenCL - 1.669s
Comed OpenCL - 1.688s
VEX(SIMD)強しですね笑
実行環境,PCスペック
僕自身のカーネルプログラムがダメかもしれないんですが...
結果だけ見ると
MainオペレーションはSIMDがベストという結論になりますねwww
並列/並行処理をうまく使うには
Model、実行環境、プログラムがうまいこと絡み合わないとパフォーマンスがうまく出てくれないですね...
OpenCLのMasterClassがなかなか出ない理由がわかった気がします笑
難しいです。