Из Википедии, бесплатной энциклопедии
  (Перенаправлено с AVX2 )
Перейти к навигации Перейти к поиску

Advanced Vector Extensions ( AVX , также известный как Sandy Bridge Новые Extensions ) являются расширениями x86 набор инструкций архитектуры для микропроцессоров от Intel и AMD , предложенный Intel в марте 2008 года , а первый при поддержке Intel с Sandy Bridge [1] процессор судоходства в Q1 2011 г. и позже AMD с процессором Bulldozer [2] , поставленным в третьем квартале 2011 г. AVX предоставляет новые функции, новые инструкции и новую схему кодирования.

AVX2 (также известный как Haswell New Instructions ) расширяет большинство целочисленных команд до 256 бит и вводит операции слитного умножения с накоплением ( FMA ). Впервые они были поддержаны Intel с процессором Haswell, выпущенным в 2013 году.

AVX-512 расширяет поддержку AVX до 512-бит, используя новую префиксную кодировку EVEX, предложенную Intel в июле 2013 года и впервые поддержанную Intel с процессором Knights Landing , который был поставлен в 2016 году. [3] [4]

Расширенные векторные расширения [ править ]

AVX использует шестнадцать регистров YMM для выполнения одной инструкции для нескольких частей данных (см. SIMD ). Каждый регистр YMM может хранить и выполнять одновременные операции (математические вычисления) над:

  • восемь 32-битных чисел с плавающей запятой одинарной точности или
  • четыре 64-битных числа с плавающей запятой двойной точности.

Ширина регистров SIMD увеличена со 128 до 256 бит и переименована с XMM0 – XMM7 в YMM0 – YMM7 (в режиме x86-64 с XMM0 – XMM15 на YMM0 – YMM15). Унаследованные инструкции SSE могут по-прежнему использоваться через префикс VEX для работы с младшими 128 битами регистров YMM.

AVX представляет трехоперандный формат инструкций SIMD, называемый схемой кодирования VEX , где регистр назначения отличается от двух исходных операндов. Например, инструкция SSE, использующая обычную форму с двумя операндами a = a + b, теперь может использовать неразрушающую форму с тремя операндами c = a + b , сохраняя оба исходных операнда. Первоначально трехоперандный формат AVX ограничивался инструкциями с SIMD-операндами (YMM) и не включал инструкции с регистрами общего назначения (например, EAX). Позже он использовался для кодирования новых инструкций регистров общего назначения в более поздних расширениях, таких как BMI . Кодирование VEX также используется для инструкций, работающих с регистрами маски k0-k7, которые были введены сAVX-512 .

Требование выравнивания операндов памяти SIMD ослаблено. [5] В отличие от своих аналогов, кодированных не в VEX, для большинства векторных инструкций, кодированных в VEX, больше не требуется выравнивание операндов памяти по размеру вектора. Примечательно, что VMOVDQAинструкция по-прежнему требует, чтобы ее операнд в памяти был выровнен.

Новая схема кодирования VEX представляет новый набор кодовых префиксов, который расширяет пространство кода операции , позволяет инструкциям иметь более двух операндов и позволяет регистрам векторов SIMD быть длиннее 128 бит. Префикс VEX также можно использовать в устаревших инструкциях SSE, придавая им форму с тремя операндами и позволяя им более эффективно взаимодействовать с инструкциями AVX без необходимости использования VZEROUPPERи VZEROALL.

Инструкции AVX поддерживают как 128-битные, так и 256-битные SIMD. 128-битные версии могут быть полезны для улучшения старого кода без необходимости расширять векторизацию и избежать штрафов за переход от SSE к AVX, они также быстрее на некоторых ранних реализациях AMD AVX. Этот режим иногда называют AVX-128. [6]

Новые инструкции [ править ]

