stringtranslate.com

AVX-512

AVX-512 — это 512-битные расширения 256-битных инструкций SIMD Advanced Vector Extensions для архитектуры набора инструкций x86 (ISA), предложенные Intel в июле 2013 года и впервые реализованные в Intel Xeon Phi x200 2016 года (Knights Landing), [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 первого поколения, полученные из проекта Larrabee компании Intel , похожи, но несовместимы на уровне двоичного кода и совместимы лишь частично на уровне исходного кода. [1]

Преемником AVX-512 является AVX10 , анонсированный в июле 2023 года [3] , который будет работать как на ядрах производительности, так и на ядрах эффективности .

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

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

F, CD, ER, PF:   представлены в Xeon Phi x200 (Knights Landing) и Xeon Gold/Platinum ( Skylake SP "Purley"), причем последние два (ER и PF) предназначены только для Knights Landing.

VL, DQ, BW:   представлены в Skylake X и Cannon Lake .

IFMA, VBMI:   введены с Cannon Lake . [5]

4VNNIW, 4FMAPS:   введены в Knights Mill . [6] [7]

VPOPCNTDQ: Инструкция по подсчету популяции   векторов . Представлена ​​в Knights Mill и Ice Lake . [8]

VNNI, VBMI2, BITALG:   введены в Ice Lake. [8]

VP2INTERSECT:   представлен в Tiger Lake.

GFNI, VPCLMULQDQ, VAES:   введены с Ice Lake. [8]

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

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

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

Расширенные регистры, бит ширины SIMD и регистры маски операции 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 (поддержка байтов и слов). [7]

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

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

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

Векторные инструкции AVX-512 могут указывать регистр opmask для управления тем, какие значения записываются в место назначения, кодировка инструкций поддерживает 0–7 для этого поля, однако, только регистры opmask k1–k7 (из k0–k7) могут использоваться в качестве маски, соответствующей значению 1–7, тогда как значение 0 зарезервировано для указания того, что регистр opmask не используется, т. е. жестко закодированная константа (вместо 'k0') используется для указания немаскированных операций. Специальный регистр opmask 'k0' по-прежнему является функционирующим, допустимым регистром, его можно использовать в инструкциях по манипулированию регистром opmask или использовать в качестве регистра opmask назначения. [9] Флаг управляет поведением opmask, которое может быть либо «нулевым», что обнуляет все, что не выбрано маской, либо «слиянием», что оставляет все, что не выбрано, нетронутым. Поведение слияния идентично инструкциям смешивания.

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

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

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

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

Новые инструкции в фундаменте AVX-512

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

Смешайте, используя маску.

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

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

Сравнить в маске

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

Логическая маска набора

Последний способ установки масок — использование Logical Set Mask. Эти инструкции выполняют либо AND, либо NAND, а затем устанавливают целевую opmask на основе результирующих значений, равных нулю или ненулевым. Обратите внимание, что, как и инструкции сравнения, они принимают два регистра opmask, один как целевой, а другой — как обычную opmask.

Сжать и развернуть

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

Переставить

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

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

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

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

Конверсии

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4FMAPS и 4VNNIW

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

BW, DQ и VBMI

AVX-512DQ добавляет новые инструкции doubleword и quadword. AVX-512BW добавляет версии байтов и слов тех же инструкций, а также добавляет версии байтов и слов инструкций doubleword/quadword в 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был расширен до KUNPCKWDи KUNPCKDQс помощью AVX-512BW.

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

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

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

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

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

Другие инструкции

ВБМИ2

Расширить VPCOMPRESS и VPEXPAND с помощью байтовых и словесных вариантов. Новые инструкции сдвига.

ВННИ

Инструкции векторной нейронной сети: [11] 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 и может быть реализовано независимо.

VPOPCNTDQ и BITALG

VP2ИНТЕРСЕКТ

ГФНИ

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

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

VPCLMULQDQ

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

ВАЕС

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

БФ16

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

FP16

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

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

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

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

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

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

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

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

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

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

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

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

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

Intel Vectorization Advisor (начиная с версии 2017) поддерживает собственную производительность AVX-512 и анализ качества векторного кода (для процессоров "Core", Xeon и Intel Xeon Phi ). Наряду с традиционным профилем горячих точек, рекомендациями Advisor и "бесшовной" интеграцией диагностики векторизации Intel Compiler, анализ Advisor Survey также предоставляет метрики AVX-512 ISA и новые "признаки", специфичные для AVX-512, например, Scatter, Compress/Expand, mask usage. [38] [39]

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

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

Прием

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

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

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

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

Ссылки

  1. ^ abcdef Джеймс Рейндерс (23 июля 2013 г.). "Инструкции AVX-512". Intel . Получено 20 августа 2013 г. .
  2. ^ ab Kusswurm 2022, стр. 223.
  3. ^ Боншор, Гэвин (2023-07-25). «Intel представляет наборы инструкций AVX10 и APX: унификация AVX-512 для гибридных архитектур». AnandTech . Получено 2024-08-21 .
  4. ^ abc Джеймс Рейндерс (17 июля 2014 г.). "Дополнительные инструкции AVX-512". Intel . Получено 3 августа 2014 г. .
  5. ^ Антон Шилов. «Процессоры Intel 'Skylake' для ПК не будут поддерживать инструкции AVX-512». Kitguru.net . Получено 17.03.2015 .
  6. ^ «Intel добавит в свои процессоры инструкции глубокого обучения». 14 октября 2016 г.
  7. ^ abcdefgh "Справочник по программированию расширений набора инструкций архитектуры Intel" (PDF) . Intel . Получено 29.01.2014 .
  8. ^ abcdef "Справочник по программированию расширений набора инструкций архитектуры Intel и будущих функций". Intel . Получено 16 октября 2017 г.
  9. ^ "В документации по встроенному asm неверно указано, что k0 (X86 AVX-512) жестко привязан к нулю · Проблема № 94977 · rust-lang/Rust". GitHub .
  10. ^ "Архитектура AVX-512/Плакат Демиховского" (PDF) . Intel . Получено 25 февраля 2014 г. .
  11. ^ "Intel® Deep Learning Boost" (PDF) . Intel . Получено 2021-10-11 .
  12. ^ ab "Руководство по технологии новых инструкций Галуа-поля (GFNI)". networkbuilders.intel.com .
  13. ^ Кивилинна, Юсси (19 апреля 2023 г.). "camellia-simd-aesni". GitHub . Более новые процессоры x86-64 также поддерживают новые инструкции Galois Field (GFNI), которые позволяют реализовать Camellia s-box более простым способом и добиться еще более высокой производительности.
  14. ^ "Спецификация архитектуры Intel® AVX512-FP16, июнь 2021 г., редакция 1.0, Ref. 347407-001US" (PDF) . Intel. 2021-06-30 . Получено 2021-07-04 .
  15. ^ "Краткое описание процессора Intel Xeon Phi". Intel . Получено 12 октября 2016 г. .
  16. ^ "Intel представляет платформу X-серии: до 18 ядер и 36 потоков, от $242 до $2000". Ars Technica . Получено 2017-05-30 .
  17. ^ "Intel Advanced Vector Extensions 2015/2016: Поддержка в коллекции компиляторов GNU" (PDF) . Gcc.gnu.org . Получено 20.10.2016 .
  18. ^ Патрицио, Энди (21 сентября 2015 г.). "Утечка дорожной карты Intel Xeon на 2016 год". Itworld.org . Архивировано из оригинала 21.10.2016 . Получено 20.10.2016 .
  19. ^ «Обзор Intel Core i9-11900K — самый быстрый игровой процессор в мире?». www.techpowerup.com . 30 марта 2021 г.
  20. ^ ""Добавить rocketlake в коммит gcc"". gcc.gnu.org .
  21. ^ "Характеристики продукта Intel Celeron 6305 Processor (4M Cache, 1.80 GHz, with IPU)". ark.intel.com . Архивировано из оригинала 2020-10-18 . Получено 2020-11-10 .
  22. ^ Ноутбук Мура Кинерджа Боле Диаду | HP 14S DQ2518TU, 18 июня 2021 г. , получено 8 августа 2021 г.
  23. ^ "Использование коллекции компиляторов GNU (GCC): параметры x86". GNU . Получено 14 октября 2019 г. .
  24. ^ ab Cutress, Ian; Frumusanu, Andrei. «Обзор Intel 12th Gen Core i9-12900K: гибридная производительность приносит гибридную сложность». www.anandtech.com . Получено 5 ноября 2021 г. .
  25. ^ Ларабель, Майкл. "Intel Core i9 12900K "Alder Lake" AVX-512 на Linux". www.phoronix.com . Получено 08.11.2021 .
  26. ^ Ларабель, Майкл. «Сравнение производительности AVX-512: AMD Genoa против Intel Sapphire Rapids и Ice Lake». www.phoronix.com . Получено 19.01.2023 .
  27. ^ «Первый в отрасли высокопроизводительный x86 SOC с процессорами серверного класса и интегрированной технологией сопроцессора ИИ». 2 августа 2022 г. Архивировано из оригинала 12 декабря 2019 г.{{cite web}}: CS1 maint: неподходящий URL ( ссылка )
  28. ^ "Задержка инструкций x86, x64, задержка памяти и дампы CPUID (instlatx64)". users.atw.hu .
  29. ^ "Процессоры AMD Zen 4 на базе Ryzen могут иметь до 24 ядер и поддержку векторов AVX512". Hardware Times . 2021-05-23 . Получено 2021-09-02 .
  30. ^ Хагедорн, Гильберт (18 мая 2021 г.). «AMD работает над потрясающим 96-ядерным процессором EPYC». Guru3D.com . Получено 25.05.2021 .
  31. ^ clamchowder (2021-08-23). ​​"Подробности утечки Gigabyte". Chips And Cheese . Получено 2022-06-10 .
  32. ^ W1zzard (26 мая 2022 г.). «AMD отвечает на наши технические вопросы Zen 4 с Робертом Халлоком». TechPowerUp . Получено 29.05.2022 .
  33. ^ Ларабель, Майкл (26.09.2022). «Анализ производительности AMD Zen 4 AVX-512 на Ryzen 9 7950X». www.phoronix.com .
  34. ^ Ларабель, Майкл (10.02.2024). «Поддержка компилятора AMD Zen 5 опубликована для GCC — подтверждены новые функции AVX и многое другое». www.phoronix.com .
  35. ^ Alcorn, Paul (2022-03-02). "Intel Nukes Alder Lake's AVX-512 Support, Now Fuses It Off in Silicon". Tom's Hardware . Получено 2022-03-07 .
  36. ^ Кутрес, Ян; Фрумусану, Андрей (2021-08-19). "День архитектуры Intel 2021: подробности о Олдер-Лейк, Голден-Коув и Грейсмонте". AnandTech . Получено 2021-08-25 .
  37. ^ Alcorn, Paul (2021-08-19). "День архитектуры Intel 2021: чипы Alder Lake, ядра Golden Cove и Gracemont". Tom's Hardware . Получено 2021-08-21 .
  38. ^ "Intel Advisor XE 2016 Update 3 Что нового - Intel Software". Software.intel.com . Получено 20.10.2016 .
  39. ^ "Intel Advisor - Intel Software". Software.intel.com . Получено 20.10.2016 .
  40. ^ Кордес, Питер. "Инструкции SIMD снижают частоту ЦП". Stack Overflow .
  41. ^ Кордес, Питер. "почему автоматическая векторизация gcc для tigerlake использует регистры ymm, а не zmm". Stack Overflow .
  42. ^ «Заметки о выпуске LLVM 10.0.0».
  43. ^ Мэтью Колбе (10.10.2023). Lightning Talk: How to Leverage SIMD Intrinsics for Massive Slowdowns - Мэтью Колбе - CppNow 2023. C++Now . Получено 15.10.2023 – через YouTube.
  44. ^ Клаусекер, Роберт (2023-08-05). «Транскодирование символов Юникода с инструкциями AVX-512». Программное обеспечение: Практика и опыт . 53 (12): 2430–2462. arXiv : 2212.05098 . doi : 10.1002/spe.3261.
  45. ^ Szewczyk, Chris (24.11.2021). «Эмулятор RPCS3 PS3 получает значительный прирост производительности на процессорах Intel Alder Lake с включенным AVX-512». PC Gamer . Получено 11.10.2023 .
  46. ^ Карнейро, Андре; Серпа, Матеус (5 сентября 2021 г.). «Легкие приложения глубокого обучения на AVX-512». Симпозиум IEEE по компьютерам и коммуникациям 2021 года (ISCC) . Афины : IEEE . стр. 1–6. дои : 10.1109/ISCC53001.2021.9631464.
  47. ^ Параса, Шринивас (2023-05-30). "JDK-8309130: x86_64 AVX512 intrinsics для методов Arrays.sort (массивы int, long, float и double)". OpenJDK . Получено 2023-10-11 .
  48. ^ Танг, Лиам (13 июля 2020 г.). «Линус Торвальдс: Надеюсь, AVX-512 от Intel умрет мучительной смертью». ZDNet . Получено 11 октября 2023 г.
  49. ^ Торвальдс, Линус (2020-07-11). "Озеро Олдер и AVX-512". realworldtech.com . Получено 2023-10-11 .
  50. ^ «Разреженность обеспечивает 100-кратное ускорение производительности в сетях глубокого обучения: демонстрация технологии» (PDF) . numenta.com . 2021-05-20 . Получено 2023-10-11 .
  51. ^ Афифи-Сабет, Кеумарс (2023-10-08). «Крошечный стартап помог Intel превзойти AMD и Nvidia в критических тестах ИИ — игра уже окончена?». TechRadar . Получено 2023-10-11 .
  52. ^ Мокану, Дечебал; Мокану, Елена (2018). «Масштабируемое обучение искусственных нейронных сетей с адаптивной разреженной связностью, вдохновленное сетевой наукой». Nature Communications . 9 (1): 2383. Bibcode :2018NatCo...9.2383M. doi :10.1038/s41467-018-04316-3. PMC 6008460 . PMID  29921910. 
  53. ^ Соуза, Лукас (2020-10-30). «Дело в разреженности в нейронных сетях, часть 2: динамическая разреженность». numenta.com . Получено 2023-10-11 .