lucille v.s. PRMan: Performance comparison

by syoyo


OK, next challenge is fighting the giant: PRMan.

soichi_h kindly measured rendering time of lighthouse scene and Mandelbrot shader in PRMan(version 14.2) and reported numbers and rendered images to me.

lighthouse scene with AO

The setting is same in the previous article, but # of gather samples are raised from 32 to 64 in this case.

(lucille, 62 secs, Core2 2.16GHz x 2 cores)

(PRMan, 146 secs, Core2 2.53 GHz x 2 cores)


Even though PRMan was executed in different, higher-clocked machine(Core2 2.53 GHz), still lucille is about 2.3x faster than PRMan!
(If we normalized the CPU clock for both results, lucille is about 2.7x faster than PRMan)

Mandelbrot shader performance

(0.43 secs, lucille(JIT shader), 1 core)

(3 secs, PRMan, 2 cores)


Even though PRMan was running on 2 threads(2 cores) whereas lucille was 1 thread, still lucille’s JIT shader is 7x faster than PRMan!


To summarize the performance comparison of lucille and PRMan with lucille v.s. 3delight(lighthouse, Mandelbrot), I could say,

lucille(fastest) >> PRMan 14.2 >= 3Delight 8.0.1(slower)

As previously stated, lucille still has much more room for optimization.
If I carefully tuned up lucille source code, lucille would become 5x ~ 10x faster than PRMan, hehe 🙂


soichi_h さんから PRMan 14.2 で lighthouse シーンと Mandelbort シェーダを走らせたときのレンダリング速度結果をいただきました.ありがとうございます.

PRMan, なかなか手強かった(?)ですが、それでもまだ lucille が lighthouse シーンでは 2.3 倍程度, Mandelbrot シェーダでは 7 倍、PRMan より速いという結果になりました.
(実行したマシンの環境が違い、PRMan を実行した環境のほうがクロックが高いので、クロック比を合わせるともう少し差がでます)


前にも書いた通り、lucille はしかしまだまだ最適化の余地があります.
アルゴリズムはそのままでコードの最適化だけしたとしても、少なくともあと 2 倍は高速化できると見込んでいます.
そうすれば lucille は PRMan, 3Delight の 5 ~ 10 倍速い、という風に言えるようになりそうです.