Yanıtlar:
Ayrıca derleyicinizin / proc'unuzun SSE (Akış SIMD Uzantıları) talimatlarını ve intrinsiklerini (* mmintrin.h dosyaları) kullanarak "kendiniz" yapabilirsiniz .
Öğreticiler
SSE talimatlarını derleme ile nasıl kullanacağınıza ilişkin bir örnek:
http://neilkemp.us/src/sse_tutorial/sse_tutorial.html
Ve burada SSE talimatlarını intrinsiklerle nasıl kullanacağınıza dair bir öğretici:
http://www.codeproject.com/KB/recipes/sseintro.aspx
SSE SIMD'yi C ++ ile kullanmak için pratik bir rehber:
http://sci.tuomastonteri.fi/programming/sse/printable
Yararlı bilgiler
Intel C ++ Intrinsics referansı (talimatların listesini almak için yararlıdır):
http://cache-www.intel.com/cd/00/00/34/76/347603_347603.pdf
SSE ve SSE2 Intel ve AMD işlemciler tarafından desteklenen gelişmiş komut setleri için doğal destek (SSE ve SIMD ile ilgili her türlü bilgi için yararlıdır):
http://msdn.microsoft.com/en-us/library/y0dh78ez%28v= vs.71% 29.aspx
Genel talimatlar listesi ve SSE, SSE2, SSE3, SSSE3, SSE4, 3DNow vb. Hakkında bilgi (farklı proc mimarisi için SSE'nin farklı sürümleri):
http://softpixel.com/~cwright/programming/simd/sse.php
Doğrusal bir cebir çerçevesini tercih ediyorsanız Eigen hakkında kulak verdim:
http://eigen.tuxfamily.org/
http://eigen.tuxfamily.org/index.php?title=FAQ#Vectorization (SIMD desteği hakkında)
Ve son olarak C ++ SIMD Frameworks hakkında daha fazla yanıta ihtiyacınız varsa, işte bir StackOverflow bağlantısı . (C ++ SSE SIMD çerçevesi):
/programming/4953121/c-sse-simd-framework
Bu vektör / matris-l-lerin her ikisi de SSE2 kodunu optimize etti, Sony ayrıca bir Altivec for PowerPC derleme anahtarına sahip:
Sony vektörel SSE2 ve Altivec
Bullet Linearmath SSE2
küçük bir seraching ile merminin matematik kütüphanesini kullanabileceğinizi düşünüyorum, merminin kendisi açık kaynaklı bir fizik motoru ve yanında güçlü bir matematik kütüphanesi var gibi görünüyor. http://sourceforge.net/projects/bullet/files/SIMD%20and%20amp_%20Vector%20Math%20library/simd%20math%201.02%20and%20vector%20math%201.01/simdvectormath.tgz indirmek için bir kısayol / indirme
simdvectormath
mermi dosyalarında belirli bir dosyayı bulmak biraz zaman alıyor
Henüz burada değil. Ama kütüphane bir boost.simd olacak (umarım). Bu sunuma bir göz atın (geçen hafta boostcon'da verilen)
https://github.com/boostcon/2011_presentations/blob/master/thu/simd.pdf
AMD, açık kaynak SSEPlus projesine sahiptir, ancak daha önce hiç kullanmamıştım, bu yüzden kalitesi veya uygulanabilirliği hakkında yorum yapamam.
Tam olarak SIMD kullanmaya odaklanmamış olsa da, glm buluyorum çok iyi bir genel amaçlı matematik kütüphanesi olarak . Keyfi matrisleri ve benzerini desteklemez, ancak 3D grafiklerle kullanılacak aerodinamik özelliklere sahiptir ve SSE'yi etkinleştirmenin yanı sıra ortak algoritmaların bazı daha hızlı uygulamalarını da içerir.
OpenGL ile kullanılmak üzere özel olarak tasarlanmış olsa da, çeşitli görevler için çok yararlı olduğunu gördüm. Operatörün aşırı yüklenmesini büyük ölçüde kullanır, bu da onu kullanan kodun kullanımını ve bakımını çok kolaylaştırır.
Çok sağlam belgelere sahip OpenGL GLSL diline dayanmaktadır ve farklılıklar da iyi belgelenmiştir.