Эти инструкции AVX являются дополнением к тем, которые являются 256-битными расширениями унаследованных 128-битных инструкций SSE; большинство из них можно использовать как для 128-битных, так и для 256-битных операндов.

Процессоры с AVX [ править ]

  • Intel
    • Процессоры Sandy Bridge , первый квартал 2011 г. [9]
    • Процессоры Sandy Bridge E , четвертый квартал 2011 г. [10]
    • Процессоры Ivy Bridge , первый квартал 2012 г.
    • Процессоры Ivy Bridge E , третий квартал 2013 г.
    • Процессоры Haswell , второй квартал 2013 г.
    • Процессоры Haswell E , третий квартал 2014 г.
    • Процессоры Broadwell , 4 квартал 2014 г.
    • Процессоры Skylake , третий квартал 2015 г.
    • Процессоры Broadwell E , второй квартал 2016 г.
    • Процессоры Kaby Lake , 3 квартал 2016 г. (ULV для мобильных устройств) / 1 квартал 2017 г. (настольные / мобильные)
    • Процессоры Skylake-X , второй квартал 2017 г.
    • Процессоры Coffee Lake , 4 квартал 2017 г.
    • Процессоры Cannon Lake , второй квартал 2018 г.
    • Переработчики Whiskey Lake , третий квартал 2018 г.
    • Процессоры Cascade Lake , 4 квартал 2018 г.
    • Процессоры Ice Lake , третий квартал 2019 г.
    • Процессоры Comet Lake (только под брендами Core и Xeon), третий квартал 2019 г.
    • Процессоры Tiger Lake (Core, Pentium и Celeron [11] ), третий квартал 2020 г.
    • Процессоры Rocket Lake , 2021 год
    • Переработчики Alder Lake , 2021 г.
    • Процессоры Gracemont , 2021 г.

Не все процессоры из перечисленных семейств поддерживают AVX. Как правило, процессоры с коммерческим наименованием Core i3 / i5 / i7 / i9 поддерживают их, а процессоры Pentium и Celeron - нет.

  • AMD :
    • Процессоры на базе Jaguar и новее
    • Процессоры на базе Puma и новее
    • Переработчики "тяжелого оборудования"
      • Процессоры на базе бульдозеров , 4 квартал 2011 г. [12]
      • Процессоры на базе Piledriver , 4 квартал 2012 г. [13]
      • Процессоры на базе Steamroller , первый квартал 2014 г.
      • Экскаваторные процессоры и новее, 2015 г.
    • Процессоры на базе Zen , первый квартал 2017 г.
    • Процессоры на базе Zen + , второй квартал 2018 г.
    • Процессоры на базе Zen 2 , третий квартал 2019 г.
    • Процессоры Zen 3 , четвертый квартал 2020 г.

Вопросы, касающиеся совместимости будущих процессоров Intel и AMD, обсуждаются в наборе инструкций XOP .

  • ЧЕРЕЗ :
    • Nano QuadCore
    • Eden X4
  • Чжаосинь :
    • Процессоры на базе WuDaoKou (KX-5000 и KH-20000)

Поддержка компилятора и ассемблера [ править ]

  • Absoft поддерживает флаг -mavx.
  • Free Pascal компилятор поддерживает AVX и AVX2 с -CfAVX и -CfAVX2 переключается с версии 2.7.1.
  • Функции встроенного ассемблера GNU Assembler (GAS) поддерживают эти инструкции (доступные через GCC), как и примитивы Intel и встроенный ассемблер Intel (близко совместимый с GAS, хотя и более общий в его обработке локальных ссылок во встроенном коде).
  • GCC, начиная с версии 4.6 (хотя была ветка 4.3 с определенной поддержкой), и Intel Compiler Suite, начиная с версии 11.1, поддерживают AVX.
  • В Open64 версия компилятора 4.5.1 поддерживает AVX с -mavx флагом.
  • PathScale поддерживает флаг -mavx.
  • Vector Pascal компилятор поддерживает AVX с помощью флага -cpuAVX32.
  • Visual Studio 2010 / +2012 компилятор поддерживает AVX с помощью внутреннего и / арочного: переключателя AVX.
  • Другие ассемблеры, такие как версия MASM VS2010, YASM , [14] FASM , NASM и JWASM .

