stringtranslate.com

AVX-512

AVX-512 — это 512-битное расширение 256-битных инструкций SIMD Advanced Vector Extensions для архитектуры набора команд x86 (ISA), предложенное Intel в июле 2013 года и впервые реализованное в Intel Xeon Phi x200 (Knights Landing) 2016 года [1] ] , а затем позже в ряде процессоров AMD и других процессоров Intel (см. список ниже). AVX-512 состоит из нескольких расширений, которые можно реализовать независимо. [2] Эта политика является отходом от исторического требования реализации всего блока команд. Для всех реализаций AVX-512 требуется только основное расширение AVX-512F (AVX-512 Foundation).

Помимо расширения большинства 256-битных инструкций, расширения вводят различные новые операции, такие как новые преобразования данных, операции разброса и перестановки. [2] Количество регистров AVX увеличено с 16 до 32, и добавлены восемь новых «регистров маски», которые позволяют выбирать переменные и смешивать результаты инструкций. В ЦП с расширением длины вектора (VL), включенном в большинство процессоров с поддержкой AVX-512 (см. § ЦП с AVX-512), эти инструкции также могут использоваться с размерами векторов 128 и 256 бит. AVX-512 — не первый 512-битный набор инструкций SIMD, который Intel внедрила в процессоры: более ранние 512-битные инструкции SIMD, используемые в сопроцессорах Xeon Phi первого поколения и созданные на основе проекта Intel Larrabee , аналогичны, но не совместимы на уровне двоичного кода и только частично совместим с исходным кодом. [1]

Набор инструкций

Набор инструкций AVX-512 состоит из нескольких отдельных наборов, каждый из которых имеет свой собственный уникальный бит функции CPUID; однако они обычно группируются по поколению процессоров, в которых они реализованы.

Ф, КД, ЕР, ПФ
Представлен в Xeon Phi x200 (Knights Landing) и Xeon Gold/Platinum ( Skylake SP «Purley»), причем последние два (ER и PF) предназначены только для Knights Landing.
  • AVX-512 Foundation (F)  — расширяет большинство 32-битных и 64-битных инструкций AVX схемой кодирования EVEX для поддержки 512-битных регистров, масок операций, широковещательной передачи параметров, а также встроенного округления и контроля исключений, реализованных Knights Landing и Скайлейк Ксеон
  • AVX-512 Conflict Detection Instructions (CD)  — эффективное обнаружение конфликтов, позволяющее векторизовать больше циклов , реализовано Knights Landing [1] и Skylake X.
  • AVX-512 Экспоненциальные и обратные инструкции (ER) - экспоненциальные и обратные операции, предназначенные для реализации трансцендентных операций, реализованные Knights Landing [1]
  • Инструкции предварительной выборки AVX-512 (PF)  - новые возможности предварительной выборки, реализованные Knights Landing [1]
ВЛ, ДК, ЧБ
Представлен вместе со Skylake X и Cannon Lake .
  • Расширения векторной длины AVX-512 (VL)  — расширяет большинство операций AVX-512 для работы с регистрами XMM (128-бит) и YMM (256-бит) [3]
  • Инструкции AVX-512 с двойным и четверным словом (DQ)  — добавляют новые 32-битные и 64-битные инструкции AVX-512 [3]
  • AVX-512 Байтовые и словесные инструкции (BW)  — расширяют AVX-512 для поддержки 8-битных и 16-битных целочисленных операций [3]
ИФМА, ВБМИ
Представлено в Кэннон Лейк . [4]
  • AVX-512 Integer Fused Multiply Add (IFMA) – объединенное умножение целых чисел с точностью до 52 бит.
  • Инструкции по манипулированию векторными байтами AVX-512 (VBMI) добавляют инструкции по перестановке векторных байтов, которых не было в AVX-512BW.
4ВННИВ, 4ФМАПС
Представлен вместе с Knights Mill . [5] [6]
  • AVX-512 Векторные инструкции нейронной сети Word переменной точности (4VNNIW) — векторные инструкции для глубокого обучения, расширенного слова, переменной точности.
  • AVX-512 Fused Multiply Accumulation Packed Single Precision (4FMAPS) — векторные инструкции для глубокого обучения, с плавающей запятой, одинарной точности.
