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 ..
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
Intel IA-32 Instructions commençant par N à Z
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):
Il y a une belle introduction ici
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. ..)
Il y a de bonnes choses sur site des développeurs d'Apple , par exemple Programmation des performances SSE .
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 .