Как стать автором
Обновить
230.14
ITSumma
Эксперты в производительности

Intel оптимизировала библиотеку Numpy под AVX-512, ускорив вычисления Python в 14—32 раза

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

Расположение векторного регистрового файла (жёлтый) и целочисленного регистрового файла (красный) на процессорах Skylake. Блок векторных регистров AVX-512 зашит в жёлтой области

Компания Intel представила патч к библиотеке Numpy с оптимизациями, которые используют фирменный набор инструкций AVX-512.

Numpy — библиотека с открытым исходным кодом для языка программирования Python c поддержкой многомерных массивов (включая матрицы) и высокоуровневых математических функций. Numpy активно используется сообществом Python для реализации вычислительных алгоритмов — и эту библиотеку можно рассматривать в каком-то смысле как свободную альтернативу Matlab.

В комментариях к патчу в файле doc/release/upcoming_changes/19478.performance.rst написано, что векторизация модуля umath с использованием AVX-512 означает применение библиотеки Intel Short Vector Math Library (SVML) для векторизации 18 функций umath (exp2, log2, log10, expm1, log1p, cbrt, sin, cos, tan, arcsin, arccos, arctan, sinh, cosh, tanh, arcsinh, arccosh, arctanh) как одинарной, так и двойной точности.

«В настоящее время это изменение включено только для пользователей Linux и на процессорах с набором инструкций AVX-512. Оно обеспечивает среднее ускорение в 32x и 14x для функций одинарной и двойной точности соответственно», — сказано в комментарии.



На самом деле первоначальный код AVX-512 для Numpy компания Intel выложила ещё летом. На прошлой неделе его, наконец, приняли. Как написано в комментарии выше, он основан на библиотеке Intel Short Vector Math Library (SVML). Судя по всему, основная часть кода взята оттуда. Intel также разрабатывает версию Numpy на базе SVML в качестве отдельного форка.

Первоначальная реализация AVX-512 предлагала оптимизированные версии 44 математических функций — практически всех основных математических функций Numpy, причём в режиме одинарной, так и двойной точности. Однако в финальной версии к слиянию приняли код только для 18 функций, перечисленных выше.

Инженеры Intel проверили и обнаружили, что даже на старых процессорах Intel Skylake X такая оптимизация Numpy даёт ускорение до 55х в отдельных функциях. Среднее ускорение составило 14x для двойной точности и 32x для одинарной.

Cтоль грандиозное ускорение достигается не только благодаря инструкциям AVX-512, но во многом благодаря оптимизированному коду SVML. К сожалению, Intel не открывает полностью исходный код этой библиотеки, иначе его бы уже давно добавили в Numpy.

Справка. Набор инструкций AVX-512 расширяет систему команд AVX до векторов длиной 512 бит при помощи кодировки с префиксом EVEX. Расширение AVX-512 вводит 32 векторных регистра (ZMM), каждый по 512 бит, 8 регистров масок, 512-разрядные упакованные форматы для целых и дробных чисел и операции над ними, тонкое управление режимами округления (позволяет переопределить глобальные настройки), операции broadcast (рассылка информации из одного элемента регистра в другие), подавление ошибок в операциях с дробными числами, операции gather/scatter (сборка и рассылка элементов векторного регистра в/из нескольких адресов памяти), быстрые математические операции, компактное кодирование больших смещений.

Блок AVX-512 реализован в следующих процессорах: Intel Xeon Phi x200 и x205 (в сопроцессорах Knights Landing и Knights Mill), а также в семействах Skylake-SP, Skylake-X, Cannon Lake, Cascade Lake, Cooper Lake, Ice Lake, Rocket Lake, Tiger Lake, Sapphire Rapids.

Любопытно, что Intel убрала блок инструкций AVX-512 из новых процессоров 12-го поколения Alder Lake. Возможно потому, что он занимает очень много места на микросхеме (см. фотографию вверху). А вот компания AMD, наоборот, по слухам, собирается добавить блок AVX-512 в будущие процессоры Zen 4. Вероятно, более продвинутый техпроцесс с уменьшенным размером узлов позволяет это сделать.

Так что нынешний коммит Intel в библиотеку Numpy — это своеобразный подарок AMD на будущее.
Теги:
Хабы:
+39
Комментарии12

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

Информация

Сайт
www.itsumma.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
ITSumma