lucille v.s. 3delight: Shader performance

by syoyo

OK, next is the comparison of (programmable) shading perfomance.

Condition

– Mandelbrot shader
– 1 shading sample per pixel
– Rendering 512×512 one quad polygon
– Rendeting with 1 thread(1 core)

For lucille, JIT Shader was used.

Here is the mandelbort shader code.

Result

lucille_mandel.png
(0.43 secs, lucille JIT shader engine)

mandel_3delight.png
(5 secs, 3delight 8.0.1)

There’s a differences on gradation, but I believe same amount of shader execution was done for both case.

Surprisingly, lucille’s JIT shader could execute mandelbort shader 11x faster than 3delight!
(exclude time for compiling mandelbrot shader)

[Ja]

レイトレのパフォーマンス比較の次として、シェーダのパフォーマンスも lucille と 3delight で比較してみました.
lucille の方は正確には、現在はまだ統合されていなくて別プログラムとなっている JIT shader engine を利用.

結果はなんと lucille が 3delight に比べて 11 倍.
(シェーダコンパイル時間は双方除く)

LLVM のおかげ、というのもありますが、
インタプリタ実行(3delight はインタプリタ実行のはず)よりもネイティブ実行のほうがやはりパフォーマンスが出るという予測は正しかった.
(インタプリタでも reyes のコヒーレンシを生かして SIMD 実行すればインタプリタのオーバーヘッドは無視できるというのがインタプリタ派の意見)

なんかシェーディング結果にちょっと違いがあるのですが(グラデーションまわり)、
演算量はどちらも同じはずなのでさほどこれはパフォーマンスとは関係ないと思うので、気にしないことにします.

「圧倒的じゃないか、我が JIT shader は…」

Advertisements