ВПОПКНТДК
Инструкция по подсчету векторной популяции . Представлен вместе с Knights Mill и Ice Lake . [7]
ВННИ, ВБМИ2, БИТАЛГ
Представлено с Ледяным озером. [7]
  • AVX-512 Vector Neural Network Instructions (VNNI) – векторные инструкции для глубокого обучения.
  • AVX-512 Инструкция по манипулированию векторными байтами 2 (VBMI2) – загрузка байтов/слов, сохранение и объединение со сдвигом.
  • Битовые алгоритмы AVX-512 (BITALG) — инструкции по манипуляции битами/словами , расширяющие VPOPCNTDQ.
ВП2ИНТЕРСЕКТ
Представлено с Тайгеровым озером.
  • AVX-512 Пересечение векторной пары с парой регистров маски (VP2INTERSECT) .
GFNI, VPCLMULQDQ, VAES
Представлено с Ледяным озером. [7]
  • Это не функции AVX-512 как таковые. Вместе с AVX-512 они позволяют использовать версии инструкций GFNI, PCLMULQDQ и AES в кодировке EVEX.

Кодировка и особенности

Префикс VEX , используемый AVX и AVX2, хотя и был гибким, не оставлял достаточно места для функций, которые Intel хотела добавить в AVX-512. Это побудило их определить новый префикс под названием EVEX .

По сравнению с VEX, EVEX имеет следующие преимущества: [6]

Расширенные регистры, бит ширины SIMD и регистры opmask AVX-512 являются обязательными и требуют поддержки со стороны ОС.

SIMD-режимы

Инструкции AVX-512 предназначены для смешивания с 128/256-битными инструкциями AVX/AVX2 без снижения производительности. Однако расширения AVX-512VL позволяют использовать инструкции AVX-512 в 128/256-битных регистрах XMM/YMM, поэтому большинство инструкций SSE и AVX/AVX2 имеют новые версии AVX-512, закодированные с префиксом EVEX, которые обеспечивают доступ к новым функциям. такие как opmask и дополнительные регистры. В отличие от AVX-256, новые инструкции не имеют новой мнемоники, но разделяют пространство имен с AVX, что делает различие между версиями инструкций, закодированными VEX и EVEX, в исходном коде неоднозначным. Поскольку AVX-512F работает только с 32- и 64-битными значениями, инструкции SSE и AVX/AVX2, которые работают с байтами или словами, доступны только с расширением AVX-512BW (поддержка байтов и слов). [6]

Расширенные регистры

Ширина файла регистров SIMD увеличена с 256 бит до 512 бит и увеличена с 16 до 32 регистров ZMM0–ZMM31. Эти регистры могут быть адресованы как 256-битные регистры YMM из расширений AVX и 128-битные регистры XMM из потоковых расширений SIMD , а устаревшие инструкции AVX и SSE могут быть расширены для работы с 16 дополнительными регистрами XMM16-XMM31 и YMM16-YMM31 при использовании EVEX. закодированная форма.

Регистры опмаски

Большинство инструкций AVX-512 могут указывать один из 8 регистров опмаски (k0–k7). Для инструкций, которые используют регистр маски в качестве маски операции, регистр «k0» является специальным: жестко запрограммированная константа, используемая для обозначения немаскированных операций. Для других операций, например, операций записи в регистр opmask или выполнения арифметических или логических операций, «k0» является функционирующим и допустимым регистром. В большинстве инструкций маска op используется для контроля того, какие значения записываются в место назначения. Флаг управляет поведением opmask, которое может быть либо «нулевым», что обнуляет все, что не выбрано маской, либо «объединением», что оставляет все невыделенное нетронутым. Поведение слияния идентично инструкциям смешивания.

Регистры opmask обычно имеют ширину 16 бит, но с расширением AVX-512BW могут достигать 64 бит. [6] Однако количество битов, которые фактически используются, зависит от векторного типа маскируемых инструкций. Для 32-битных одинарных или двойных слов с плавающей запятой 16 бит используются для маскировки 16 элементов в 512-битном регистре. Для двойных слов с плавающей запятой и четверных слов используется не более 8 битов маски.

Регистр opmask является причиной того, что в AVX-512 были добавлены несколько побитовых инструкций, которые, естественно, не имеют ширины элементов. Например, побитовое И, ИЛИ или 128-битное перемешивание теперь существует как в вариантах с двойным словом, так и с четырьмя словами, с той лишь разницей, что в окончательной маскировке.

