web-dev-qa-db-fra.com

Intel SSE et exemples et didacticiels AVX

Existe-t-il de bons tutoriels C/C++ ou des exemples pour apprendre Intel SSE et les instructions AVX?

J'en ai trouvé peu sur les sites Microsoft MSDN et Intel, mais ce serait formidable de le comprendre à partir des bases ..

34
veda

Pour le programmeur SIMD visuellement incliné, le site de Stefano Tommesani est la meilleure introduction à la programmation SIMD x86.

http://www.tommesani.com/index.php/simd/46-sse-arithmetic.html

Les diagrammes ne sont fournis que pour MMX et SSE2, mais une fois qu'un apprenant maîtrise SSE2, il est relativement facile de passer à autre chose et de lire les spécifications formelles.


Intel IA-32 Instructions commençant par A à M

http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-2a-manual.pdf

Intel IA-32 Instructions commençant par N à Z

http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-2b-manual.pdf


De plus, il est important pour les programmeurs Intel SIMD de connaître l'architecture minimale requise pour les instructions qui ne font pas partie de la génération SSE2.

Navigation par générations sur Wikipédia:

Recherche d'un mnémonique Intel SIMD donné sur une seule page (via une recherche de texte):


14
rwong

Il y a une belle introduction ici

Projet de code SSE

De plus, si vous avez Microsoft DirectX SDK installé, la source de xnamath a beaucoup d'opérations vectorielles/matricielles utilisant les intrinsèques sse (vérifiez dans le dossier sdk include, xnamath.h, xnamathconvert.inl, xnamathmatrix.inl. ..)

3
catflier

Il y a de bonnes choses sur site des développeurs d'Apple , par exemple Programmation des performances SSE .

3
Paul R

Vous trouverez peut-être utile d'examiner des exemples d'application de SIMD à certains algorithmes courants. Lors de la Games Developer Conference 2011, il y a eu une conférence Intel intitulée "Hotspots, FLOPS et uOps: To-the-Metal CPU Optimization" qui tente de démontrer SIMD pour les algorithmes courants dans les jeux. L'exposé se réfère à certains exemple de code Intel qui montre comment AVX peut être appliqué aux calculs de tiss .

2
Brad Werth