[Haskell-cafe] Haskell version of ray tracer code is much slower than the original ML

Philip Armstrong phil at kantaka.co.uk
Sat Jun 23 14:23:33 EDT 2007


On Sat, Jun 23, 2007 at 10:32:31AM +0100, Jon Harrop wrote:
>On Saturday 23 June 2007 08:58:10 Philip Armstrong wrote:
>> On Sat, Jun 23, 2007 at 03:28:53AM +0100, Jon Harrop wrote:
>> >What architecture, platform, compiler versions and compile lines are you
>> >using?
>>
>> 32-bit x86...
>
>Intel or AMD?

AMD. Athlon 64 3000+ to be precise.

>> >  http://www.ffconsultancy.com/languages/ray_tracer/code/5/ray.ml
>> >  http://www.ffconsultancy.com/languages/ray_tracer/code/5/ray.cpp
>>
>> I gather these use algorithmic optimisations.
>
>Both. Versions 1-4 are progressively algorithmic, version 5 includes low-level 
>optimizations (mostly manual inlining and unrolling). Implementing version 1 
>is probably also interesting: it is the most concise version.
>
>BTW, the ray tracer leverages the semantics of the float infinity (as the 
>parameter when there is no intersection). Shouldn't be a problem but some 
>compiler options might break it.

Thus far the Haskell version generates identical images to the OCaml
one.

Phil

-- 
http://www.kantaka.co.uk/ .oOo. public key: http://www.kantaka.co.uk/gpg.txt


More information about the Haskell-Cafe mailing list