Поддержка операционной системы [ править ]

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

  • DragonFly BSD : поддержка добавлена ​​в начале 2013 года.
  • FreeBSD : поддержка добавлена ​​в патч, представленный 21 января 2012 г. [15], который был включен в стабильный выпуск 9.1 [16]
  • Linux : поддерживается начиная с версии ядра 2.6.30 [17], выпущенной 9 июня 2009 г. [18]
  • macOS : поддержка добавлена ​​в обновлении 10.6.8 ( Snow Leopard ) [19], выпущенном 23 июня 2011 г.
  • OpenBSD : поддержка добавлена ​​21 марта 2015 г. [20]
  • Solaris : поддерживается в Solaris 10 Update 10 и Solaris 11
  • Windows : поддерживается в Windows 7 SP1, Windows Server 2008 R2 SP1, [21] Windows 8 , Windows 10
    • Windows Server 2008 R2 SP1 с Hyper-V требует исправления для поддержки процессоров AMD AVX (серии Opteron 6200 и 4200), KB2568088

Расширенные векторные расширения 2 [ править ]

Advanced Vector Extensions 2 (AVX2), также известный как Haswell Новые инструкции , [22] является расширение набора инструкций AVX , введенной в компании Intel Haswell микроархитектуры . AVX2 вносит следующие дополнения:

  • расширение большинства векторных целочисленных инструкций SSE и AVX до 256 бит
  • трехоперандная универсальная битовая манипуляция и умножение
  • Получите поддержку, позволяющую загружать векторные элементы из несмежных ячеек памяти
  • DWORD- и QWORD-гранулярность от любого к любому перестановки
  • векторные сдвиги.

Иногда другое расширение, использующее другой флаг cpuid, считается частью AVX2; эти инструкции перечислены на отдельной странице, а не ниже:

  • трехоперандная объединенная поддержка умножения с накоплением (FMA3)

Новые инструкции [ править ]

Процессоры с AVX2 [ править ]

  • Intel
    • Процессор Haswell (только под брендами Core и Xeon), второй квартал 2013 г.
    • Процессор Haswell E , третий квартал 2014 г.
    • Процессор Broadwell , 4 квартал 2014 г.
    • Процессор Broadwell E , третий квартал 2016 г.
    • Процессор Skylake (только под брендами Core и Xeon), третий квартал 2015 г.
    • Процессор Kaby Lake (только под брендами Core и Xeon), третий квартал 2016 года (ULV для мобильных устройств) / первый квартал 2017 года (для настольных компьютеров / мобильных устройств)
    • Процессор Skylake-X , второй квартал 2017 г.
    • Процессор Coffee Lake (только под брендами Core и Xeon), 4 квартал 2017 г.
    • Процессор Cannon Lake , второй квартал 2018 г.
    • Процессор Cascade Lake , второй квартал 2019 г.
    • Процессор Ice Lake , третий квартал 2019 г.
    • Процессор Comet Lake (только под брендами Core и Xeon), третий квартал 2019 г.
    • Процессор Tiger Lake (Core, Pentium и Celeron [11] ), третий квартал 2020 г.
    • Процессор Rocket Lake , 2021 год
    • Переработчик Alder Lake , 2021 г.
    • Процессоры Gracemont , 2021 г.
  • AMD
    • Экскаваторный процессор и новее, второй квартал 2015 г.
    • Процессор Zen , первый квартал 2017 г.
    • Процессор Zen + , второй квартал 2018 г.
    • Процессор Zen 2 , третий квартал 2019 г.
    • Процессор Zen 3 , 2020 г.
  • ЧЕРЕЗ :
    • Nano QuadCore
    • Eden X4

