SIMD C ++ kütüphanesi [kapalı]


14

Geçmişte, Visual Studio'yu DirectX XNA matematik kitaplığıyla kullandım. Şimdi, GNU derleyici koleksiyonunu kullanıyorum. Herkes iyi bir dokümantasyon ile bir SIMD matematik kütüphanesi tavsiye edebilir?

Yanıtlar:


15

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


Teşekkür ederim, ama çok fazla rutin yapmak için zamanım yok.
itun

Belki bir dahaki sefere, gibi görünmek o kadar zor değil;). Ancak alt kısımda yardımcı olabilecek birkaç bağlantı ekledim.
Valkea

Düzgün cevap. SIMD matematik eğlencelidir. Işın izlemeyi hızlandırmak için SSE kullandığım günleri hatırlıyorum. Ama şimdi
GPGPU'muz


1

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


Onu gördüm, ama nasıl derleyeceğimi anlamadım
23'te

3
Bir indirme bağlantısının boşaltılmasından ziyade, gerçek web sitesine dokümantasyon, wiki ve API referansı ile bir bağlantı daha yararlı olabilir. bulletphysics.org
Bob Somers

@Bob sadece bu indirme linkini ifade etmek istedim çünkü simdvectormathmermi dosyalarında belirli bir dosyayı bulmak biraz zaman alıyor
Ali1S232


0

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.


0

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.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.