Описание тега avx512
AVX512 - это набор расширений набора команд для x86, который поддерживает 512-битные векторы SIMD.
AVX512 разбит на следующие подрасширения. Хотя все реализации AVX512 должны поддерживать AVX512-F, остальные не являются обязательными.
- AVX512-F (фундамент)
- AVX512-CD (Обнаружение конфликтов)
- AVX512-ER (экспоненциальный и взаимный)
- AVX512-PF (предварительная выборка)
- AVX512-BW (байтовые и словарные инструкции)
- AVX512-DQ (инструкции с двойным и четвертым словом)
- AVX512-VL (длина вектора)
- AVX512-IFMA (52-битное целочисленное умножение-сложение)
- AVX512-VBMI (обработка векторных байтов)
- AVX512-VPOPCNT (подсчет векторной популяции)
- AVX512-4FMAPS (4 x Fused Multiply-Add Single Precision)
- AVX512-4VNNIW (4 инструкции нейронной сети)
- AVX512-VBMI2 (обработка векторных байтов 2)
- AVX512-VNNI (инструкции нейронной сети?)
- AVX512-BITALG (битовые алгоритмы)
- AVX512-VAES (векторные инструкции AES)
- AVX512-VGFI (Арифметика поля Галуа)
- AVX512-VPCLMULQ (векторное умножение без переноса)
Поддерживающие процессоры:
- Intel Xeon Phi Knights Landing: AVX512-(F, CD, ER, PF)
- Intel Xeon Phi Knights Mill: AVX512-(F, CD, ER, PF, VPOPCNT, 4FMAPS, 4VNNIW)
- Intel Skylake Xeon: AVX512-(F, CD, BW, DQ, VL)
- Intel Cannonlake: AVX512-(F, CD, BW, DQ, VL, IFMA, VBMI)
- Intel Ice Lake: AVX512-(F, CD, BW, DQ, VL, IFMA, VBMI, VPOPCNT, VBMI2, VNNI, BITALG, VAES, VGFI, VPCLMULQ)
Основа (AVX512-F):
Все реализации AVX512 должны поддерживать AVX512-F. AVX512-F расширяет AVX, удваивая размер вектора до 512 бит и удваивая количество регистров до 32. Он также обеспечивает встроенное маскирование с помощью 8 регистров opmask.
AVX512-F поддерживает операции только с 32-битными и 64-битными словами и работает только с zmm (512-битными) регистрами.
Обнаружение конфликтов (AVX512-CD):
AVx512-CD помогает векторизации, предоставляя инструкции для обнаружения конфликтов данных.
Экспоненциальная и взаимная (AVX512-ER):
AVX512-ER содержит инструкции для вычисления обратных и экспоненциальных функций с повышенной точностью. Они используются для быстрого вычисления тригонометрических функций.
Предварительная выборка (AVX512-PF):
AVX512-PF предоставляет инструкции для предварительной выборки сбора / разброса векторов.
Байт и слово (AVX512-BW):
AVX512-BW расширяет AVX512-F, добавляя поддержку операций с байтами и словами (8/16 бит).
Двойное и четверное слово (AVX512-DQ):
AVX512-DQ расширяет AVX512-F, предоставляя дополнительные инструкции для 32-битных и 64-битных данных.
Длина вектора (AVX512-VL):
AVX512-VL расширяет AVX512-F, позволяя работать с полной функциональностью AVX512 xmm
а также ymm
регистры (в отличие от только zmm
). Это включает в себя маскировку, а также увеличенное число регистров до 32.
52-битное целочисленное умножение-сложение (AVX512-IFMA):
AVX512-IFMA предоставляет объединенные инструкции умножения и сложения для 52-битных целых чисел. (Предположение: вероятно, получено из аппаратного обеспечения FMA с плавающей запятой)
Векторное управление битами (AVX512-VBMI):
AVX512-VBMI предоставляет инструкции для перестановки байтов. Он расширяет существующие инструкции перестановки до побайтной детализации.
Подсчет векторной популяции (AVX512-VPOPCNT)
Векторизованная версия popcnt
инструкция для 32-битных и 64-битных слов.
4 x Fused Multiply-Add Single Precision (AVX512-4FMAPS)
AVX512-4FMAPS предоставляет инструкции, которые выполняют 4 последовательных FMA с одинарной точностью.
Инструкции нейронной сети (AVX512-4VNNIW)
Специализированные инструкции по 16-битным целым числам для нейронных сетей. Они следуют тому же формату "4 последовательных" операционных инструкций, что и AVX512-4FMAPS.
Vector Byte-Manipulation 2 (AVX512-VBMI2)
Расширяет AVX512-VBMI, добавляя поддержку сжатия / расширения для размеров слов с разбивкой по байтам.
Инструкции нейронной сети (AVX512-VNNI)
Специализированные инструкции для нейронных сетей. Это настольная /Xeon версия AVX512-4VNNIW на Knights Mill Xeon Phi.
Битовые алгоритмы (AVX512-BITALG)
Расширяет AVX512-VPOPCNT на слово, 8-битные и 16-битные слова. Добавляет дополнительные инструкции по манипулированию битами.
Векторные инструкции AES (AVX512-VAES)
Расширяет существующие инструкции AES-NI до 512-битной ширины.
Арифметика поля Галуа (AVX512-VGFI)
Арифметика для полей Галуа.
Векторное умножение без переноса (AVX512-VPCLMULQ)
Векторизованная версия pclmulqdq
инструкция.