
Юлий Тарасов
Синтакор
Хватит ли вам терпения копировать код, заменяя _mm256 на _mm512? Надоело гадать, справится ли автовекторизатор с вашим циклом? Разработка векторизованного кода действительно долго была головной болью и требовала продвинутых знаний от инженера.
Последнее время помимо SSE и AVX становятся популярны векторные расширения ARM (NEON, SVE) и RISC-V (RVV). Помимо отличного от x86 набора команд, в других архитектурах появляются альтернативные программные модели векторных сопроцессоров, что означает невозможность создания переносимого решения традиционными методами.
Развенчаем миф о необходимости жертвовать абстракцией ради производительности. Детально разберем эволюцию от ассемблерных вставок до std::simd и рассмотрим, как заставить один и тот же алгоритм идеально работать и на x86 с AVX2, и на RISC-V с RVV, и на ARM с SVE.

Синтакор