Новые инструкции по маске

Регистры opmask имеют новое мини-расширение инструкций, работающих непосредственно с ними. В отличие от остальных инструкций AVX-512, все эти инструкции закодированы VEX. Все первоначальные инструкции opmask представляют собой 16-битные версии (Word). В AVX-512DQ были добавлены 8-битные (Byte) версии, чтобы лучше соответствовать требованиям маскировки 8 64-битных значений, а в AVX-512BW были добавлены 32-битные (Double) и 64-битные (Quad) версии, чтобы они могли маска до 64 8-битных значений. Инструкции KORTEST и KTEST можно использовать для установки флагов x86 на основе регистров маски, чтобы их можно было использовать вместе с инструкциями ветвления x86, отличными от SIMD, и условными инструкциями.

Новые инструкции в тональной основе AVX-512

Многие инструкции AVX-512 представляют собой просто EVEX-версии старых инструкций SSE или AVX. Однако есть несколько новых инструкций, а также старые инструкции, которые были заменены новыми версиями AVX-512. Ниже перечислены новые или сильно переработанные инструкции. Эти базовые инструкции также включают расширения AVX-512VL и AVX-512BW, поскольку эти расширения просто добавляют новые версии этих инструкций вместо новых инструкций.

Растушуйте с помощью маски

Версий инструкций смешивания из SSE4 с префиксом EVEX не существует ; вместо этого AVX-512 имеет новый набор инструкций смешивания, использующих регистры маски в качестве селекторов. Вместе с приведенными ниже общими инструкциями сравнения с маской они могут использоваться для реализации общих троичных операций или cmov, аналогичных VPCMOV в XOP .

Поскольку смешивание является неотъемлемой частью кодирования EVEX, эти инструкции также можно считать базовыми инструкциями перемещения. Используя режим наложения обнуления, их также можно использовать в качестве инструкций маскировки.

Сравнить с маской

AVX-512F имеет четыре новые инструкции сравнения. Как и их коллеги из XOP , они используют поле «Непосредственно» для выбора между 8 различными сравнениями. Однако, в отличие от своего вдохновения XOP, они сохраняют результат в регистре маски и изначально поддерживают только сравнения двойных и четверных слов. Расширение AVX-512BW предоставляет байтовые и словные версии. Обратите внимание, что для инструкций могут быть указаны два регистра маски: один для записи, а другой для объявления обычного маскировки. [6]

Маска логического набора

Последний способ установки масок — использование маски логического набора. Эти инструкции выполняют либо И, либо НЕИ, а затем устанавливают операционную маску назначения на основе нулевых или ненулевых значений результата. Обратите внимание, что, как и инструкции сравнения, они принимают два регистра opmask: один в качестве адресата, а другой — обычную opmask.

Сжимать и расширять

Инструкции сжатия и расширения соответствуют одноименным операциям APL . Они используют opmask немного иначе, чем другие инструкции AVX-512. Сжатие сохраняет только значения, отмеченные в маске, но сохраняет их в сжатом виде, пропуская и не резервируя место для неотмеченных значений. Расширение работает противоположным образом: загружается столько значений, сколько указано в маске, а затем распределяется по выбранным позициям.

Перестановка

Был добавлен новый набор инструкций перестановки для полных двух перестановок входных данных. Все они принимают три аргумента, два исходных регистра и один индекс; результат выводится путем перезаписи первого исходного регистра или индексного регистра. AVX-512BW расширяет инструкции, включая также 16-битные версии (слова), а расширение AVX-512_VBMI определяет байтовые версии инструкций.

Побитовая троичная логика

Добавлены две новые инструкции, которые могут логически реализовать все возможные побитовые операции между тремя входами. Они принимают на вход три регистра и 8-битное непосредственное поле. Каждый бит на выходе генерируется с использованием поиска трех соответствующих битов на входах для выбора одной из 8 позиций в 8-битном немедленном сообщении. Поскольку с использованием трех бит возможны только 8 комбинаций, это позволяет выполнять все возможные 3 входные побитовые операции. [6] Это единственные побитовые векторные инструкции в AVX-512F; Версии EVEX двух исходных побитовых векторных инструкций SSE и AVX AND, ANDN, OR и XOR были добавлены в AVX-512DQ.