AVX-512 [ править ]

AVX-512 - это 512-битные расширения для 256-битных инструкций SIMD Advanced Vector Extensions для архитектуры набора команд x86, предложенные Intel в июле 2013 года, и поддерживаются процессором Intel Knights Landing . [3]

Инструкции AVX-512 кодируются с новым префиксом EVEX . Он позволяет использовать 4 операнда, 8 новых 64-битных регистров маски операции , режим скалярной памяти с автоматическим широковещанием, явное управление округлением и режим адресации сжатой памяти смещения . Ширина файла регистров увеличивается до 512 бит, а общее количество регистров увеличивается до 32 (регистры ZMM0-ZMM31) в режиме x86-64.

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

  • AVX-512 Foundation - добавляет несколько новых инструкций и расширяет большинство 32-битных и 64-битных инструкций SSE-SSE4.1 и AVX / AVX2 с плавающей запятой схемой кодирования EVEX для поддержки 512-битных регистров, масок операций, широковещательной передачи параметров и встроенное округление и контроль исключений
  • AVX-512 Инструкции по обнаружению конфликтов (CD) - эффективное обнаружение конфликтов, позволяющее векторизовать больше циклов, поддерживается Knights Landing [3]
  • AVX-512 Exponential and Reciprocal Instructions (ER) - экспоненциальные и взаимные операции, предназначенные для помощи в реализации трансцендентных операций, поддерживаемые Knights Landing [3]
  • AVX-512 Prefetch Instructions (PF) - новые возможности предварительной выборки, поддерживаемые Knights Landing [3]
  • AVX-512 Vector Length Extensions (VL) - расширяет большинство операций AVX-512 для работы с регистрами XMM (128-бит) и YMM (256-бит) (включая XMM16-XMM31 и YMM16-YMM31 в режиме x86-64) [ 23]
  • AVX-512 Byte and Word Instructions (BW) - расширяет AVX-512 для охвата 8-битных и 16-битных целочисленных операций [23]
  • AVX-512 Doubleword and Quadword Instructions (DQ) - улучшенные 32-битные и 64-битные целочисленные операции [23]
  • AVX-512 Integer Fused Multiply Add (IFMA) - объединенное сложение умножения для 512-битных целых чисел. [24] : 746
  • AVX-512 Vector Byte Manipulation Instructions (VBMI) добавляет команды перестановки векторных байтов, которых нет в AVX-512BW.
  • AVX-512 Vector Neural Network Instructions Word variable precision (4VNNIW) - векторные инструкции для глубокого обучения.
  • AVX-512 Fused Multiply Accumulation Packed Single precision (4FMAPS) - векторные инструкции для глубокого обучения.
  • VPOPCNTDQ - количество битов установлено на 1. [25]
  • VPCLMULQDQ - умножение четверных слов без переноса. [25]
  • AVX-512 Vector Neural Network Instructions (VNNI)  - векторные инструкции для глубокого обучения. [25]
  • AVX-512 Поле Галуа New Instructions (GFNI)  - векторные инструкции для вычисления поля Галуа . [25]
  • AVX-512 Векторные инструкции AES (VAES)  - векторные инструкции для кодирования AES . [25]
  • AVX-512 Vector Byte Manipulation Instructions 2 (VBMI2)  - загрузка байта / слова, сохранение и объединение со сдвигом. [25]
  • AVX-512 Bit Algorithms (BITALG)  - инструкции по манипулированию битами байтов / слов, расширяющие VPOPCNTDQ. [25]

Для всех реализаций требуется только расширение ядра AVX-512F (AVX-512 Foundation), хотя все текущие процессоры также поддерживают CD (обнаружение конфликтов); вычислительные сопроцессоры будут дополнительно поддерживать ER, PF, 4VNNIW, 4FMAPS и VPOPCNTDQ, а процессоры для настольных ПК будут поддерживать VL, DQ, BW, IFMA, VBMI, VPOPCNTDQ, VPCLMULQDQ и т. д.

