[ODE] ODE and SIMD

Hristo Hristov hhristov at delin.org
Mon Nov 27 09:41:25 MST 2006


Here are very interesting PDFs (at the bottom of the page) that
describes how the math can be optimized using SIMD.
http://www.intel.com/cd/ids/developer/asmo-na/eng/293451.htm?prn=Y

> ODE vectors are already dReal[4], other than that is better for the 
> variables to be aligned at 16 bit
> memory boundaries.
> 
> Vrej Melkonian wrote:
>> Thanks, I previously had asked how SSE could be used
>> on Windows platform but nobody knew, because gcc
>> inserts SSE instructions.
>>
>> Also, I pretty sure the vectors need to be 4D.
>>
>>
>> --- Francisco Leon <projectileman at yahoo.com> wrote:
>>
>>   
>>> ODE uses macros widely for vector operations, so it
>>> could take advantage of SIMD instructions implicity.
>>>
>>> Modern compilers translate macros to SIMD
>>> instructions
>>> by default, if you configure the project for
>>> generating MMX/Pentium 3 instructions. 
>>>
>>> For example, you can configure MingW compiler for
>>> generate machine code for Pentium3 or Athlon
>>> plattforms, wich could result in fast code as the
>>> compiler decides where to put SIMD instructions in
>>> the
>>> program.
>>>
>>> In my own benchmarking I've discovered that a vector
>>> library that uses c++ templates (Like Blitz) is
>>> often
>>> faster than those which have SIMD assembler
>>> instructions (Like NVEC or SIMDx86 libraries).
>>>
>>> So I think that it would better to leave the
>>> low-level
>>> optimizations to the compiler. Microsoft people are
>>> wise enough for putting all necessary gadgets into
>>> their C++ compiler. Just Trust in your compiler, it
>>> is
>>> more intelligent than You!! ;)
>>>
>>> One way for optimizing ODE is reducing the use of
>>> linked lists, and pack structures in vectors. That
>>> will helps the CPU work because it reduces cache
>>> filling. 
>>>
>>> Also we can optimize ODE by using alternative math
>>> functions for Sqrt and trigonometry functions.
>>> Making
>>> Sine and Cosine tables and using the GIMPACT SQRT
>>> function would be helpful.
>>>
>>>     
>>
>>
>>  
>> ____________________________________________________________________________________
>> Want to start your own business?
>> Learn how on Yahoo! Small Business.
>> http://smallbusiness.yahoo.com/r-index
>> _______________________________________________
>> ODE mailing list
>> ODE at q12.org
>> http://q12.org/mailman/listinfo/ode
>>
>>   



More information about the ODE mailing list