Разница между версиями двойного и четверного слова заключается только в применении opmask.

Конверсии

Был добавлен ряд инструкций преобразования или перемещения; они дополняют набор инструкций преобразования, доступных в SSE2.

Разложение с плавающей запятой

Среди уникальных новых функций AVX-512F — инструкции по разложению значений с плавающей запятой и обработке специальных значений с плавающей запятой . Поскольку эти методы совершенно новые, они существуют и в скалярных версиях.

Арифметика с плавающей запятой

Это второй набор новых методов с плавающей запятой, который включает в себя новое масштабирование и приближенный расчет обратной величины и обратной величины квадратного корня. Приблизительные обратные инструкции гарантируют максимальную относительную ошибку 2 −14 . [6]

Транслировать

Разнообразный

Новые инструкции по наборам

Обнаружение конфликтов

Инструкции в обнаружении конфликтов AVX-512 (AVX-512CD) предназначены для эффективного расчета бесконфликтных подмножеств элементов в циклах, которые обычно не могут быть безопасно векторизованы. [8]

Экспоненциальный и обратный

Экспоненциальные и обратные инструкции AVX-512 (AVX-512ER) содержат более точные приблизительные обратные инструкции, чем инструкции в основе AVX-512; относительная ошибка не более 2-28 . Они также содержат две новые экспоненциальные функции, имеющие относительную ошибку не более 2–23 . [6]

Предварительная выборка

Инструкции предварительной выборки AVX-512 (AVX-512PF) содержат новые операции предварительной выборки для новых функций рассеяния и сбора, представленных в AVX2 и AVX-512. T0предварительная выборка означает предварительную выборку в кеш уровня 1 и T1означает предварительную выборку в кеш уровня 2.

4FMAPS и 4VNNIW

Два набора инструкций выполняют несколько итераций обработки. Обычно они встречаются только в продуктах Xeon Phi.

BW, DQ и VBMI

AVX-512DQ добавляет новые инструкции из двойного и четверного слова. AVX-512BW добавляет байтовые и словесные версии одних и тех же инструкций, а также добавляет байтовые и словесные версии инструкций двойного/четверного слова в AVX-512F. Некоторые инструкции, которые получают только словесные формы с помощью AVX-512BW, приобретают байтовые формы с расширением AVX-512_VBMI ( VPERMB, VPERMI2B, VPERMT2B, VPMULTISHIFTQB).

В набор инструкций маски были добавлены две новые инструкции: KADDи KTEST(формы B и W для AVX-512DQ, D и Q для AVX-512BW). Остальные инструкции маски, которые имели только словесные формы, получили байтовые формы с AVX-512DQ и формы двойного/четверного слова с AVX-512BW. KUNPCKBWбыл расширен до KUNPCKWDAVX KUNPCKDQ-512BW.

Среди инструкций, добавленных AVX-512DQ, есть несколько инструкций SSE и AVX, которые не получили версии AVX-512 с AVX-512F, среди них все две входные побитовые инструкции и инструкции извлечения/вставки целых чисел.

Ниже приведены совершенно новые инструкции.

Инструкции с плавающей запятой

Введены три новые операции с плавающей запятой. Поскольку они не только новы для AVX-512, у них есть как упакованные/SIMD, так и скалярные версии.

Инструкции VFPCLASSпроверяют, является ли значение с плавающей запятой одним из восьми специальных значений с плавающей запятой, какое из восьми значений будет запускать бит в регистре выходной маски, который контролируется непосредственным полем. Инструкции VRANGEвыполняют минимальные или максимальные операции в зависимости от значения непосредственного поля, которое также может контролировать, выполняется ли операция абсолютно или нет, и отдельно, как обрабатывается знак. Инструкции VREDUCEработают с одним источником и вычитают из него целую часть значения источника плюс количество битов, указанных в непосредственном поле его дроби.

Прочие инструкции

индекс ИМТ2

Расширьте VPCOMPRESS и VPEXPAND вариантами байтов и слов. Инструкции по сменам новые.

ВННИ

Инструкции векторной нейронной сети: [9] AVX512-VNNI добавляет инструкции в коде EVEX , описанные ниже. В AVX-512F эти инструкции могут работать с 512-битными векторами, а в AVX-512VL дополнительно добавлена ​​поддержка 128- и 256-битных векторов.

