Bibliothèque SIMD C ++ [fermé]


14

Dans le passé, j'ai utilisé Visual Studio avec la bibliothèque mathématique DirectX XNA. Maintenant, j'utilise la collection de compilateurs GNU. Quelqu'un peut-il conseiller une bibliothèque mathématique SIMD avec une bonne documentation?

Réponses:


15

Vous pouvez également le faire "vous-même" en utilisant les instructions SSE (Streaming SIMD Extensions) et les éléments intrinsèques (fichiers * mmintrin.h) de votre compilateur / proc.


Tutoriels

Voici un exemple d'utilisation des instructions SSE avec l'assembly:
http://neilkemp.us/src/sse_tutorial/sse_tutorial.html

Et voici un tutoriel sur la façon d'utiliser les instructions SSE avec intrinsèques:
http://www.codeproject.com/KB/recipes/sseintro.aspx

Un guide pratique pour utiliser SSE SIMD avec C ++:
http://sci.tuomastonteri.fi/programming/sse/printable


Informations utiles

Référence Intel C ++ Intrinsics (utile pour obtenir la liste des instructions):
http://cache-www.intel.com/cd/00/00/34/76/347603_347603.pdf

Prise en charge intrinsèque SSE et SSE2 des jeux d'instructions améliorés pris en charge par les processeurs Intel et AMD (utiles pour toutes sortes d'informations relatives à SSE et SIMD):
http://msdn.microsoft.com/en-us/library/y0dh78ez%28v= vs.71% 29.aspx

Liste d'instructions générales et informations sur SSE, SSE2, SSE3, SSSE3, SSE4, 3DNow, etc. (différentes versions de SSE pour différentes architectures de proc):
http://softpixel.com/~cwright/programming/simd/sse.php


Si vous préférez un cadre d'algèbre linéaire, j'ai entendu parler d'Eigen:
http://eigen.tuxfamily.org/
http://eigen.tuxfamily.org/index.php?title=FAQ#Vectorization (sur le support SIMD)

Et enfin, si vous avez besoin de plus de réponses sur les cadres SIMD C ++, voici un lien StackOverflow . (Framework C ++ SSE SIMD):
/programming/4953121/c-sse-simd-framework


Merci, mais je n'ai pas le temps de faire autant de routine.
itun

Peut-être que la prochaine fois, ce n'est pas si difficile que ça ressemble;). Cependant, j'ai ajouté quelques liens en bas qui pourraient aider.
Valkea

Bonne réponse. Les mathématiques SIMD sont amusantes. Je me souviens des jours où j'utilisais SSE pour accélérer le lancer de rayons. Mais pourquoi jouer au petit jouet, si nous avons GPGPU maintenant :)
Notabene


1

par un peu de recherche, je pense que vous pouvez utiliser la bibliothèque mathématique de bullet, bullet lui-même est un moteur de physique open source et il semble avoir une bibliothèque mathématique puissante à côté. voici un raccourci pour télécharger le lien http://sourceforge.net/projects/bullet/files/SIMD%20and%20amp_%20Vector%20Math%20library/simd%20math%201.02%20and%20vector%20math%201.01/simdvectormath.tgz /Télécharger


Je l'ai vu, mais comment le compiler je n'ai pas compris
itun

3
Plutôt que de simplement vider un lien de téléchargement, un lien vers le site Web réel avec la documentation, le wiki et la référence API pourrait être plus utile. bulletphysics.org
Bob Somers

@Bob je voulais juste exprimer ce lien de téléchargement car il faut juste un peu de temps pour trouver simdvectormathun fichier spécifique dans des fichiers à puce
Ali1S232


0

AMD a le projet open source SSEPlus , même si je ne l'ai jamais utilisé, je ne peux donc pas commenter sa qualité ou son applicabilité.


0

Bien qu'il ne soit pas exactement axé sur l'utilisation de SIMD, je trouve que glm est une très bonne bibliothèque mathématique à usage général en matière de jeux. Il ne prend pas en charge les matrices arbitraires et similaires, mais il a des fonctionnalités rationalisées à utiliser avec les graphiques 3D et il a des fonctionnalités pour activer SSE ainsi que certaines implémentations plus rapides d'algorithmes courants.

Bien qu'il soit spécifiquement conçu pour être utilisé avec OpenGL, je l'ai trouvé très utile pour une variété de tâches. Il utilise fortement la surcharge de l'opérateur, ce qui le rend très facile à utiliser et à maintenir le code qui l'utilise.

Il est basé sur le langage OpenGL GLSL, qui a une documentation très solide, et toutes les différences sont également bien documentées.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.