Производительность процессора растёт не только за счёт числа ядер, тактовой частоты и Hyper-Threading. Есть и менее заметный путь: научить ядро обрабатывать сразу много чисел одной командой. Именно это делают SIMD-расширения, которые сегодня известны под общим названием AVX. Вы пользуетесь ими ежедневно, даже не подозревая об этом: в играх, при монтаже видео и при запуске локальных ИИ-моделей. Путь от MMX в Intel Pentium до AVX-512 в старших Xeon и EPYC занял почти три десятилетия. В этой статье специалисты «СервакМастер» разбирают, как менялись наборы инструкций, чем отличаются подходы Intel и AMD и что всё это значит при выборе серверного железа.
Ранний этап: MMX и семейство SSE
MMX (1997)
В середине 1990-х процессоры работали с небольшим набором 32-битных регистров, а типовые задачи казались пределом возможностей техники. Перелом произошёл в 1997 году, когда Intel выпустила Pentium с набором MMX (MultiMedia eXtensions). Впервые появилась поддержка восьми 64-битных регистров для целочисленных операций, что заметно ускорило мультимедиа, математику и другие распространённые задачи. Благодаря MMX Pentium стал не просто хитом продаж, а символом целой эпохи.
SSE и SSE2 (1999–2000)
Через два года, в 1999-м, вышел Pentium III с инструкциями SSE (Streaming SIMD Extensions). Ширина регистров выросла вдвое, до 128 бит, а к целым числам добавилась работа с числами одинарной точности. SSE закрепился в графике и играх и подготовил почву для машинного обучения.
В 2000 году Pentium 4 получил SSE2: поддержку двойной точности и целочисленных операций в 128-битных регистрах. Фактически это был фундамент для будущего перехода к x86-64.
SSE3, SSSE3, SSE4.1/4.2
Следующие десять лет Intel выпускала всё новые версии: SSE3, SSSE3, SSE4.1 и SSE4.2. Они добавляли команды, но не меняли модель SIMD: новое наслаивалось на старое. В итоге набор разросся, а свободное пространство для кодирования новых функций закончилось. Требовалась радикальная перестройка, и её принёс AVX.
AVX (AVX1): 256 бит и кодирование VEX (2011)
Первые полноценные AVX-инструкции появились в 2011 году в процессорах Intel Sandy Bridge (настольные Core i7 второго поколения) и AMD Bulldozer (FX-8150 и Opteron 6200). Ширина SIMD-регистров снова удвоилась: со 128 до 256 бит. Главное нововведение — формат кодирования VEX, который упростил добавление и выполнение новых команд.
Изменился и фокус. SSE был рассчитан на целые числа и числа одинарной и двойной точности, тогда как AVX сосредоточился на вычислениях с плавающей запятой и векторных операциях. Целочисленная арифметика осталась 128-битной, и поначалу это сдерживало распространение набора. Тем не менее выигрыш был ощутим:
- мультимедиа, научные и финансовые расчёты получили заметное ускорение;
- кодек H.264 довольно быстро получил AVX-оптимизации вместо SSE2, что дало несколько десятков процентов прироста на видео FullHD;
- линейная алгебра в FP64-вычислениях выигрывала особенно сильно, и пользователи MATLAB это быстро оценили.
Неудачная альтернатива AMD: FMA4 и XOP
Параллельно AMD продвигала собственные расширения FMA4 и XOP. Их особенность — деление 256-битного регистра на два модуля по 128 бит. Это снижало TDP и давало сопоставимый с AVX уровень производительности, но не во всех операциях. У FMA4 был и плюс: больше доступных функций, чем у классического AVX. Однако функциональности Intel на тот момент хватало с запасом, и Intel не стала внедрять FMA4 и XOP. Идея AMD не прижилась, а сама архитектура Bulldozer стала для компании неудачным эпизодом.
AVX2 и FMA3: универсальный стандарт (2013)
Следующий шаг — AVX2 в архитектуре Intel Haswell, а позже в настольных чипах AMD на архитектуре Excavator. AVX2 распространил 256-битную обработку на целочисленные операции и закрыл главный недостаток AVX1. Появились и принципиально новые команды, например VGATHER для упорядоченной загрузки данных, что помогло в задачах параллелизации.
Самым заметным практическим эффектом стало ускорение кодирования видео по стандарту H.265: прирост составил 15% относительно AVX1, причём чем сложнее пресет, тем больше выигрыш. Ускорились также сжатие данных, шифрование и базы данных, то есть практически все CPU-нагрузки. Поэтому AVX2 остаётся востребованным до сих пор.
FMA3
Отдельно стоят инструкции FMA3. Они вышли чуть позже основного релиза AVX2 и формально его частью не являлись. Intel не стала делить регистр на два модуля по 128 бит, как в FMA4, а заложила возможность размещать больше расширений инструкций на будущее. После выхода Haswell основные компиляторы стали генерировать FMA3 при включении соответствующего режима, и расширение быстро превратилось в стандартный инструмент оптимизации. В линейной алгебре прирост достигал 80%, ускорилась и графика.
AMD, отказавшись от FMA4, включила поддержку FMA3 в Piledriver и Excavator. Полностью потенциал раскрылся лишь в первом поколении Zen, где FMA3 работает на полной ширине 256 бит, без ограничения 2×128.
AVX-512: ширина и гибкость (2016–2017)
В 2016 году AVX-512 дебютировал в серверных сопроцессорах Intel Xeon Phi Knights Landing. Это стало крупнейшим расширением SIMD за всю историю x86.
Что принесло новое поколение:
- регистры шириной 512 бит, то есть очередное удвоение;
- маскирующие регистры, которые позволяют обрабатывать ровно нужные элементы вектора, избавляют от ветвлений и лишних перемещений данных;
- инструкции scatter, полезные при векторизации данных с зависимостями;
- команды для ускорения математических функций, таких как логарифмы и экспоненты.
Всё это даёт выигрыш в HPC, ИИ, графике и даже эмуляции.
Модульность
Самая любопытная особенность AVX-512 — модульность. Набор разбит на поднаборы (F, VL, BW, DQ, CD и другие), каждый из которых отвечает за свой круг задач:
| Поднабор | Назначение |
|---|---|
| AVX512F (Foundation) | База: 32 регистра, 512 бит, маски, базовые операции над FP32/64 и INT32/64 |
| AVX512BW | Операции над 8- и 16-битными данными |
| AVX512DQ | Дополнительные операции, в том числе в целочисленном умножении |
| AVX512VL | Дублирование операций на более коротких регистрах |
Серверные решения получали расширенные комбинации. Например, в Xeon Skylake-SP (Purley, 2017) Intel включила F+VL+BW+DQ+CD.
Судьба AVX-512 на десктопе
В настольном сегменте набор прижился плохо. Ни в одном обычном Core i7/i5 8–11 поколений его не было, за исключением Cannon Lake и мобильных Ice/Tiger Lake, да и там включались лишь один-два поднабора. Причина — необходимость унификации с E-ядрами: малым ядрам 512 бит не по силам. До 2021 года AVX-512 оставался уделом серверов и энтузиастов на платформах HEDT.
С выходом Rocket Lake ситуация изменилась: это поколение получило полную поддержку AVX-512 без компромиссов. Набор работал и в ранних реализациях Alder Lake, но затем Intel полностью отключила его, как и в 13, 14 и 15 поколениях настольных CPU.
Цена ширины
Вместе с возможностями пришли и проблемы. Вместе с плотностью операций удвоилось и энергопотребление, поэтому для укладывания в TDP приходилось занижать тактовые частоты. В результате прирост на процессорах с AVX-512 составлял не 2×, а в лучшем случае около 1,5×.
Позиция AMD: от Zen 4 до Zen 5
Долгое время AMD наблюдала со стороны: Zen 1, 2 и 3 не поддерживали AVX-512. В Zen 4 компания реализовала его, но с компромиссом. В Ryzen 7000 и EPYC Genoa 512-битная инструкция выполняется «двойным шагом», распадаясь на две 256-битные, идущие подряд. Производительность примерно на уровне Intel Alder/Rocket Lake, зато без резкого падения частоты. По функциональности Zen 4 догнал Intel, но не превзошёл по скорости.
В Zen 5 этот недостаток устранён: векторные блоки удвоены, и ширина 512 бит стала нативной. AMD первой реализовала 4×512-бит FMA на ядро (у Intel максимум 2×512 FMA), что дало прирост 37% в HPC- и ИИ-задачах. Кроме того, в отличие от Intel, AMD не столкнулась с трудностями реализации AVX-512 в энергоэффективных ядрах Zen4c и Zen5c: регистр шириной 512 бит там нативно делится на два по 256 бит.
AVX10: новый этап
В 2023 году Intel анонсировала AVX10 и обещала реализовать его в архитектурах Granite Rapids, Diamond Rapids и Lunar Lake. В серверных Granite Rapids он действительно появился, но ожидания не оправдал: AVX10.1 оказался по сути переименованным AVX-512. Единственное отличие — возможность использовать маскированные регистры на E-ядрах, и то только в 256-битном варианте.
От AVX10.2 в процессорах Diamond Rapids ждут новой функциональности: предположительно AVX-VNNI-INT16, поддержки FP8 или расширений для матриц. Сдержит ли Intel обещание, станет известно во втором квартале 2026 года.
AVX и искусственный интеллект
Нейросети опираются на низкоточную математику, поэтому логично было добавить в CPU специальные низкоточные форматы. Так появились ИИ-расширения AVX.
VNNI и AVX-VNNI (2019+)
Vector Neural Network Instructions впервые появились в серверных Cascade Lake (2019). Они вводят вычисления в форматах INT8/INT16/INT32 и объединяют несколько операций скалярного произведения (умножение, сложение, сдвиг) в одну команду. Это многократно ускорило матричные умножения сначала в свёрточных, а затем и в трансформерных моделях при локальном инференсе на CPU.
В гибридных процессорах Intel (Alder Lake, Raptor Lake) возникла дилемма: большие P-ядра поддерживали AVX-512-VNNI, а маленькие E-ядра нет, из-за чего VNNI был малопригоден на практике. Решением стал AVX-VNNI, VEX-версия тех же инструкций для 256-битных векторов, которую поддерживают и E-ядра. AMD реализовала VNNI в Zen 4 и Zen 5, поэтому INT8/INT16-операции успешно работают в том числе на энергоэффективных ядрах Zen c.
BF16 и FP16 (2020+)
Для дальнейшего ускорения ИИ в AVX-512 добавили форматы с плавающей запятой пониженной точности:
- BFloat16 (BF16). Сохраняет эффективность FP32 при меньшем расходе ресурсов, поэтому хорошо прижился и в инференсе, и в обучении. Команда VDPBF16PS в чипах Intel дополнительно выполняет скалярное произведение. Поддержка BF16 появилась раньше FP16, поскольку формат проще интегрировать без изменения аппаратной архитектуры.
- FP16 (IEEE half-precision). Классический 16-битный формат, популярный в медиа и инференсе. Полная арифметика AVX-512-FP16 появилась только в 2023 году в чипах Sapphire Rapids.
Intel как пионер серверного сегмента активно продвигала BF16 и FP16 на CPU (AVX512_BF16 впервые добавили в Cooper Lake), пытаясь найти Xeon новое применение в эпоху господства GPU в обучении. AMD не отстала и добавила поддержку BF16 в AVX-512 на серверных Zen 4, а затем и Zen 5.
AMX: матричные ядра внутри CPU (2023)
AMX (Advanced Matrix Extensions) — скорее качественный скачок, чем эволюция AVX. Это выделенные матричные ускорители внутри процессора, появившиеся в Intel Xeon Scalable 4-го поколения. Вместо векторных регистров здесь используются двумерные тайловые регистры и специализированные инструкции (TDPBF16PS, TDPBSSD) для умножения матриц INT8/BF16. Для глубокого обучения это радикальный рост производительности.
Но AMX остался нишевой технологией Intel для старших серверных CPU. AMD прямого аналога не внедряла, хотя ходят слухи, что в Zen 6 может появиться схожая технология BMM. Intel возлагала на AMX большие надежды и выпустила специализированный Xeon Max с памятью HBM, большим числом матричных ядер и упором на обучение и инференс, но конкурировать с GPU не получилось: разрыв в производительности и эффективности остаётся колоссальным. Тысячи потоковых ядер GPU по-прежнему вне конкуренции для обучения и крупного инференса. CPU достаётся роль платформы для «краевых» вычислений, доработки моделей и сценариев с ограничениями по задержке или совместимости. Текущий дефицит оперативной памяти практически закрыл тему инференса на CPU: для эффективного локального развёртывания моделей нужны терабайты RAM.
Если вам нужны именно ИИ-нагрузки, обратите внимание на GPU-серверы для ИИ.
Прочие специализированные поднаборы
AVX-512 включает и узкоспециализированные инструкции для конкретных задач:
- VAES, VPCLMULQDQ — векторное ускорение шифрования AES-GCM, критичное для SSL/TLS и защищённых коммуникаций;
- GFNI — работа с полем Галуа (erasure coding, RAID);
- VPOPCNTDQ, BITALG — быстрый подсчёт и манипуляции с большими объёмами данных;
- VP2INTERSECT — поиск пересечений в двух векторных наборах (базы данных, поиск).
Эти расширения реализованы в современных серверных процессорах (EPYC 9004/9005, Xeon Scalable 3–5 поколений, Xeon 6) и в некоторых производительных настольных (Ryzen 7000/9000, Core 10–15 поколений).
AMX или AVX-512 для ИИ-инференса
Сравним на практике два 128-ядерных процессора на P-ядрах: Intel Xeon 6980P с AMX и AMD EPYC 9755 с полной поддержкой AVX-512 при CPU-инференсе через движок llama.cpp. В большинстве реальных сценариев выигрывает Xeon с AMX, особенно на квантизованных моделях в INT8/BF16. Объяснение простое: механизм внимания и линейные слои построены на матричных алгоритмах, а именно под них заточен AMX.
Цифры из документации Intel: AMX выполняет 2048 INT8-операций за такт, AVX-512 только 256. В открытых тестах преимущество подтверждается: при инференсе модели llama 3.2B Q8 в llama.cpp Xeon с AMX выдавал примерно вдвое больше токенов в секунду, чем Xeon без AMX (3-е поколение Scalable).
Обычный AVX-512 оптимизирован под векторные операции, которые в ИИ напрямую используются редко, но задействуются при компиляции или в инференсе на тензорных ядрах. Если выбирать между EPYC с AVX-512 и EPYC без него, лучше покажет себя первый, особенно если в коде модели есть векторные операции, но в большинстве случаев выигрыш будет небольшим.
Intel против AMD: кто сильнее в AVX
Intel традиционно была драйвером инноваций в SIMD: AVX, AVX2, AVX-512, VNNI, AMX появились именно у неё. Подход нередко был агрессивным и шёл в ущерб энергоэффективности и рентабельности. AMD долго шла с отставанием, делая ставку на сбалансированность и эффективность, а её ранние попытки создать альтернативу провалились. Но в Zen 4 и Zen 5 AMD не только догнала Intel по поддержке ключевых наборов (AVX-512, VNNI), но и сделала их доступнее в настольном сегменте без серьёзных частотных штрафов.
В ближайшей перспективе (Diamond Rapids против Zen 6) паритет по векторным инструкциям сохранится, а борьба переместится в область микроархитектурной эффективности, энергопотребления и экосистемы специализированных ускорителей. Исторически сильнее как новатор была Intel, но AMD в последние годы показывает выдающиеся результаты в эффективной реализации, поэтому не исключено, что именно она станет главным локомотивом SIMD. При этом в сети хватает пользователей, оспаривающих пользу AVX-инструкций.
Практические выводы
Эволюция AVX, от простого удвоения ширины вектора до семейства специализированных ИИ-расширений, отражает путь всей индустрии x86: частотная гонка уступила место оптимизации параллелизма. Что из этого следует при выборе платформы:
- Учитывайте микроархитектуру. Эффективно использовать AVX можно, только понимая частотные штрафы, пропускную способность исполнения и задержки конкретного процессора. Слепая погоня за самыми широкими инструкциями способна дать обратный эффект.
- Подтверждайте профилированием. Внедрение AVX-512 должно быть взвешенным и опираться на измерения на целевой платформе.
- Разделяйте сегменты. В настольных приложениях общего назначения AVX-512 чаще всего избыточен, тогда как в серверных и научных задачах он критически важен.
- Не ждите от CPU невозможного. Платформой номер один для обучения ИИ процессор не стал и, видимо, не станет, но останется ключевым элементом гетерогенных систем: он управляет вычислениями и выполняет широкий спектр задач, часть которых ускоряется собственными векторными и матричными блоками.
Подобрать сервер под HPC, виртуализацию или ИИ-нагрузки с нужной поддержкой AVX-512 или AMX поможет каталог серверов, а с выбором конфигурации под вашу задачу специалисты «СервакМастер» помогут через раздел контактов.
