Есть ли хорошие учебные пособия по C/С++ или примеры для обучения инструкциям Intel SSE и AVX?
Я нашел несколько на сайтах Microsoft MSDN и Intel, но было бы прекрасно понять это из основ.
Есть ли хорошие учебные пособия по C/С++ или примеры для обучения инструкциям Intel SSE и AVX?
Я нашел несколько на сайтах Microsoft MSDN и Intel, но было бы прекрасно понять это из основ.
Для визуально наклонного SIMD-программиста сайт Stefano Tommesani - лучшее введение в программирование SIM-карты x86.
http://www.tommesani.com/index.php/simd/46-sse-arithmetic.html
Диаграммы предоставляются только для MMX и SSE2, но как только учащийся овладеет SSE2, относительно легко перемещаться и читать формальные спецификации.
Intel IA-32 Инструкции, начинающиеся с A до M
Инструкции Intel IA-32, начинающиеся с N на Z
Кроме того, для программистов Intel SIMD важно знать минимальную требуемую архитектуру для инструкций, которые находятся за пределами поколения SSE2.
Просмотр по поколениям в Википедии:
Поиск определенной SIMM-памяти Intel на одной странице (через текстовый поиск):
Здесь есть приятное введение.
Также, если у вас установлен Microsoft DirectX SDK, источник из xnamath имеет множество векторных/матричных операций с использованием sse intrinsics (проверка sdk include folder, xnamath.h, xnamathconvert.inl, xnamathmatrix.inl...)
На сайте сайт разработчика Apple, например. Программирование производительности SSE.
Вам может показаться полезным взглянуть на примеры того, как SIMD можно применять к некоторым общим алгоритмам. На конференции разработчиков игр 2011 года был анонс Intel под названием "Горячие точки, FLOPS и uOps: to-the-metal CPU Optimization" , который пытается продемонстрировать SIMD для алгоритмов, общих в играх. Разговор относится к некоторому образцу кода Intel, который показывает, как AVX может применяться к расчетам ткани.