Как узнать, поддерживает ли процессор AVX
Аббревиатура AVX расшифровывается как Advanced Vector Extensions. Это наборы инструкций для процессоров Intel и AMD, идея создания которых появилась в марте 2008 года. Впервые такой набор был встроен в процессоры линейки Intel Haswell в 2013 году. Поддержка команд в Pentium и Celeron появилась лишь в 2020 году.
Прочитав эту статью, вы более подробно узнаете, что такое инструкции AVX и AVX2 для процессоров, а также — как узнать поддерживает ли процессор AVX.
AVX и AVX2 – что это такое
AVX/AVX2 — это улучшенные версии старых наборов команд SSE. Advanced Vector Extensions расширяют операционные пакеты со 128 до 512 бит, а также добавляют новые инструкции. Например, за один такт процессора без инструкций AVX будет сложена 1 пара чисел, а с ними — 10. Эти наборы расширяют спектр используемых чисел для оптимизации подсчёта данных.
Наличие у процессоров поддержки AVX весьма желательно. Эти инструкции предназначены, прежде всего, для выполнения сложных профессиональных операций. Без поддержки AVX всё-таки можно запускать большинство игр, редактировать фото, смотреть видео, общаться в интернете и др., хотя и не так комфортно.
Как узнать, поддерживает ли процессор AVX
Далее будут показаны несколько простых способов узнать это. Некоторые из методов потребуют установки специального ПО.
1. Таблица сравнения процессоров на сайте Chaynikam.info.
Для того чтобы узнать, поддерживает ли ваш процессор инструкции AVX, можно воспользоваться предлагаемым способом. Перейдите на этот сайт. В правом верхнем углу страницы расположена зелёная кнопка Добавить процессор. Нажмите её.
В открывшемся окне вам будет предложено указать параметры выбора нужного процессора. Все указывать не обязательно.
В результате выполнения поиска будет сформирована таблица с параметрами выбранного из списка процессора. Прокрутите таблицу вниз. В строке Поддержка инструкций и технологий будет показана подробная информация.
2. Утилита CPU-Z.
Один из самых простых и надёжных способов узнать поддерживает ли процессор AVX инструкции, использовать утилиту для просмотра информации о процессоре — CPU-Z. Скачать утилиту можно на официальном сайте. После завершения установки ярлык для запуска утилиты появится на рабочем столе. Запустите её.
В строке Instructions показаны все инструкции и другие технологии, поддерживаемые вашим процессором.
3. Поиск на сайте производителя.
Ещё один способ узнать, есть ли AVX на процессоре, воспользоваться официальным сайтом производителя процессоров. В строке поиска браузера наберите название процессора и выполните поиск. Если у вас процессор Intel, выберите соответствующую страницу в списке и перейдите на неё. На этой странице вам будет предоставлена подробная информация о процессоре.
Если у вас процессор от компании AMD, то лучше всего будет воспользоваться сайтом AMD. Выберите пункт меню Процессоры, далее — пункт Характеристики изделия и затем, выбрав тип (например, Потребительские процессоры), выполните переход на страницу Спецификации процессоров. На этой странице выполните поиск вашего процессора по названию и посмотрите подробную информацию о нём.
Выводы
В этой статье мы довольно подробно рассказали о поддержке процессорами инструкций AVX, AVX2, а также показали несколько способов, позволяющих выяснить наличие такой поддержки конкретно вашим процессором. Надеемся, что дополнительная информация об используемом процессоре будет полезна для вас, а также поможет в выборе процессора в будущем.
У меня интересный вопрос. А для чего инструкция avx в процессорах? Будут ли игры на этой инструкции?
Новые игры должны быть уже скомпилены с учетом возможного наличия avx. Так ведь всегда — постепено появлялась поддержка mmx, sse, 3dnow и прочих вещей, которые сейчас уже стали стандартом для процессоров. Так и avx скоро будет поддерживаться всеми играми как само собой разумеющееся.
А применение простое:
Без avx для, например, сложения 10 пар чисел надо потратить 10 тактов процессора, а с avx это можно сделать примерно за 1 такт, что в 10 раз быстрее. Это уже можно было делать со времен mmx, просто avx, грубо говоря, позволяет использовать намного большие числа, чем mmx или sse.
Что такое avx
Advanced Vector Extensions (AVX) — расширение системы команд x86 для микропроцессоров Intel и AMD, предложенное Intel в марте 2008. [1]
AVX предоставляет различные улучшения, новые инструкции и новую схему кодирования машинных кодов.
Содержание
Улучшения
- Новая схема кодирования инструкций VEX
- Размер векторных регистров SIMD увеличивается со 128 (XMM) до 256 бит (регистры YMM0 — YMM15). Существующие 128-битные SSE инструкции будут использовать младшую половину новых YMM регистров, не изменяя старшую часть. Для работы с YMM регистрами добавлены новые 256-битные AVX инструкции. В будущем возможно расширение векторных регистров SIMD до 512 или 1024 бит.
- Неразрушающие операции. Набор AVX инструкций использует трёхоперандный синтаксис. Например, вместо
можно использовать
, при этом регистр
остаётся неизменённым. В случаях, когда значение
используется дальше в вычислениях, это повышает производительность, так как избавляет от необходимости сохранять перед вычислением и восстанавливать после вычисления регистр, содержавший
, из другого регистра или памяти.
- Для большинства новых инструкций отсутствуют требования к выравниванию операндов в памяти. Однако, рекомендуется следить за выравниванием на размер операнда, во избежание значительного снижения производительности. [2]
- Набор инструкций AVX содержит в себе аналоги 128-битных SSE инструкций для вещественных чисел. При этом, в отличие от оригиналов, сохранение 128-битного результата будет обнулять старшую половину YMM регистра. 128-битные AVX инструкции сохраняют прочие преимущества AVX, такие как, новая схема кодирования, трехоперандный синтаксис и невыровненный доступ к памяти. Рекомендуется отказаться от старых SSE инструкций в пользу новых 128-битных AVX инструкций, даже если достаточно двух операндов. [3]
Новая схема кодирования
Новая схема кодирования инструкций VEX использует VEX префикс. В настоящий момент существуют два VEX префикса, длиной 2 и 3 байта. Для 2-х байтного VEX префикса первый байт равен 0xC5, для 3-х байтного 0xC4. В 64-битном режиме первый байт VEX префикса уникален. В 32-битном режиме возникает конфликт с инструкциями LES и LDS, который разрешается старшим битом второго байта, он имеет значение только в 64-битном режиме, через неподдерживаемые формы инструкций LES и LDS. [4] Длина существующих AVX инструкций, вместе с VEX префиксом, не превышает 11 байт. В следующих версиях ожидается появление более длинных инструкций.
Новые инструкции
Инструкция | Описание |
---|---|
VBROADCASTSS, VBROADCASTSD, VBROADCASTF128 | Копирует 32-х, 64-х или 128-ми битный операнд из памяти во все элементы векторного регистра XMM или YMM. |
VINSERTF128 | Замещает младшую или старшую половину 256-ти битного регистра YMM значением 128-ми битного операнда. Другая часть регистра-получателя не изменяется. |
VEXTRACTF128 | Извлекает младшую или старшую половину 256-ти битного регистра YMM и копирует в 128-ми битный операнд-назначение. |
VMASKMOVPS, VMASKMOVPD | Условно считывает любое количество элементов из векторного операнда из памяти в регистр-получатель, оставляя остальные элементы несчитанными и обнуляя соответствующие им элементы регистра-получателя. Также может условно записывать любое количество элементов из векторного регистра в векторный операнд в памяти, оставляя остальные элементы операнда памяти неизменёнными |
VPERMILPS, VPERMILPD | Переставляет 32-х или 64-х битные элементы вектора согласно операнду-селектору (из памяти или из регистра). |
VPERM2F128 | Переставляет 4 128-ми битных элемента двух 256-ти битных регистров в 256-ти битный операнд-назначение с использованием непосредственной константы (imm) в качестве селектора. |
VZEROALL | Обнуляет все YMM регистры и помечает их как неиспользуемые. Используется при переключении между 128-ми битным режимом и 256-ти битным. |
VZEROUPPER | Обнуляет старшие половины всех регистров YMM. Используется при переключении между 128-ми битным режимом и 256-ти битным. |
Также в спецификации AVX описана группа инструкций PCLMUL (Parallel Carry-Less Multiplication, Parallel CLMUL)
- PCLMULLQLQDQ xmmreg,xmmrm [rm: 66 0f 3a 44 /r 00]
- PCLMULHQLQDQ xmmreg,xmmrm [rm: 66 0f 3a 44 /r 01]
- PCLMULLQHQDQ xmmreg,xmmrm [rm: 66 0f 3a 44 /r 02]
- PCLMULHQHQDQ xmmreg,xmmrm [rm: 66 0f 3a 44 /r 03]
- PCLMULQDQ xmmreg,xmmrm,imm [rmi: 66 0f 3a 44 /r ib]
Применение
Подходит для интенсивных вычислений с плавающей точкой в мультимедиа программах и научных задачах. Там, где возможна более высокая степень параллелизма, увеличивает производительность с вещественными числами.
Поддержка в операционных системах
Использование YMM регистров требует поддержки со стороны операционной системы. Следующие системы поддерживают регистры YMM:
- Linux: с версии ядра 2.6.30, [5] released on June 9, 2009. [6]
- Windows 7: поддержка добавлена в Service Pack 1 [7]
- Windows Server 2008 R2: поддержка добавлена в Service Pack 1 [7]
Микропроцессоры с AVX
- Процессоры с микроархитектурой Sandy Bridge, 2011. [8]
- Процессоры с микроархитектурой Ivy Bridge, 2012.
- Процессоры с микроархитектурой Bulldozer, 2011. [9]
- Процессоры с микроархитектурой Piledriver, 2012.
- ↑Intel Software Network. Intel. Архивировано из первоисточника 6 апреля 2012.Проверено 5 апреля 2008.
- ↑Introduction to Intel® Advanced Vector Extensions — Intel® Software Network
- ↑Questions about AVX — Intel® Software Network
- ↑Introduction to Intel® Ad . — Intel® Software Network
- ↑x86: add linux kernel support for YMM state. Архивировано из первоисточника 6 апреля 2012.Проверено 13 июля 2009.
- ↑Linux 2.6.30 — Linux Kernel Newbies. Архивировано из первоисточника 6 апреля 2012.Проверено 13 июля 2009.
- ↑ 12Enable Windows 7 Support for Intel AVX. Microsoft. Архивировано из первоисточника 6 апреля 2012.Проверено 29 января 2011.
- ↑Intel Offers Peek at Nehalem and Larrabee. ExtremeTech (March 17, 2008). (недоступная ссылка — история)
- ↑Striking a balance. Dave Christie, AMD Developer blogs (May 7, 2009). Архивировано из первоисточника 6 апреля 2012.Проверено 8 мая 2009.
- ↑ 12More details on the future AVX instruction set 2.0 | Tech News Pedia
- Расширения архитектуры x86
- :
Совместимость между реализациями Intel и AMD обсуждается в XOP instruction set.
Будущие расширения
Схема кодирования инструкций VEX легко допускает дальнейшее расширение набора инструкций AVX. В следующей версии, AVX2, планируется добавить инструкции для работы с целыми числами, FMA3 (увеличит производительность при обработке чисел с плавающей запятой в 2 раза [10] ), загрузку распределенного в памяти вектора (gather) и прочее.
Различные планируемые дополнения системы команд x86:
Примечания
Наборы расширения базовых инструкций процессоров семейства x86 |
---|
MMX | MMXEXT | SSE | SSE2 | SSE3 | SSSE3 | SSE4 | ATA | 3DNow! | 3DNowExt | SSE5 | AVX | AES |
Wikimedia Foundation . 2010 .
Полезное
Смотреть что такое «AVX» в других словарях:
Avx — <<
AVX — Sigles d’une seule lettre Sigles de deux lettres > Sigles de trois lettres Sigles de quatre lettres Sigles de cinq lettres Sigles de six lettres Sigles de sept… … Wikipédia en Français
AVX — A V X Corporation (Business » NYSE Symbols) … Abbreviations dictionary
AVX — Catalina Island Avalon Bay, CA, USA internationale Flughafen Kennung … Acronyms
AVX — Catalina Island Avalon Bay, CA, USA internationale Fughafen Kennung … Acronyms von A bis Z
AVX — abbr. AntiVirus eXpert … Dictionary of abbreviations
Catalina Airport — AVX forwards here. For the Intel SIMD instruction set, see Advanced Vector Extensions.Infobox Airport name = Catalina Airport image width = 200 caption = Douglas DC 3 on take off image2 width = 150 caption2 = Catalina Airport runway diagram IATA … Wikipedia
Surface-mount technology — (SMT) is a method for constructing electronic circuits in which the components (SMC, or Surface Mounted Components) are mounted directly onto the surface of printed circuit boards (PCBs). Electronic devices so made are called surface mount… … Wikipedia
Tecnología de montaje superficial — Varios dispositivos SMD. La tecnología de montaje superficial, más conocida por sus siglas en inglés SMT (Surface Mount Technology) es el método de construcción de dispositivos electrónicos más utilizado actualmente. Se usa tanto para componentes … Wikipedia Español
Advanced Vector Extensions — (AVX) ist eine Erweiterung des x86 Befehlssatzes für Mikroprozessoren von Intel und AMD, die von Intel im März 2008 vorgeschlagen wurde.[1] Inhaltsverzeichnis 1 Neue Eigenschaften 2 Neue Instruktionen … Deutsch Wikipedia
AVX инструкции и Cinebench R15-R23
Первым делом я хочу сказать что использую один и тот же комплект ОЗУ на обеих системах AMD и Intel, и я хотел бы особо отметить слоты ОЗУ в системной плате ASRock B560M-HDV, они отвратительны без преувеличений, эта конструкция от Asus с одной защелкой просто ужасна, каждый раз перемещая модули ОЗУ между системами я слышу скрип контактов в углу слота который без защелки.
Рано или поздно либо дорожки у модулей ОЗУ познают отвал, либо слот ОЗУ, крайне рекомендую обходить стороной системные платы с такими «крутыми» слотами ОЗУ без второй защелки, это не только противно звучит при использовании, но и явно сокращает срок службы оборудования.
Я очень рад, что Gigabyte не страдает экономией на слотах ОЗУ в ущерб надежности и долговечности как это делает Asus и ASRock (по сути тот же Asus), но меня удручает осознание того, что новенькая ASRock B560 может скоро пойти в мусорное ведро из-за максимально дешевых слотов которые Asus (ASRock) применяют даже в дорогих платах.
реклама
P.S. На видеокарте я специально до конца стараюсь не защелкивать ибо доступ к защелке видеокарты, как правило, затруднен.
Теперь продолжим по теме Cinebench и AVX инструкций, сколько бы я ретестов не делал, каждый раз было очевидно занижение результатов AMD начиная с версии Cinebench R20, я уже и HPET таймер привлек к тестам, и процессоры зафиксировал на одинаковой частоте, и сейчас вот пришла очередь затронуть AVX.
Тестовые условия
Частота ядер зафиксирована на отметке 3.9 ГГц, HPET по умолчанию (включен), R7 2700X с одним активным CCX.
ПК отключен от сети интернет, чтобы минимизировать погрешность из-за возможной скрытной фоновой активности Windows 10.
реклама
Информация в CPU-Z остается прежняя при отключении AVX с помощью командной строки потому не буду дублировать скриншоты.
Enable AVX: bcdedit /set xsavedisable 0
Disable AVX: bcdedit /set xsavedisable 1
![]() | ![]() |
В процессе тестирования GTX 750 Ti была заменена на R9 290, но на результаты это никак не повлияло в итоге.
Результаты тестов
реклама
Cinebench R15
![]() | ![]() | ![]() | ![]() |
![]() | ![]() |
Cinebench R20
![]() | ![]() | ![]() | ![]() |
![]() | ![]() |
Cinebench R23
Здесь результат R7 2700X со включенным AVX имеет погрешность в меньшую сторону, возможно видеодрайвер в фоне что-то сделал или какая-то служба Windows 10 подгрузила, но я это заметил уже после сбора всех результатов.
Чтобы не искажать данной погрешностью общую картину, я возьму устойчивый результат из предыдущих моих тестов который получен в таких же условиях со включенным AVX и HPET по умолчанию с зафиксированными частотами ядер.
Я конечно мог удалить «неудачный» результат на который что-то из фона Windows 10 повлияло, но мне нужно будет снова доставать ОЗУ из противных слотов с одной защелкой от Asus (ASRock), так что оставлю как напоминание о возможной погрешности результатов по вине операционной системы.
![]() | ![]() | ![]() | ![]() |
Результаты Windows 7 отсутствуют т.к. разработчики 23 версии теста подключили библиотеки Microsoft что отказываются работать на «неправильной» системе.
Rage II
Я думал использовать игру, чтобы посмотреть есть ли значительная разница от AVX с процессором AMD Ryzen, но игра просто падала в ошибку с отключенным AVX через Windows.
![]() | ![]() |
Я даже установил R9 290 вместо GTX 750Ti в ПК с R7 2700X, Delux MicroATX 450W судя по всему очень рад новому партнеру, хотя пришлось скрутить один переходник с молекса на 8pin VGA.
В итоге установка видеокарты от AMD не повлияла никак на игру и она падает с ошибкой, причем замечу, с Windows 7 данная игра прекрасно работала на процессоре Phenom II x4 830 без AVX.
![]() | ![]() |
Чтобы наверняка исключить возможность вины Windows 10, я провел тесты еще и на основном ПК с R5 1600AF и Windows 7, при отключении AVX средствами Windows игра все так же падает.
![]() | ![]() |
Похоже здесь лежит вина на основе Windows Vista, в той самой на которой построены Windows 7/8/10/11.
AIDA64
Так как с игрой не срослось я решил пойти в AIDA64, однако замечу, AIDA64 активно использует AVX2, но я не нашел способ отключить AVX2 отдельно от AVX.
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
А еще я обнаружил что изменение множителя AVX2 в BIOS никак не влияло на результаты тестов несмотря на то, что AIDA64 использует AVX2.
Я пробовал разные варианты множителя, но результат оставался прежним всегда во всех тестах AIDA64.
![]() | ![]() |
SiSoftware Sandra Lite (san3149)
Не получив вменяемых результатов со стороны AIDA64 я вспомнил про «Сандру», она умеет тестировать отдельно AVX и AVX2.
К сожалению множитель AVX2 в BIOS действительно неисправен, как его не крути, а результаты одинаковы даже в «Сандре», впрочем, это же Intel, ничего удивительного.
![]() | ![]() | ![]() | ![]() |
![]() | ![]() |
Разбор результатов
Cinebench
И снова очевидна картина с занижением результатов процессоров от AMD, процессор от Intel даже с отключенным AVX иногда получает заметно большее преимущество относительно AMD.
Если сравнить прирост от использования AVX инструкций, то у AMD прирост близок к уровню погрешности нежели к реальным изменениям, тем временем Intel получает почти 10% прироста с использованием AVX, видимо не просто так разработчики подсунули библиотеки от Intel в Cinebench R20/R23.
На использование AVX2 разница точно не вытягивает с i3-10105F, просто обращаю внимание на это, когда перейдем к AIDA64 и SiSoftware Sandra станет понятно почему я обратил на это внимание.
AIDA64
Тесты AIDA64 активно используют AVX и AVX2 в зависимости от того что доступно, и управлять тем что использует AIDA64 невозможно, в итоге использовался AVX2 как с i3-10105F, так и с R7 2700X (1CCX), на этом моменте я просто напомню что Zen/Zen+ имеют лишь совместимость с AVX2, но не полноценную поддержку.
Здесь в полной мере можно заметить насколько сильный прирост дает AVX2 с которым Zen/Zen+ лишь совместимы, однако без помощи AVX2 процессор i3-10105F выглядит жалко по сравнению с R7 2700X даже несмотря на одинаковое количество ядер и частоты.
Еще можно отметить что даже при использовании AVX2 инструкций с которыми у Zen/Zen+ не лучшие отношения, R7 2700X показал прирост почти в 5%, а в худшем случае почти 3%, когда в Cinebench прирост от AVX даже до 2% с трудом дотягивал.
SiSoftware Sandra Lite (san3149)
Вот и настал черед самого интересного, в отличие от AIDA64 данный арифметический тест использует как AVX так и AVX2, и результаты для этих инструкций раздельно представлены.
У Zen/Zen+ действительно с AVX2 дела обстоят не лучшим образом и производительность падает на
4-6% относительно SSE4, тем временем i3-10105F при работе с короткими целочисленными данными имеет 15% прирост относительно SSE4 инструкций.
С AVX/FMA инструкциями относительно SSE4 однозначно нельзя сказать что лучше, R7 2700X или i3-10105F.
Особо бросается в глаза разница с AVX/FMA инструкциями у i3-10105F, она едва доходит до +2%, а в Cinebench R20/23 разница подлетала под +10%, магия библиотек от Intel.
Если же сравнить R7 2700X с i3-10105F при одинаковом количестве ядер и частотах, то i3-10105F смог обойти R7 2700X (1CCX) только используя AVX2 инструкции и то лишь в одном случае из четырёх, во всех остальных случаях i3-10105F отстает от R7 2700X (1CCX) до
Заключение
Факт того что Cinebench R20/R23 больше любит процессоры от Intel снова подтвердился, оно и не удивительно учитывая что разработчики внедрили библиотеки от Intel в свой бенчмарк.
Судя по всему Intel завышает результаты своих процессоров через манипуляции с AVX инструкциями в своих библиотеках которые внедрены в Cinebench начиная с 20 версии.
AIDA64 тем временем отлично реагирует на AVX2 инструкции, и в двух тестах из трёх i3-10105F смог обойти один CCX модуль Zen+ что с AVX2 дружит только на уровне совместимости, однако i3-10105F не справился с усложненным тестом SinJulia и сильно отстал в производительности от Zen+.
Без помощи AVX2 инструкций i3-10105F сильно отстал от одного модуля R7 2700X на равных частотах, а еще может показаться что R7 2700X всегда использовал AVX инструкции даже когда они отключены.
SiSoftware Sandra показала что в чистой производительности i3-10105F весьма слаб по сравнению с R7 2700X при условии одинакового количества ядер и частот, и не способен без помощи AVX2 обойти старый Zen+, по сути ситуация аналогична, как и в AIDA64, только разрыв не столь серьезный.
В целом сложно сказать есть ли от AVX прирост производительности относительно SSE4, возможно результаты искажены проблемами ядра Windows Vista на котором основаны Windows 7/8/10/11.
Например, Rage II явно пытается AVX использовать, но падает с ошибкой, когда на системе у которой физически не было AVX (Phenom II) эта игра прекрасно работала, а еще отсутствие значительной разницы от AVX с Zen+ в AIDA64.
Отдельно отмечу множитель AVX2 в BIOS, он абсолютно не влиял на результаты тестов, как бы я его не крутил.
Я это еще приметил сразу при покупке LGA1200 системы когда пытался крутить AVX2 множитель чтобы в стресс тесте посмотреть будут ли изменения, но изменений в потреблении мощности не было, и теперь я уже точно знаю что множитель просто не работает.
![]() | ![]() |
Ну а еще рекомендую обходить стороной системные платы у которых распаяны слоты ОЗУ на одной защелке, может быть они удобнее при установке модуля (я не заметил особой разницы в удобстве между классическими слотами), но они крайне опасны при извлечении модуля.