Более позднее расширение AVX-VNNI добавляет кодировку этих инструкций VEX , которая может работать только с 128- или 256-битными векторами. AVX-VNNI не является частью пакета AVX-512, он не требует AVX-512F и может быть реализован независимо.

ИФМА

Инструкции умножения-сложения целых чисел. AVX512-IFMA добавляет инструкции в коде EVEX , описанные ниже.

Отдельное расширение набора команд AVX-IFMA определяет кодировку этих инструкций VEX . Это расширение не является частью пакета AVX-512 и может быть реализовано независимо.

ВПОПКНТДК и БИТАЛГ

ВП2ИНТЕРСЕКТ

ГФНИ

Новые инструкции поля Галуа полезны для криптографии [10] , поскольку их можно использовать для реализации S-блоков в стиле Рейндала, таких как те, которые используются в AES, Camellia и SM4 . [11] Эти инструкции также можно использовать для манипуляций с битами в сетях и обработке сигналов. [10]

GFNI — это автономное расширение набора команд, которое можно включить отдельно от AVX или AVX-512. В зависимости от того, указана ли процессором поддержка AVX и AVX-512F, поддержка GFNI позволяет использовать устаревшие (SSE), инструкции с кодировкой VEX или EVEX, работающие с 128-, 256- или 512-битными векторами.

ВПКLMULQDQ

VPCLMULQDQ с AVX-512F добавляет 512-битную версию инструкции PCLMULQDQ в кодировке EVEX . В AVX-512VL добавлены 256- и 128-битные версии с кодировкой EVEX. Только VPCLMULQDQ (то есть на процессорах, отличных от AVX512) добавляет только 256-битную версию с кодировкой VEX. (Наличие 128-битной версии с кодировкой VEX указывается разными битами CPUID: PCLMULQDQ и AVX.) Более широкие, чем 128-битные, варианты инструкции выполняют одну и ту же операцию с каждой 128-битной частью входных регистров, но они не расширять его для выбора четверных слов из разных 128-битных полей (значение операнда imm8 одинаково: выбирается либо младшее, либо старшее четверное слово 128-битного поля).

ВАЭС

Инструкции AES в кодировке VEX и EVEX . Более широкие, чем 128-битные варианты инструкции выполняют одну и ту же операцию с каждой 128-битной частью входных регистров. Версии VEX можно использовать без поддержки AVX-512.

БФ16

Инструкции по ускорению AI, работающие с числами Bfloat16 .

РП16

Расширение более раннего набора команд F16C , добавляющее комплексную поддержку чисел с плавающей запятой в двоичном формате 16 (также известных как FP16, float16 или числа с плавающей запятой половинной точности). Новые инструкции реализуют большинство операций, которые ранее были доступны для чисел с плавающей запятой одинарной и двойной точности, а также представляют новые инструкции для комплексных чисел и инструкции преобразования. Поддерживаются скалярные и пакетные операции.

В отличие от инструкций формата одинарной и двойной точности, операнды половинной точности не сбрасываются условно до нуля ( FTZ ) и не обрабатываются условно как ноль ( DAZ ) в зависимости от MXCSRнастроек. Субнормальные значения обрабатываются на полной скорости аппаратно, чтобы облегчить использование полного динамического диапазона чисел FP16. Инструкции, создающие номера FP32 и FP64, по-прежнему учитывают этот MXCSR.FTZбит. [12]

Арифметические инструкции

Сложные арифметические инструкции

Примерные взаимные инструкции

Инструкции по сравнению

Инструкции по конвертации

Инструкции по разложению

Инструкции по перемещению

Устаревшие инструкции с версиями в кодировке EVEX

Процессоры с AVX-512

^Примечание 1.  Intel официально не поддерживает семейство инструкций AVX-512 на микропроцессорах Alder Lake . Intel отключила встроенный (отключенный предохранитель) AVX-512 в последних версиях микропроцессоров Alder Lake, чтобы клиенты не могли включить AVX-512. [33] В старых процессорах семейства Alder Lake с некоторыми устаревшими комбинациями версий BIOS и микрокода можно было выполнять инструкции семейства AVX-512 при отключении всех эффективных ядер, которые не содержат микросхем для AVX-512. [34] [35] [22]

