«Ручная» векторизация в 2025 году: когда компилятора недостаточно

Аппаратное обеспечение

C/C++
Оптимизация производительности
Алгоритмы и их сравнение
Архитектуры / другое
Аппаратное обеспечение
Оптимизация
ML
Расширение кругозора

Доклад принят в программу конференции

Целевая аудитория

Люди, которым интересны высокопроизводительные вычисления и низкоуровневые оптимизации приложений AI/ML, AR/VR, CV, HPC.

Тезисы

Посмотрим, что дает «ручная» векторизация на RISC-V и Arm, на примере двух широко используемых высокопроизводительных open source-библиотек линейной алгебры — Eigen и OpenBLAS. Поймем, почему автовекторизации не хватает для ускорения приложений AI/ML, AR/VR, CV, HPC. На графиках производительности увидим, далеко ли до roofline и где прячутся compute-bound и memory-bound алгоритмы.
Если вы
* не понимаете, зачем программисты продолжают оптимизировать руками в век стремительно умнеющих компиляторов, то вам сюда;
* находитесь в противоборствующем лагере и не отдаете производительность целиком на откуп компилятору, то вам тоже сюда;
* вообще никогда не задумывались о каких-то оптимизациях и не понимаете, из-за чего весь сыр-бор, то тоже приходите!
Даже если вы не знаете, кто такая линейная алгебра, больно не будет.

Кандидат физико-математических наук, специальность «математическое моделирование, численные методы и комплексы программ». Руководитель команды разработки высокопроизводительных математических библиотек в YADRO. Автор научных работ в области вычислительной математики, а также статей на Хабре.

С 2010 года разрабатывает и реализует численные методы для решения задач линейной алгебры, вычислительной аэрогидродинамики, AR/VR на С/С++ с CUDA/MPI/OpenMP. Работала в Huawei, Fortum, ИСП РАН им. В. П. Иванникова, МГТУ им. Н. Э. Баумана.

Видео