Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I've use Visual Studio with the DirectX XNA math library. Now, I use the GNU compiler collection. Can anyone advise a SIMD math library with a good documentation?

share|improve this question
add comment

5 Answers

up vote 10 down vote accepted

You can also do it "yourself" using the SSE (Streaming SIMD Extensions) instructions and the intrinsics ( *mmintrin.h files ) of your compiler/proc.


Tutorials

Here is an example of how to use SSE instructions with assembly:
http://neilkemp.us/src/sse_tutorial/sse_tutorial.html

And here is a tutorial on how to use SSE instructions with intrinsics:
http://www.codeproject.com/KB/recipes/sseintro.aspx

A practical guide to using SSE SIMD with C++:
http://sci.tuomastonteri.fi/programming/sse/printable


Useful informations

Intel C++ Intrinsics reference (useful to get the list of instructions):
http://cache-www.intel.com/cd/00/00/34/76/347603_347603.pdf

SSE & SSE2 Intrinsic support for the enhanced instruction sets supported by Intel and AMD processors (useful to all kinds of informations relative to SSE and SIMD):
http://msdn.microsoft.com/en-us/library/y0dh78ez%28v=vs.71%29.aspx

Overall instructions list and informations about SSE, SSE2, SSE3, SSSE3, SSE4, 3DNow etc (different versions of SSE for different proc architecture):
http://softpixel.com/~cwright/programming/simd/sse.php


If you prefer a linear algebra framework I eared about Eigen:
http://eigen.tuxfamily.org/
http://eigen.tuxfamily.org/index.php?title=FAQ#Vectorization (about SIMD support)

And finally if you need more answers about C++ SIMD Frameworks, here is a StackOverflow link. (C++ SSE SIMD framework) :
http://stackoverflow.com/questions/4953121/c-sse-simd-framework

share|improve this answer
    
Thank you, but I have not time to do so much routine. –  itun May 23 '11 at 1:17
    
Maybe next time, it's not that hard that it looks like ;). However I added few links at the bottom that might help. –  Valkea May 23 '11 at 1:38
    
Neat answer. SIMD math is fun. I remember days when i was using SSE for accelerating raytracing. But why to play little toy, if we have GPGPU now :) –  Notabene May 23 '11 at 9:21
add comment

Both of these vector/matrix-libs have optimized SSE2 code, Sony also has an Altivec for PowerPC compile switch:

  1. Sony's vectormath SSE2 and Altivec

  2. Bullet's Linearmath SSE2

share|improve this answer
add comment

by a little seraching i think you can use bullet's math library, bullet itself is an opensource physics engine and it seems to have a powerfull math library beside it. here is a shortcut to download link http://sourceforge.net/projects/bullet/files/SIMD%20and%20amp_%20Vector%20Math%20library/simd%20math%201.02%20and%20vector%20math%201.01/simdvectormath.tgz/download

share|improve this answer
    
I saw it, but how to compile it I did not understand –  itun May 22 '11 at 23:38
3  
Rather than just dumping a download link, perhaps a link to the actual website with the documentation, wiki, and API reference might be more helpful. bulletphysics.org –  Bob Somers May 22 '11 at 23:47
    
@Bob i just wanted to express that download link since it just takes some time find simdvectormath specific file in bullet files –  Ali.S May 23 '11 at 7:08
add comment

It is not here yet. But there will be a boost.simd library (hopefully). Take look at this presentation (given last week at boostcon)

https://github.com/boostcon/2011_presentations/blob/master/thu/simd.pdf

share|improve this answer
add comment

AMD has the open source SSEPlus project, although I have never used it so I can't comment on its quality or applicability.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.