Производительность

Intel Vectorization Advisor (начиная с версии 2017) поддерживает встроенный анализ производительности AVX-512 и качества векторного кода (для процессоров «Core», Xeon и Intel Xeon Phi ). Наряду с традиционным профилем горячих точек, рекомендациями Advisor и «бесшовной» интеграцией диагностики векторизации компилятора Intel, анализ Advisor Survey также предоставляет метрики AVX-512 ISA и новые «характеристики», специфичные для AVX-512, например разброс, сжатие/расширение, использование маски. [36] [37]

На некоторых процессорах (в основном Intel до Ice Lake ) инструкции AVX-512 могут вызывать даже большее регулирование частоты, чем его предшественники, что приводит к штрафам за смешанные рабочие нагрузки. Дополнительный даунклокинг запускается 512-битной шириной векторов и зависит от характера выполняемых инструкций, а использование 128- или 256-битной части AVX-512 (AVX-512VL) не вызывает его. В результате gcc и clang по умолчанию предпочитают использовать 256-битные векторы для целей Intel. [38] [39] [40]

Компиляторы C/ C++ также автоматически обрабатывают развертывание циклов и предотвращают зависания в конвейере , чтобы наиболее эффективно использовать AVX-512. Это означает, что программист, использующий встроенные функции языка для принудительного использования AVX-512, иногда может привести к ухудшению производительности по сравнению с код, сгенерированный компилятором, когда он встречает циклы, явно написанные в исходном коде. [41] В других случаях использование встроенных функций AVX-512 в коде C/C++ может привести к повышению производительности по сравнению с написанным в чистом виде C/C++. [42]

Прием

Существует множество примеров приложений AVX-512 , включая обработку мультимедиа, криптографию, видеоигры , [43] нейронные сети , [44] и даже OpenJDK , который использует AVX-512 для сортировки . [45]

В широко цитируемой цитате из 2020 года Линус Торвальдс сказал: «Я надеюсь, что AVX-512 умрет мучительной смертью, и что Intel начнет исправлять реальные проблемы вместо того, чтобы пытаться создавать волшебные инструкции, чтобы затем создавать тесты, на которых они смогут хорошо выглядеть» [ 46] , заявив, что он предпочел бы, чтобы транзисторный бюджет был потрачен на дополнительные ядра и целочисленную производительность, и что он «ненавидел» тесты с плавающей запятой . [47]

Numenta рекламирует свою «очень редкую » [48] технологию нейронных сетей, которая, по их словам, устраняет необходимость в графических процессорах , поскольку их алгоритмы работают на процессорах с AVX-512. [49] Они заявляют о десятикратном ускорении по сравнению с A100 , главным образом потому, что их алгоритмы уменьшают размер нейронной сети, сохраняя при этом точность , с помощью таких методов, как алгоритм разреженного эволюционного обучения (SET) [50] и прогнозирование. [51]

Смотрите также