Обновленные инструкции SSE / AVX в AVX-512F используют ту же мнемонику, что и версии AVX; они могут работать с 512-битными регистрами ZMM, а также будут поддерживать 128/256-битные регистры XMM / YMM (с AVX-512VL) и целочисленные операнды байта, слова, двойного слова и четверного слова (с AVX-512BW / DQ и VBMI). [24] : 23

Процессоры с AVX-512 [ править ]

[26]

Компиляторы, поддерживающие AVX-512 [ править ]

  • GCC 4.9 и новее [27]
  • Clang 3.9 и новее [28]
  • ICC 15.0.1 и новее [29]
  • Компилятор Microsoft Visual Studio 2017 C ++ [30]
  • Java 9 [31]
  • Перейти 1.11 [32]
  • Юлия [33] [34]

Приложения [ править ]

  • Подходит для вычислений с большим объемом операций с плавающей запятой в мультимедийных, научных и финансовых приложениях (в AVX2 добавлена ​​поддержка целочисленных операций).
  • Увеличивает параллелизм и пропускную способность в вычислениях SIMD с плавающей запятой .
  • Уменьшает нагрузку на регистр за счет неразрушающих инструкций.
  • Повышает производительность программного обеспечения Linux RAID (требуется AVX2, AVX недостаточно) [35]

Программное обеспечение [ править ]

  • Blender использует AVX2 в циклах движка рендеринга.
  • Bloombase использует AVX, AVX2 и AVX-512 в своем криптографическом модуле Bloombase (BCM).
  • Botan использует как AVX, так и AVX2, когда они доступны, для ускорения некоторых алгоритмов, например ChaCha.
  • Crypto ++ использует как AVX, так и AVX2, когда они доступны, для ускорения некоторых алгоритмов, таких как Salsa и ChaCha.
  • OpenSSL использует криптографические функции, оптимизированные для AVX и AVX2, начиная с версии 1.0.2. [36] Эта поддержка также присутствует в различных клонах и форках, таких как LibreSSL.
  • Prime95 / MPrime, программное обеспечение, используемое для GIMPS , начало использовать инструкции AVX, начиная с версии 27.x.
  • Декодер dav1d AV1 может использовать AVX2 на поддерживаемых процессорах. [37]
  • Программное обеспечение dnetc , используемое распределенным.net , имеет ядро ​​AVX2, доступное для его проекта RC5, и скоро выпустит его для своего проекта OGR-28.
  • Einstein @ Home использует AVX в некоторых из своих распределенных приложений, которые ищут гравитационные волны . [38]
  • Folding @ home использует AVX на вычислительных ядрах, реализованных с помощью библиотеки GROMACS .
  • Horizon: Zero Dawn использует AVX1 в своем игровом движке Decima.
  • RPCS3 , эмулятор PlayStation 3 с открытым исходным кодом, использует инструкции AVX2 и AVX-512 для эмуляции игр для PS3.
  • Интерфейс сетевого устройства , IP-видео / аудиопротокол, разработанный NewTek для производства прямых трансляций, использует AVX и AVX2 для повышения производительности.
  • TensorFlow, начиная с версии 1.6, и tenorflow более поздних версий требует, чтобы ЦП поддерживал как минимум AVX. [39]
  • Видеокодеры x264 , x265 и VTM могут использовать AVX2 или AVX-512 для ускорения кодирования.
  • Различные майнеры криптовалюты на базе ЦП (например, cpuminer pooler для биткойнов и Litecoin ) используют AVX и AVX2 для различных процедур, связанных с криптографией, включая SHA-256 и scrypt .
  • libsodium использует AVX в реализации скалярного умножения для алгоритмов Curve25519 и Ed25519 , AVX2 для BLAKE2b , Salsa20 , ChaCha20 , а также AVX2 и AVX-512 в реализации алгоритма Argon2 .
  • Эталонная реализация кодировщика / декодера VP8 / VP9 с открытым исходным кодом libvpx , использует AVX2 или AVX-512, если они доступны.
  • FFTW может использовать AVX, AVX2 и AVX-512, когда они доступны.
  • LLVMpipe , программный модуль рендеринга OpenGL в Mesa, использующий инфраструктуру Gallium и LLVM , использует AVX2, когда он доступен.
  • Glibc использует AVX2 (с FMA ) для оптимизированной реализации (т.е. expf, sinf, powf, atanf, atan2f) различных математических функций в LIBC .
  • Ядро Linux может использовать AVX или AVX2 вместе с AES-NI в качестве оптимизированной реализации криптографического алгоритма AES-GCM .
  • Ядро Linux использует AVX или AVX2, когда они доступны, в оптимизированной реализации нескольких других криптографических шифров: Camellia , CAST5 , CAST6 , Serpent , Twofish , MORUS-1280 и других примитивов: Poly1305 , SHA-1 , SHA-256 , SHA-512 , ChaCha20 .
  • POCL, переносимый язык вычислений, который обеспечивает реализацию OpenCL , по возможности использует AVX, AVX2 и AVX512.
  • .NET Core и .NET Framework могут использовать AVX, AVX2 через общее System.Numerics.Vectorsпространство имен.
  • .NET Core , начиная с версии 2.1 и более широко после версии 3.0, может напрямую использовать все встроенные функции AVX, AVX2 через System.Runtime.Intrinsics.X86пространство имен.
  • EmEditor 19.0 и выше использует AVX-2 для ускорения обработки. [40]
  • Софтсинт Massive X от Native Instruments требует наличия AVX. [41]
  • Microsoft Teams использует инструкции AVX2 для создания размытого или настраиваемого фона позади участников видеочата [42], а также для подавления фонового шума. [43]
  • simdjson библиотека синтаксического анализа JSON использует AVX2 для повышения скорости декодирования. [44]

