Примеры и учебники Intel SSE и AVX
Есть ли хорошие учебные пособия по C/С++ или примеры для обучения инструкциям Intel SSE и AVX?
Я нашел несколько на сайтах Microsoft MSDN и Intel, но было бы прекрасно понять это из основ.
Ответы
Ответ 1
Для визуально наклонного SIMD-программиста сайт Stefano Tommesani - лучшее введение в программирование SIM-карты x86.
http://www.tommesani.com/index.php/simd/46-sse-arithmetic.html
Диаграммы предоставляются только для MMX и SSE2, но как только учащийся овладеет SSE2, относительно легко перемещаться и читать формальные спецификации.
Intel IA-32 Инструкции, начинающиеся с 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, начинающиеся с N на Z
http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-2b-manual.pdf
Кроме того, для программистов Intel SIMD важно знать минимальную требуемую архитектуру для инструкций, которые находятся за пределами поколения SSE2.
Просмотр по поколениям в Википедии:
Поиск определенной SIMM-памяти Intel на одной странице (через текстовый поиск):
Ответ 2
Здесь есть приятное введение.
Проект кода SSE
Также, если у вас установлен Microsoft DirectX SDK, источник из xnamath имеет множество векторных/матричных операций с использованием sse intrinsics (проверка sdk include folder, xnamath.h, xnamathconvert.inl, xnamathmatrix.inl...)
Ответ 3
На сайте сайт разработчика Apple, например. Программирование производительности SSE.
Ответ 4
Вам может показаться полезным взглянуть на примеры того, как SIMD можно применять к некоторым общим алгоритмам. На конференции разработчиков игр 2011 года был анонс Intel под названием "Горячие точки, FLOPS и uOps: to-the-metal CPU Optimization" , который пытается продемонстрировать SIMD для алгоритмов, общих в играх. Разговор относится к некоторому образцу кода Intel, который показывает, как AVX может применяться к расчетам ткани.