Рекомендации

  1. ^ abcdef Джеймс Рейндерс (23 июля 2013 г.). «Инструкция AVX-512». Интел . Проверено 20 августа 2013 г.
  2. ^ ab Kusswurm 2022, с. 223.
  3. ^ abc Джеймс Рейндерс (17 июля 2014 г.). «Дополнительные инструкции AVX-512». Интел . Проверено 3 августа 2014 г.
  4. ^ Антон Шилов. «Процессоры Intel Skylake для ПК не поддерживают инструкции AVX-512». Китгуру.нет . Проверено 17 марта 2015 г.
  5. ^ «Intel добавит в свои процессоры инструкции глубокого обучения» . 14 октября 2016 г.
  6. ^ abcdefgh «Справочник по программированию расширений набора команд архитектуры Intel» (PDF) . Интел . Проверено 29 января 2014 г.
  7. ^ abcdef «Расширения набора команд архитектуры Intel и справочник по программированию будущих функций» . Интел . Проверено 16 октября 2017 г.
  8. ^ "Архитектура AVX-512/Демиховский плакат" (PDF) . Интел . Проверено 25 февраля 2014 г.
  9. ^ «Ускорение глубокого обучения Intel®» (PDF) . Интел . Проверено 11 октября 2021 г.
  10. ^ ab «Руководство по технологии новых инструкций Галуа (GFNI)» . networkbuilders.intel.com .
  11. Кивилинна, Юсси (19 апреля 2023 г.). «камелия-симд-аэсни». Гитхаб . Новые процессоры x86-64 также поддерживают новые инструкции Galois Field New (GFNI), которые позволяют более просто реализовать Camellia s-box и обеспечивают еще большую производительность.
  12. ^ «Спецификация архитектуры Intel® AVX512-FP16, июнь 2021 г., версия 1.0, номер 347407-001US» (PDF) . Интел. 30 июня 2021 г. Проверено 4 июля 2021 г.
  13. ^ «Краткое описание процессора Intel Xeon Phi» ​​. Интел . Проверено 12 октября 2016 г.
  14. ^ «Intel представляет платформу серии X: до 18 ядер и 36 потоков, от 242 до 2000 долларов» . Арс Техника . Проверено 30 мая 2017 г.
  15. ^ «Intel Advanced Vector Extensions 2015/2016: Поддержка в коллекции компиляторов GNU» (PDF) . Gcc.gnu.org . Проверено 20 октября 2016 г.
  16. Патрицио, Энди (21 сентября 2015 г.). «Дорожная карта Intel Xeon на случай утечек на 2016 год». Itworld.org . Проверено 20 октября 2016 г.
  17. ^ «Обзор Intel Core i9-11900K — самый быстрый игровой процессор в мире?» www.techpowerup.com . 30 марта 2021 г.
  18. ^ ""Добавить Rockelake в коммит gcc" . gcc.gnu.org .
  19. ^ «Процессор Intel Celeron 6305 (кэш 4 МБ, 1,80 ГГц, с IPU) Технические характеристики продукта» . ark.intel.com . Архивировано из оригинала 18 октября 2020 г. Проверено 10 ноября 2020 г.
  20. ^ Ноутбук Мура Кинерджа Боле Диаду | HP 14S DQ2518TU , получено 8 августа 2021 г.
  21. ^ «Использование коллекции компиляторов GNU (GCC): параметры x86» . ГНУ . Проверено 14 октября 2019 г.
  22. ^ аб Катресс, Ян; Фрумусану, Андрей. «Обзор Intel Core i9-12900K 12-го поколения: гибридная производительность усложняет гибрид». www.anandtech.com . Проверено 5 ноября 2021 г.
  23. ^ Ларабель, Майкл. «Intel Core i9 12900K «Ольховое озеро» AVX-512 в Linux». www.phoronix.com . Проверено 8 ноября 2021 г.
  24. ^ Ларабель, Майкл. «Сравнение производительности AVX-512: AMD Genoa против Intel Sapphire Rapids и Ice Lake». www.phoronix.com . Проверено 19 января 2023 г.
  25. ^ «Первый в отрасли высокопроизводительный процессор x86 с процессорами серверного класса и интегрированной технологией сопроцессора искусственного интеллекта» . 2 августа 2022 г. Архивировано из оригинала 12 декабря 2019 г.{{cite web}}: CS1 maint: неподходящий URL ( ссылка )
  26. ^ «Задержка инструкций x86, x64, задержка памяти и дампы CPUID (instlatx64)» . Пользователи.atw.hu .
  27. ^ «Процессоры Ryzen на базе AMD Zen 4 могут иметь до 24 ядер, поддержку векторов AVX512» . Аппаратные времена . 2021-05-23 . Проверено 02 сентября 2021 г.
  28. Хагедорн, Гильберт (18 мая 2021 г.). «AMD работает над потрясающим 96-ядерным процессором EPYC». Guru3D.com . Проверено 25 мая 2021 г.
  29. ^ Кламчаудер (23 августа 2021 г.). «Подробности об утечке гигабайта». чипсы и сыр . Проверено 10 июня 2022 г.
  30. W1zzard (26 мая 2022 г.). «AMD отвечает на наши технические вопросы по Zen 4 с Робертом Хэллоком». TechPowerUp . Проверено 29 мая 2022 г.
  31. ^ Ларабель, Майкл (26 сентября 2022 г.). «Анализ производительности AMD Zen 4 AVX-512 на Ryzen 9 7950X». www.phoronix.com .
  32. ^ Ларабель, Майкл (10 февраля 2024 г.). «Опубликована поддержка компилятора AMD Zen 5 для GCC — подтверждают новые функции AVX и многое другое» . www.phoronix.com .
  33. ^ Алкорн, Пол (2 марта 2022 г.). «Intel Nukes Alder Lake поддерживает AVX-512, теперь она отключена в кремнии» . Аппаратное обеспечение Тома . Проверено 7 марта 2022 г.
  34. ^ Катресс, Ян; Фрумусану, Андрей (19 августа 2021 г.). «День Intel Architecture 2021: Подробности о озере Олдер, Золотая бухта и Грейсмонт» . АнандТех . Проверено 25 августа 2021 г.
  35. ^ Алкорн, Пол (19 августа 2021 г.). «День Intel Architecture 2021: чипсы Олдер-Лейк, Золотая бухта и ядра Грейсмонт» . Аппаратное обеспечение Тома . Проверено 21 августа 2021 г.
  36. ^ «Intel Advisor XE 2016, обновление 3. Что нового — программное обеспечение Intel» . Software.intel.com . Проверено 20 октября 2016 г.
  37. ^ «Intel Advisor — Программное обеспечение Intel» . Software.intel.com . Проверено 20 октября 2016 г.
  38. ^ Кордес, Питер. «Инструкции SIMD, понижающие частоту процессора». Переполнение стека .
  39. ^ Кордес, Питер. «почему автоматическая векторизация gcc для Tigerlake использует регистры ymm, а не zmm». Переполнение стека .
  40. ^ «Примечания к выпуску LLVM 10.0.0» .
  41. ^ Мэтью Кольбе (10 октября 2023 г.). Молниеносный доклад: как использовать внутренние возможности SIMD для значительного замедления работы — Мэтью Колбе — CppNow 2023. C++Now . Получено 15 октября 2023 г. - через YouTube.
  42. ^ Клаузекер, Роберт (5 августа 2023 г.). «Перекодирование символов Юникода с помощью инструкций AVX-512». arXiv : 2212.05098 [cs.DS].
  43. ^ Шевчик, Крис (24 ноября 2021 г.). «Эмулятор RPCS3 PS3 значительно ускоряет работу процессоров Intel Alder Lake с включенным AVX-512». ПК-геймер . Проверено 11 октября 2023 г.
  44. ^ Карнейро, Андре; Серпа, Матеус (5 сентября 2021 г.). «Легкие приложения глубокого обучения на AVX-512». Симпозиум IEEE по компьютерам и коммуникациям 2021 года (ISCC) . Афины : IEEE . стр. 1–6. дои : 10.1109/ISCC53001.2021.9631464.
  45. ^ Параса, Шринивас (30 мая 2023 г.). «JDK-8309130: встроенные функции x86_64 AVX512 для методов Arrays.sort (массивы int, long, float и double)». OpenJDK . Проверено 11 октября 2023 г.
  46. ^ Тунг, Лиам (13 июля 2020 г.). «Линус Торвальдс: Надеюсь, Intel AVX-512 умрёт мучительной смертью». ЗДНет . Проверено 11 октября 2023 г.
  47. ^ Торвальдс, Линус (11 июля 2020 г.). «Ольховое озеро и AVX-512». Realworldtech.com . Проверено 11 октября 2023 г.
  48. ^ «Разреженность обеспечивает 100-кратное ускорение производительности в сетях глубокого обучения: демонстрация технологии» (PDF) . numenta.com . 20 мая 2021 г. Проверено 11 октября 2023 г.
  49. ^ Афифи-Сабет, Кеумарс (08 октября 2023 г.). «Крошечный стартап помог Intel обойти AMD и Nvidia в критических тестах искусственного интеллекта — игра уже окончена?». ТехРадар . Проверено 11 октября 2023 г.
  50. ^ Мокану, Дечебал; Мокану, Елена (2018). «Масштабируемое обучение искусственных нейронных сетей с адаптивной разреженной связностью, вдохновленное сетевой наукой». Природные коммуникации . 9 (1): 2383. Бибкод : 2018NatCo...9.2383M. дои : 10.1038/s41467-018-04316-3. ПМК 6008460 . ПМИД  29921910. 
  51. ^ Соуза, Лукас (30 октября 2020 г.). «Доказательства разреженности в нейронных сетях, часть 2: динамическая разреженность». numenta.com . Проверено 11 октября 2023 г.