Как стать автором
Обновить

Intel реализовала сортировку на AVX-512: ускорение в 10–17 раз

Время на прочтение3 мин
Количество просмотров13K

Мёртвый груз модулей AVX-512 (перечёркнуты) на кристалле Alder Lake-S. igor'sLAB

Компания Intel опубликовала библиотеку x86-simd-sort для высокопроизводительной сортировки на основе SIMD. Библиотеку уже используют: вчера проект NumPy добавил это решение. В бенчмарке у NumPy получился прирост скорости в 17 раз для 16-битных int и в 10 раз для float64.

Без каких-либо объявлений в конце прошлого года Intel опубликовала библиотеку x86-simd-sort — на аккаунте GitHub просто появился новый репозиторий за авторством инженера компании Рагхувира Девулапалли. Код распространяется под 3-пунктовой лицензией BSD.

В текущем виде x86-simd-sort реализует лишь алгоритмы быстрой сортировки в инструкциях compressstore из AVX-512 на основе двух научных статей:


Отсутствовали не только новостные релизы. Девулапалли не положил в репозиторий обещаний о заметном приросте производительности или хотя бы результатов бенчмарков.

Такой информацией инженер Intel поделился лишь в PR #22315 проекта NumPy. Этот пулл-реквест предлагает векторизовать быструю сортировку 16- и 64-битных типов данных для AVX-512. Вчера пулл-реквест смёрджили в NumPy.

Девулапалли замерил улучшения производительности. За счёт использования x86-simd-sort сортировка 16-битных целых чисел ускорилась в 17 раз, 64-битных с плавающей запятой — в почти 10 раз.

Замеры проводились на i7-1165G7, процессоре 11-го поколения семейства Core для мобильного сегмента. Легко представить, что Девулапалли прогнал бенчмарки на своём рабочем ноутбуке.

Сама Intel в Alder Lake, 12-м поколении процессоров Core, убрала AVX-512 из «ширпотребных» продуктов. Изначально в десктопных и ноутбучных процессорах Alder Lake в ядрах P модуль AVX-512 присутствовал и, при удачных конфигурациях материнских плат и версий BIOS, мог быть задействован выключением энергоэффективных ядер E. Позднее Intel сначала деактивировала модуль AVX-512 обновлениями микрокода BIOS, а с середины 2022 года начала поставлять ревизии процессоров Alder Lake, где этот модуль с завода отключён уже физически на кристалле.

Если Intel убирает AVX-512 из не-серверных решений, то AMD, наоборот, впервые добавляет AVX-512 в свои продукты в четвёртом поколении микроархитектуры Zen.

Но не стоит думать, что для AMD сделали щедрый подарок: AVX-512 в Zen 4 оставляет желать лучшего в плане реализации инструкций compressstore — именно тех инструкций, на основе которых построена библиотека x86-simd-sort. Как утверждает один из энтузиастов на Reddit, на Ryzen 7 7700X ускорение за счёт x86-simd-sort не так существенно (в 1,4—2,6 раза) или же вообще отсутствует. Впрочем, конфигурации makefile были сделаны для Ice Lake, и реддитор признал, что не менял их для этого простого замера. Когда он попробовал эмуляцию compressstore для Zen 4, скорость выросла на порядок.

AVX-512 — расширение системы команд AVX (Advanced Vector Extensions) до векторов длиной 512 бит. Впервые технологию реализовали в сопроцессорах Xeon Phi, а затем она перекочевала в традиционные процессоры, поначалу оказавшись в дорогих решениях Skylake-X. Если в Skylake (6-е поколение) задействование «тяжёлых» инструкций AVX-512 приводило к заметному снижению тактовой частоты для регулирования тепловыделения, то Ice Lake (10-е поколение) замедляется всего на 100 МГц, а Rocket Lake (11-е поколение) не меняет частоту вовсе.

Рагхувир Девулапалли уже не впервые помогает проекту NumPy с помощью векторизации. В прошлом в PR #19478 инженер Intel ускорил за счёт AVX-512 модуль umath в десятки раз.

На векторизацию полагаются всё больше и больше проектов open source, и NumPy здесь лишь следует общему тренду. Вчера вышла версия 1.1 декодера dav1d, в которой на основе AVX-512 реализованы алгоритмы 12bpc transform (частично), high bit-depth cdef_filter, loopfilter и itx. Разработчик FFmpeg представил в начале февраля доклад с планами использовать больше кода с AVX-512.

github.com/intel/x86-simd-sort
Теги:
Хабы:
Всего голосов 21: ↑21 и ↓0+21
Комментарии7

Другие новости

Ближайшие события