Понижение частоты [ править ]

Поскольку инструкции AVX шире и выделяют больше тепла, в некоторых процессорах Intel предусмотрены меры по снижению предельной частоты Turbo Boost при выполнении таких инструкций. В Skylake и его производных дросселирование разделено на три уровня: [45] [46]

  • L0 (100%): нормальный предел турбо наддува.
  • L1 (~ 85%): предел «усиления AVX». Мягко запускается 256-битными «тяжелыми» (единица с плавающей запятой: математика FP и целочисленное умножение) инструкциями. Жестко запускается "легкими" (всеми остальными) 512-битными инструкциями.
  • L2 (~ 60%): Предел «ускорения AVX-512». Мягкий запуск с помощью 512-битных тяжелых инструкций.

Частотный переход может быть мягким или жестким. Жесткий переход означает, что частота уменьшается, как только появляется такая инструкция; мягкий переход означает, что частота уменьшается только после достижения порогового количества совпадающих инструкций. Ограничение на поток. [45]

В Ice Lake сохраняются только два уровня: [47]

  • L0 (100%): нормальный предел турбо наддува.
  • L1 (~ 97%): запускается любыми 512-битными инструкциями, но только при активном одноядерном ускорении; не срабатывает при загрузке нескольких ядер.

Процессоры Rocket Lake не запускают снижение частоты при выполнении любых векторных инструкций независимо от размера вектора. [47] Тем не менее, снижение частоты все еще может происходить по другим причинам, например, по достижению пределов температуры и мощности.

Понижение частоты означает, что использование AVX в смешанной рабочей нагрузке с процессором Intel может привести к снижению частоты, несмотря на то, что он быстрее в «чистом» контексте. Избегание использования широких и тяжелых инструкций поможет свести к минимуму воздействие в этих случаях. AVX-512VL позволяет использовать 256-битные или 128-битные операнды в AVX-512, что делает его разумным по умолчанию для смешанных нагрузок. [48]

