Intel SSE и AVX Примеры и учебные пособия
Есть ли хорошие учебники или примеры по C/C++ для изучения инструкций Intel SSE и AVX?
Я нашел немного на сайтах Microsoft MSDN и Intel, но было бы здорово понять это с основ...
4 ответа
Сайт для Стефано Томмесани - это лучшее введение в программирование x86 SIMD.
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.
Просмотр поколений в Википедии:
- http://en.wikipedia.org/wiki/SSE3
- http://en.wikipedia.org/wiki/SSSE3
- http://en.wikipedia.org/wiki/SSE4.1
- http://en.wikipedia.org/wiki/SSE4.2
Поиск определенной мнемоники Intel SIMD на одной странице (с помощью текстового поиска):
На сайте разработчиков Apple есть несколько полезных вещей, например, SSE Performance Programming.
Здесь есть хорошее введение
Кроме того, если у вас установлен Microsoft DirectX SDK, исходный код из xnamath содержит множество векторных / матричных операций с использованием встроенных функций sse (проверьте в папке sdk include, xnamath.h, xnamathconvert.inl, xnamathmatrix.inl ...)
Возможно, вам будет полезно взглянуть на примеры того, как SIMD может применяться к некоторым распространенным алгоритмам. На конференции разработчиков игр 2011 года состоялась презентация Intel под названием "Горячие точки, FLOPS и uOps: оптимизация ЦП на железе", в которой была предпринята попытка продемонстрировать SIMD для алгоритмов, распространенных в играх. В докладе говорится о некотором образце кода Intel, который показывает, как AVX может применяться к расчетам одежды.