См. Также [ править ]

  • Расширения защиты памяти
  • Scalable Vector Extension for ARM - новый набор векторных команд (дополняющий VFP и NEON ), аналогичный AVX-512, с некоторыми дополнительными функциями.

Ссылки [ править ]

  1. Кантер, Дэвид (25 сентября 2010 г.). "Микроархитектура Intel Sandy Bridge" . www.realworldtech.com . Проверено 17 февраля 2018 года .
  2. ^ Хруска, Joel (24 октября 2011). «Анализируем Bulldozer: Почему чип AMD так разочаровывает - Страница 4 из 5 - ExtremeTech» . ExtremeTech . Проверено 17 февраля 2018 года .
  3. ^ a b c d e Джеймс Рейндерс (23 июля 2013 г.), инструкции AVX-512 , Intel , получено 20 августа 2013 г.
  4. ^ «Технические характеристики процессора Intel Xeon Phi 7210 (16 ГБ, 1,30 ГГц, 64 ядра)» . Intel ARK (Технические характеристики) . Проверено 16 марта 2018 года .
  5. ^ "14.9". Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32 Том 1: Базовая архитектура (PDF) (-051US ed.). Корпорация Intel. п. 349 . Проверено 23 августа 2014 года . Аргументы памяти для большинства инструкций с префиксом VEX работают нормально, не вызывая #GP (0) при любом выравнивании по байтам (в отличие от устаревших инструкций SSE).
  6. ^ "Параметры i386 и x86-64 - Использование коллекции компиляторов GNU (GCC)" . Проверено 9 февраля 2014 года .
  7. ^ «Микроархитектура процессоров Intel, AMD и VIA: руководство по оптимизации для программистов сборки и производителей компиляторов» (PDF) . Проверено 17 октября, 2016 .
  8. ^ "Шахматное программирование AVX2" . Архивировано из оригинала 10 июля 2017 года . Проверено 17 октября, 2016 .
  9. ^ «Intel предлагает заглянуть в Nehalem и Larrabee» . ExtremeTech. 17 марта 2008 г.
  10. ^ "Процессор Intel Core i7-3960X Extreme Edition" . Проверено 17 января 2012 года .
  11. ^ a b «Технические характеристики процессора Intel® Celeron® 6305 (4 МБ кэш-памяти, 1,80 ГГц, с IPU)» . ark.intel.com . Проверено 10 ноября 2020 года .
  12. ^ Дэйв Кристи (7 мая 2009 г.), Достижение баланса , блоги разработчиков AMD, заархивировано из оригинала 9 ноября 2013 г. , получено 17 января 2012 г.
  13. Новые инструкции "Bulldozer" и "Piledriver" (PDF) , AMD, октябрь 2012 г.
  14. ^ «Примечания к выпуску YASM 0.7.0» . yasm.tortall.net .
  15. ^ Добавить поддержку расширенных состояний FPU на amd64, как для собственных 64-битных, так и для 32-битных ABI , svnweb.freebsd.org, 21 января 2012 г. , получено 22 января 2012 г.
  16. ^ "Объявление о выпуске FreeBSD 9.1" . Проверено 20 мая 2013 года .
  17. ^ x86: добавлена ​​поддержка ядра Linux для состояния YMM , получено 13 июля 2009 г.
  18. ^ Linux 2.6.30 - Linux Kernel Newbies , получено 13 июля 2009 г.
  19. ^ Twitter , получено 23 июня 2010 г.[ ненадежный источник? ]
  20. ^ Добавить поддержку сохранения / восстановления состояния FPU с помощью XSAVE / XRSTOR. , получено 25 марта 2015 г.
  21. ^ Поддержка с плавающей запятой для 64-битных драйверов , получено 6 декабря 2009 г.
  22. ^ Новые описания инструкций Haswell теперь доступны , Software.intel.com , получено 17 января 2012 г.
  23. ^ a b c Джеймс Рейндерс (17 июля 2014 г.). «Дополнительные инструкции AVX-512» . Intel . Проверено 3 августа 2014 года .
  24. ^ a b «Справочник по программированию расширений набора команд архитектуры Intel» (PDF) . Intel . Проверено 29 января 2014 года .
  25. ^ a b c d e f g «Справочник по программированию расширений набора команд архитектуры Intel® и будущих функций» . Intel . Проверено 16 октября 2017 года .
  26. ^ «Эмулятор разработки программного обеспечения Intel® | Программное обеспечение Intel®» . software.intel.com . Проверено 11 июня, 2016 .
  27. ^ «Серия выпусков GCC 4.9 - Изменения, новые функции и исправления - Проект GNU - Фонд свободного программного обеспечения (FSF)» . gcc.gnu.org . Проверено 3 апреля 2017 года .
  28. ^ "Примечания к выпуску LLVM 3.9 - документация LLVM 3.9" . releases.llvm.org . Проверено 3 апреля 2017 года .
  29. ^ «Примечания к выпуску Intel® Parallel Studio XE 2015 Composer Edition C ++ | Программное обеспечение Intel®» . software.intel.com . Проверено 3 апреля 2017 года .
  30. ^ «Microsoft Visual Studio 2017 поддерживает Intel® AVX-512» .
  31. ^ «Примечания к выпуску JDK 9» .
  32. ^ «Go 1.11 Release Notes» .
  33. ^ "Демистификация авто-векторизации в Джулии" . juliacomputing.com . 27 сентября 2017 года . Проверено 11 апреля 2020 года .
  34. ^ "[ANN] LoopVectorization" . JuliaLang . 1 января 2020 . Проверено 11 апреля 2020 года .
  35. ^ "Linux RAID" . LWN. 17 февраля 2013 г. Архивировано из оригинального 15 апреля 2013 года .
  36. ^ «Повышение производительности OpenSSL» . 26 мая 2015 года . Проверено 28 февраля 2017 года .
  37. ^ "dav1d: производительность и завершение первого выпуска" . 21 ноября 2018 . Проверено 22 ноября 2018 года .
  38. ^ "Einstein @ Home Applications" .
  39. ^ "Tensorflow 1.6" .
  40. ^ Новое в версии 19.0 - EmEditor (текстовый редактор)
  41. ^ «MASSIVE X требует AVX-совместимого процессора» . Родные инструменты . Проверено 29 ноября 2019 года .
  42. ^ «Аппаратные требования для Microsoft Teams» . Microsoft . Проверено 17 апреля 2020 года .
  43. ^ «Уменьшите фоновый шум на собраниях команд» . Служба поддержки Microsoft . Проверено 5 января 2021 года .
  44. ^ Лэнгдейл, Джефф; Лемир, Даниэль (2019). «Разбор гигабайт JSON в секунду». Журнал VLDB . 28 (6): 941–960. arXiv : 1902.08318 . DOI : 10.1007 / s00778-019-00578-5 . S2CID 67856679 . 
  45. ^ a b Лемир, Дэниел. «AVX-512: когда и как использовать эти новые инструкции» . Блог Даниэля Лемира .
  46. ^ BeeOnRope. «Инструкции SIMD, понижающие частоту процессора» . Переполнение стека .
  47. ^ a b Даунс, Трэвис. «Разгон Ice Lake AVX-512» . Блог, посвященный вопросам производительности .
  48. ^ «x86 - производительность AVX 512 и AVX2 для простых циклов обработки массива» . Переполнение стека .

Внешние ссылки [ править ]

  • Руководство Intel по внутренним функциям
  • Справочное руководство по языку ассемблера x86