Процессорах без 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, а также показали несколько способов, позволяющих выяснить наличие такой поддержки конкретно вашим процессором. Надеемся, что дополнительная информация об используемом процессоре будет полезна для вас, а также поможет в выборе процессора в будущем.

Была ли эта статья полезной?

ДаНет

Оцените статью:

Очень плохоПлохоПойдетХорошоОгонь! (7 оценок, среднее: 5,00 из 5)

Загрузка…

Об авторе

Над статьей работал не только её автор, но и другие люди из команды te4h, администратор (admin), редакторы или другие авторы. Ещё к этому автору могут попадать статьи, авторы которых написали мало статей и для них не было смысла создавать отдельные аккаунты.

Приветствую ребята))

Коротко ответ: запуск игры на процессоре без поддержки AVX-инструкций. Обычно это старые процессоры, в итоге игра может работать, но возможно с меньшей производительностью.

Все современные процессоры поддерживают AVX. Вот например старый i7 2600K (1155 сокет) уже поддерживает AVX, но первую версию, а i7 860 (1156 сокет) — вообще не поддерживает, но правда он еще старее чем i7 2600K. Кстати легендарный процессор Q9650 (775 сокет) разумеется и близко не знает про AVX.

AVX — что это такое? Еще есть AVX2. Это улучшенные версии старых инструкций SSE. Простыми словами — это специальные инструкции, которые помогают процессору работать быстрее с некоторыми вычислениями. Они созданы как для процов Интел, так и для АМД. AVX расшифровывается как Advanced Vector Extensions.

Ну а что делают инструкции AVX? Все просто — процессор без поддержки AVX за один такт сможет сложить 1 пару чисел, а с поддержкой — уже 10. Однако это все нужно не так часто, как нам кажется, по большей части эффект заметен в профессиональных программах, а в играх не так заметно. Возможно современные игры уже больше могут использовать AVX.

Как узнать — поддерживает ли процессор AVX? Очень просто — скачайте бесплатную утилиту CPU-Z, она маленькая, неприхотливая, запустите ее и посмотрите какие инструкции поддерживает ваш проц:

Вот выше на картинке — проц i5 7400, вполне современный, как видим он поддерживает и просто AVX и более новую версию AVX2. Впрочем ничего удивительного — i5 7400 это седьмое поколение, а это 2017 год.

Надеюсь данная информация оказалась полезной. Удачи и добра, до новых встреч друзья!

На главную!

01.04.2021


Блоки векторных инструкций AVX-512 на процессоре Core i9-12900K

Всем производителям материнских плат Z690 на процессорах Alder Lake пришло обновление микрокода от Intel, которое полностью запрещает использование инструкций AVX-512.

Физически модуль AVX-512 остался на ядрах P. Его можно было активировать через BIOS и повысить производительность в 14–32 раза в некоторых специфических задачах, отключив при этом малополезные ядра E. Теперь лазейку закрыли.

Таким образом Intel окончательно убрала официальную поддержку AVX-512 из новых процессоров 12-го поколения Alder Lake. Изначально предполагалось, что этот модуль физически убрали с микросхемы, потому что он занимает много места. Но потом выяснилось, что блоки остались на месте, но только в производительных ядрах P.

Обновление микрокода пришло производителям буквально за несколько дней до начала выставки CES 2022, где Intel собирается представить ряд младших процессоров в семействе Alder Lake. Естественно, все они работают на материнских платах с чипсетом Z690. И вот теперь компания решила окончательно закрыть вопрос с поддержкой AVX-512.

Набор инструкций AVX-512 расширяет систему команд AVX до векторов длиной 512 бит при помощи кодировки с префиксом EVEX. Расширение AVX-512 вводит 32 векторных регистра (ZMM), каждый по 512 бит, 8 регистров масок, 512-разрядные упакованные форматы для целых и дробных чисел и операции над ними, тонкое управление режимами округления (позволяет переопределить глобальные настройки), операции broadcast (рассылка информации из одного элемента регистра в другие), подавление ошибок в операциях с дробными числами, операции gather/scatter (сборка и рассылка элементов векторного регистра в/из нескольких адресов памяти), быстрые математические операции, компактное кодирование больших смещений. Блок AVX-512 реализован в следующих процессорах: Intel Xeon Phi x200 и x205 (в сопроцессорах Knights Landing и Knights Mill), а также в семействах Skylake-SP, Skylake-X, Cannon Lake, Cascade Lake, Cooper Lake, Ice Lake, Rocket Lake, Tiger Lake, Sapphire Rapids.

Причины отключения AVX-512

Официально причины не разглашаются. Мы можем только предполагать. Дело в том, что единственным условием для активации AVX-512 является отключение ядер E. При этом во многих задачах такая замена (AVX-512 вместо ядер E) практически не отражается на производительности или даже улучшает её.

Отключение ядер E практически не отражается на производительности после активации AVX-512

Другая причина: усложнение настроек с отключением/включением ядер создаёт дополнительную нагрузку на службу технической поддержки Intel.

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

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

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

Intel многократно использовала этот приём. Говорят, в первых семи поколениях Core специально не выпускались настольные процессоры более чем с четырьмя ядрами, чтобы не повредить более прибыльному серверному сегменту.

Выпуск одинаковых процессоров в «залоченной» и «разлоченной» версиях, с отключенными/включенными ядрами и т. д. — это стандартный арсенал грязных приёмов у производителей компьютерных комплектующих.

Ограничения на AVX2

Проблема с блокировкой AVX-512 усугубляется тем, что в оставшемся наборе инструкций AVX2 стоит ограничение на максимальный множитель тактовой частоты х51, пишет Igor’s Lab.

То есть при выполнении инструкций AVX2 тактовая частота процессора принудительно понижается до 5,1 ГГц не может быть поднята даже до 5,2 ГГц ни при каких настройках BIOS, независимо от охлаждения, энергопотребления, реальной температуры CPU или запущенного приложения. Например, в программе HWInfo режим принудительного ограничения частоты можно распознать по строке IA: Max Turbo Limit – Yes.

Активирован режим IA: Max Turbo Limit – Yes

Неофициальные хаки

К счастью, уже разработаны методы обхода программных ограничений, установленных Intel, как в отношении блокировки AVX-512, так и по троттлингу AVX2.

Например, компания Asus в материнских платах серии Maximus реализовала патч BIOS, который отключает троттлинг AVX2 при условии принудительного выставления тактовой частоты в BIOS.

Активировать AVX-512 сложнее, но тоже возможно. Сообщество уже нашло способ внедрить в новую прошивку старую версию микрокода от Intel, что эффективно включает обратно AVX-512.

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

Некоторые из высокобюджетных (AAA) игр, выпущенных в наши дни, требуют процессора, совместимого с AVX (Advanced Vector Extensions), для запуска на вашем ПК. Например, Death Stranding, Yakuza 3 Remastered, Age of Empires IV, Dying Light 2 и т. д.…

Если ваш процессор не поддерживает AVX, при попытке запустить игру, для которой требуется AVX, игра не запустится, и вы увидите сообщение об ошибке, подобное приведенному ниже.

«Ваш процессор должен поддерживать инструкции AVX для запуска этой игры».

«Обнаружено неподдерживаемое оборудование. Для запуска этой игры требуется процессор, поддерживающий набор инструкций AVX».

«Фатальная ошибка. Ошибка запуска приложения. Пожалуйста, проверьте системные требования. (AVX)».

«Минимальные требования не выполнены. Предупреждение. Ваша система не соответствует минимальным требованиям. Для получения оптимальной производительности обратитесь к списку поддерживаемого оборудования. Требуются следующие наборы инструкций ЦП: AVX».

Примечание. Игра может вылететь даже без каких-либо сообщений об ошибках.

Перед покупкой игры с требованиями AVX целесообразно проверить, поддерживает ли ее ваш процессор.

Вы можете использовать бесплатное программное обеспечение, чтобы проверить это. Вы можете установить его, выполнив следующие действия. Затем используйте его, чтобы убедиться, что ваш процессор поддерживает AVX.

  • Перейдите на https://www.fosshub.com/HWiNFO.html.
  • Чтобы загрузить программное обеспечение, нажмите «HWiNFO Installer».
  • Затем установите его и запустите HWiNFO64.

  • Появится крошечное окно, подобное приведенному выше. Просто нажмите кнопку «Run».
  • Когда HWiNFO64 открыт, загляните в раздел ЦП.
  • Если AVX зеленый, это означает, что ваш процессор поддерживает его.

Оглавление:

  • Инструкция по нашему процессору
  • Что такое расширенные векторные расширения
  • Характеристики AVX
  • Для чего использовался AVX
  • Несколько заключительных слов

Мы поговорим о том, что такое AVX и как он влияет на ваш процессор, а также о некоторых его реализациях. И это из множества компонентов, которые составляют команду, мало кто будет утверждать, что процессор является одним из тех, которые оказывают наибольшее влияние на команду.

Внутри процессора одним из элементов, который оказывает наибольшее влияние на работу компонента, являются наборы команд и их реализация. Сегодня мы хотим провести время с одной из самых влиятельных среди существующих моделей. Давай сделаем это!

Указатель содержания

Инструкция по нашему процессору

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

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

Что такое расширенные векторные расширения

AVX является аббревиатурой от Advanced Vector Extension , имя, под которым набор команд известен как расширение к уже исчерпывающему набору команд IA-32 (x86). Набор, который Intel и AMD начнут кормить в конце девяностых, увидев свет других, таких как MMX или AMD64.

AVX гораздо более развит, чем его предки, а также набор инструкций SSE4, который он заменяет. Он сфокусирован на повышении эффективности при выполнении векторных вычислений (в основном, вычислений с плавающей запятой), но благодаря реализации улучшенной схемы кодирования и новых инструкций он может выполнять код до его реализации, что Это произошло в 2011 году с процессорами Sandy Bridge и FX-Jaguar.

Расширение регистра битовой длины. Изображение: colfaxresearch

В AVX инструкции собираются через регистры в векторах размером от 128 до 256 бит (YMM и XMM) в зависимости от их режима. Это обеспечивает совместимость с набором команд SSE, и вы можете использовать собственную схему кодирования трех операндов (VEX), которая более эффективна на многопоточных процессорах. Есть два замечательных дополнения к набору инструкций AVX: AVX2 и AVX-512.

  • AVX2 является самым продолжительным с момента его применения с 2013 года. Он вносит важные новшества в то, как процессор управляет элементами, найденными в векторах, и расширяет набор команд до 256-битных в тех, которые основаны на AVX и SSE. AVX-512 также выпущен в 2013 году, но его реализация в домашних процессорах (за пределами Xeon и Threadripper) несколько новее. Он состоит из серии расширений для операндов AVX2 и может работать с регистрами до 512 бит (ZMM).

МЫ РЕКОМЕНДУЕМ ВАМ Intel Burn Test: как проверить стабильность вашего процессора

Для чего использовался AVX

AVX — это эволюция, которая сопровождала наборы инструкций процессоров Intel в течение первого десятилетия 2000-х годов. Будучи естественными преемниками набора SSE, его приложения также вращаются вокруг мультимедиа (главным образом звука и видео) и поэтому являются Обязательное требование во многих программах, использующих рендеринг изображений, 3D-рисование или работу со звуком.

Дорожная карта AVX в Intel. Изображение: Wikimedia Commons; Lambtron

Хорошим примером этого может служить Blender, который в настоящее время поддерживает только AVX-совместимые процессоры. У нас такой же случай с такими программами, как Massive для звука, или в интерактивных развлечениях с некоторыми видеоиграми. AVX присутствует во всей среде современных мультимедийных программ и приложений.

Несколько заключительных слов

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

Мы рекомендуем читать лучшие процессоры на рынке

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

Шрифт Colfaxresearch

логотип 3DNews


3DNews Технологии и рынок IT. Новости процессоры Intel на аппаратном уровне уберёт поддер…


Самое интересное в обзорах

Компания Intel решила на аппаратном уровне избавиться от поддержки инструкций AVX-512 у процессоров Alder Lake. Об этом сообщает портал Tom’s Hardware, ссылающийся на анонимный источник. Отмечается, что все новые партии процессоров Core 12-го поколения будут лишены поддержки набора инструкций AVX-512 на физическом уровне.

 Источник изображения: Intel

Источник изображений: Intel

Журналисты обратились за комментариями в Intel, где ответили следующее: «Поддержка инструкций AVX-512 не отключена на физическом уровне у десктопных процессоров Alder Lake, которые уже были поставлены на рынок. Однако компания планирует исключить физическую поддержку AVX-512 в будущих партиях чипов Alder Lake».

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

Изначально Intel заявила, что AVX-512 не будут поддерживаться процессорами Alder Lake, поскольку чипы используют две разные микроархитектуры, одна из которых может работать с этим набором команд, а другая — нет. Однако спустя некоторое время производитель опубликовал информацию об оптимизации платформы Alder Lake. В этих документах указывалось, что поддержка AVX-512 в новых процессорах всё-таки планировалась, но официально Intel опять заявила, что чипы Core 12-го поколения не будут работать с этим набором команд. Следом компания выпустила новые советы по оптимизации платформы, в которых уже отсутствовало упоминание AVX-512 для Alder Lake.

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

 Источник изображения: Intel

В январе этого года появились информация, что Intel собирается отключить поддержку инструкций в новой версии микрокода процессоров через обновления прошивки BIOS. Компания вскоре так и поступила. Были выпущены новые версии BIOS для материнских плат, в которых отсутствовала функция включения инструкций AVX-512. Для тех, кто желал продолжить использовать этот набор команд, предлагалось не обновлять прошивки материнских плат до более свежих версий.

Казалось, что проблема решена. Однако компания MSI нашла способ, как обойти это ограничения. Для этого был предложен специальный механизм, позволяющий переключаться между старой и новой версией прошивки BIOS, не требующий от пользователя каких-то профессиональных навыков. Метод оказался простым и рабочим.

Судя по всему, Intel была возмущена подобным «бунтом на корабле» и теперь компания решила окончательно избавиться от поддержки инструкций AVX-512 — просто убрав из процессора блоки, которые отвечают за их работу. После этого никакие модификации BIOS и другие уловки не позволят вернуть поддержку этого набора команд на всех последующих партиях процессоров Alder Lake. Таким образом, если пользователь захочет использовать инструкции AVX-512, то ему придётся искать процессоры более старых партий, а также использовать более старые версии BIOS.

Своими действиями Intel явно даёт понять, что пользователям, желающим использовать инструкции AVX-512 на её новейших архитектурах, придётся обратить внимание на более дорогие процессоры серии Xeon, где такая поддержка обеспечивается. В то же время ходят слухи, что AMD планирует включить поддержку инструкций AVX-512 в свои грядущие процессоры на архитектуре Zen 4.

Intel сейчас также занимается вопросом с поставщиками материнских плат, которые «разрешили» разгонять официально неразгоняемые процессоры Alder Lake на своих продуктах. Компании недовольна этими обходными путями, поэтому можно ожидать, что в ближайшем будущем Intel тоже может найти решение для этой «проблемы».

Если вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.

Самые обсуждаемые публикации

Это определенный конец поддержки AVX-512 на процессорах 12-го поколения Intel Alder Lake. Объясняем по-простому, что представляет собой набор AVX инструкций, почему мы их потеряем и нужно ли переживать.

Процессоры Intel Alder Lake потеряют поддержку AVX-512

Первые процессоры 12-го поколения Intel Alder Lake дебютировали на рынке в ноябре 2021 года. Они представили 10-нм архитектуру big.LITTLE, поддержку интерфейса PCI Express 5.0 и оперативной памяти DDR5. Было кое-что еще, хотя Intel этого не обещала вовсе.

AVX-512 в процессорах Intel Alder Lake

Американцы утверждали, что данной функции не будет в потребительских процессорах 12-го поколения. Однако все оказалось иначе. Инструкции AVX-512, были обнаружены в процессорах Intel Alder Lake и активированы производителями материнских плат. Недолго думая, синие начали выпускать микрокод (обновление BIOS), который программно блокировал данную функцию.

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

AVX-512 в процессорах Intel Alder Lake

Более новые партии процессоров Intel Alder Lake в залоченном варианте (без буквы K в названии) уже имеют физически отключенные или вырезанные из кремния секции, отвечающие за обработку инструкции AVX-512. Позже Intel заявила, что все потребительские процессоры 12-го поколения лишаться данного набора инструкций.

За что отвечают инструкции AVX-512 и нужно ли переживать?

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

Почему Intel решилась на такой шаг? Тяжело сказать. Причин может быть много, желание отделить процессоры от потребительского рынка и HEDT; проблемы со стабильностью или высокие температуры. В любом случае простые пользователи ничего не потеряют.

В мире компьютерных технологий нет ничего странного в обилии всевозможных аббревиатур: CPU, GPU, RAM, SSD, BIOS, CD-ROM, и многих других. И почти каждый день появляются всё новые и новые сокращения названий каких-то технологий, что является неизбежным следствием бесконечного стремления инженеров улучшить функции и возможности наших вычислительных устройств.

Сегодня речь пойдёт о таких расширениях набора команд процессоров, как MMX, SSE и AVX. Многим знакомы эти сокращения, и мы выясним, действительно ли это какие-то интересные разработки, или же это не более чем бессмысленные маркетинговые уловки.

Ну о-о-очень первые дни

Середина 80-х прошлого столетия. Рынок процессоров был очень похож на сегодняшний. Intel бесспорно преобладала, но столкнулась с жесткой конкуренцией со стороны AMD. Домашние компьютеры, такие как Commodore 64, использовали базовые 8-битные процессоры, тогда как настольные ПК начинали переходить с 16-битных на 32-битные чипы.

Эти числа означают размер значений данных, которые могут быть обработаны математически, при этом чем выше эти значения, тем выше точность и возможности. Они также определяет размер основных регистров в микросхеме: небольших участков памяти, используемых для хранения рабочих данных.

Такие процессоры являются также скалярными и целочисленными. Что это означает? Скаляр – это когда над одним элементом данных выполняется только одна любая математическая операция. Обычно это обозначается как SISD (single instruction, single data, «одиночный поток команд – одиночный поток данных»).

Таким образом, инструкция по сложению двух значений данных просто обрабатывается для этих двух чисел. А если вам, например, нужно прибавить одно и то же значение к группе из 16 чисел, то для этого потребуется выполнить все 16 наборов инструкций – для каждого числа из этой группы по отдельности. По-другому процессоры тех лет складывать ещё не умели.


Intel 80386DX с частотой 16МГц (1985).

Целое (Integer) – в математике, это такое число, которое не имеет дробной части. Например, 8 или -12. Процессоры типа интеловского 80386SX не имели врожденной способности сложить, скажем, 3.80 и 7.26 – такие дробные числа называются числами с плавающей точкой (или запятой, в русском языке это без разницы) – по-английски FP, floating point или просто floats. Чтобы справиться с ними, нужен был другой процессор, например 80387SX, и отдельный набор инструкций – список команд, который сообщает процессору, что делать.

В те времена под инструкциями x86 понимали наборы команд для целочисленных (integer) операций, а под инструкциями x87 – для чисел с плавающей точкой (float). В наши дни все операции умеет выполнять один процессор, поэтому мы используем термин x86 для обозначения набора инструкций обоих типов данных.

Использование отдельных сопроцессоров для обработки разных типов данных было нормой, пока Intel не представила 80486: их первый CPU для персоналок со встроенным математическим сопроцессором для обработки вещественных данных (FPU, Floating Point Unit).


Intel 80486: Жёлтым цветом выделен блок FPU для обработки чисел с плавающей точкой.

Как вы можете видеть, этот блок совсем немного занимает места в процессоре, но рывок в производительности, благодаря этому решению, был огромен.

Но в целом принцип работы оставался скалярным, и таким он перешел и к преемнику 486-го: оригинальному Intel Pentium.

И пройдёт ещё три года после релиза этого первого Пентиума, прежде чем Intel представит миру Pentium MMX. Это произошло в октябре 1996 года.

V – значит «векторный». А MMX что значит?

В мире математики числа можно группировать в наборы различных видов и размеров – одна такая упорядоченная совокупность называется арифметическим вектором. Проще всего представить его себе в виде списка значений, расположенных горизонтально или вертикально. Технология MMX привнесла в мир процессоров возможность выполнять векторные математические вычисления.

Однако она была изначально довольно ограниченной, поскольку оперировала только целыми числами и фактически эксплуатировала для своих целей регистры FPU. Поэтому программисты, желающие использовать какие-то инструкции MMX, вынуждены иметь в виду, что при выполнении таких инструкций любые вычисления с плавающей запятой не могут выполняться одновременно с ними.

Знаменитая реклама технологии Intel MMX (1997).

FPU Pentium имел 64-битные регистры, и в операциях MMX каждый из них мог вместить два 32-битных, четыре 16-битных или восемь 8-битных целых числа. Именно эти группы чисел и являются векторами, и каждая инструкция, предназначенная для них, будет выполняться сразу над всеми значениями в группе.

Такой принцип получил название SIMD (single instruction, multiple data, «одиночный поток команд, множественный поток данных») и знаменует собой большой шаг вперед в развитии возможностей процессоров для персональных компьютеров.

Ну а какие приложения выигрывают от использования такого принципа? Практически все, которым приходится выполнять одинаковые вычисления над группой однородных данных, и в первую очередь это некоторые функции в 3D-моделировании и мультимедийных технологиях, а также в системах обработки стандартных сигналов.

Например, MMX можно применить для ускорения умножения матриц при обработке вершин в 3D, или для смешивания видеопотоков при работе с хромакеем или альфа-композитингом.


Процессор AMD K6-2 – где-то там есть 3DNow!

К сожалению, внедрение MMX продвигалось  довольно медленными темпами из-за негативного влияния этой технологии на производительность операций с плавающей точкой. AMD частично решила эту проблему, создав свою собственную версию под названием 3DNow! примерно через два года после появления MMX. Технология от AMD предлагала больше инструкций SIMD и умела обрабатывать числа с плавающей точкой, но также страдала от недостатка понимания программистами.

Ах, да! Как же официально расшифровывается аббревиатура MMX? Согласно Intel – никак!

Проще пареной SSE

Ситуация переломилась в лучшую сторону с приходом в 1999 году процессора Intel Pentium III. Он принёс с собой блестящую реализацию векторной функции под названием SSE (Streaming SIMD Extensions, «потоковые расширения SIMD»). На этот раз это был дополнительный набор из восьми 128-битных регистров, отдельных от регистров в FPU, и стек дополнительных инструкций для обработки чисел с плавающей точкой.

Использование независимых регистров означает, что больше нет такой сильной зависимости от FPU, хотя Pentium III не мог выполнять инструкции SSE одновременно с инструкциями FP. А также, новая функция поддерживает только один тип данных в регистрах: четыре 32-битных FP-числа.

Но переход к использованию FP-инструкций SIMD позволил значительно увеличить производительность в таких приложениях, как кодирование/декодирование видео, обработка изображений и звука, сжатие файлов и многих других.


Pentium IV: желтым цветом выделен блок регистров SSE2.

Усовершенствованная версия SSE2 появилась в 2001 году вместе с Pentium 4, и на этот раз поддержка типов данных была намного лучше: четыре 32-битных или два 64-битных FP-числа, а также шестнадцать 8-битных, восемь 16-битных, четыре 32-битных или два 64-битных целых числа. Регистры MMX остались в процессоре, но все операции MMX и SSE могли выполняться с использованием независимых 128-битных регистров SSE.

Модификация SSE3 появилась на свет в 2003 году, имея больше инструкций и возможность выполнять некоторые математические вычисления между значениями внутри одного регистра.

Ещё через 3 года мы познакомились с архитектурой Intel Core, принёсшей ещё одну ревизию технологии SIMD (SSSE3 – Supplemental SSE, «расширенные SSE»), и чуть позже в том же году – финальную версию, SSE4.

В 2007 году AMD применила собственную версию расширений CPU-инструкций SSE4 в своей архитектуре Barcelona. С названием в AMD париться не стали, и назвали свою версию просто SSE4a.

С линейкой Nehalem Core в 2008 году было выпущено незначительное обновление этой версии, которую Intel обозначила как SSE4.2 (а под SSE4.1 стали понимать исходную версию этого обновления). Обновления не затронули регистры, а лишь добавили больше инструкций в таблицу, расширив диапазон возможных математических и логических операций.

AMD, со своей стороны, сперва предложила новую версию SSE5, но позже решила разделить ее на три отдельных расширения, одно из которых довольно проблемное – подробнее об этом чуть позже.

К концу 2008 года и Intel, и AMD поставляли процессоры, которые уже могли обрабатывать все версии наборов инструкций от MMX до SSE4.2, и многие приложения (в основном игры) начали требовать этих функций для работы.

Время для новых букв

2008 год также был годом, когда Intel объявила о том, что они работают над значительным апгрейдом своей системы SIMD, и в 2011 году выкатила линейку процессоров Sandy Bridge с поддержкой набора инструкций AVX (Advanced Vector Extensions, «продвинутые векторные расширения»).

Всё удвоилось: вдвое больше векторных регистров и вдвое больше их размер.

Шестнадцать 256-битных регистров вмещают только восемь 32-битных или четыре 64-битных вещественных числа, поэтому в плане форматов данных, этот набор инструкций более ограничен в сравнении с SSE, но ведь и SSE никто не отменял. К тому времени программная поддержка векторных операций для CPU была уже хорошо отлажена, начиная с фундаментального мира компиляторов, заканчивая сложными приложениями.

И не даром: Core i7-2600K (или подобный ему), работающий на частоте 3,8ГГц, потенциально может выдавать более 230 GFLOPS (миллиардов операций с плавающей точкой в секунду) при выполнении инструкций AVX – неплохо для дополнения, относительно немного места занимающего на кристалле процессора.

Или могло бы быть неплохо, если бы он действительно работал на частоте 3,8ГГц. Частично проблема AVX заключалась в том, что нагрузка на чип получалась настолько высокой, что Intel пришлось заставить процессор автоматически снижать тактовую частоту в этом режиме примерно на 20%, чтобы уменьшить энергопотребление и не допустить перегрева. К сожалению, такова цена за выполнение любой работы SIMD в современном процессоре.

Еще одно усовершенствование, предлагаемое в AVX – это возможность работать одновременно с тремя значениями. Во всех версиях SSE операции выполнялись между двумя значениями, после чего результат заменял одно из них в регистре. При выполнении инструкций SIMD AVX не трогает исходные значения, сохраняя результирующее значение в отдельный регистр.

AVX2 был выпущен вместе с архитектурой Haswell для процессоров Core 4-го поколения в 2013 году, и представлял собой довольно значительный апгрейд, благодаря добавлению нового расширения: FMA (Fused Multiply-Add, «умножение-сложение с однократным округлением»).

Эта независимая функция в составе AVX2 была крайне востребована для приложений, работающих с векторной и матричной математикой, поскольку давала возможность выполнять две операции с помощью одной инструкции. Функция поддерживала и скалярные операции также.

Проблема оказалась в том, что FMA от Intel отличался от аналогичного расширения AMD настолько, что они были совершенно несовместимы. Причина в том, что Intel FMA представляет собой систему с тремя операндами, то есть работает с тремя отдельными значениями: два слагаемых и сумма, либо три слагаемых и сумма, замещающая одно из слагаемых.

У версии от AMD четыре операнда, поэтому она может вычислить 3 числа и записать ответ в отдельный регистр, не трогая исходные значения. Математически FMA4 лучше, чем FMA3, но его реализация немного сложнее, как с точки зрения программирования, так и с точки зрения интеграции функции в процессор.

AVX-512: а не многовато-ли?

AVX2 ещё только начал появляться на рынке процессоров, а Intel уже плела маниакальные планы относительно его преемника, AVX-512, и общий настрой среди разработчиков был такой: «больше регистров богу регистров!». Мало того, что этих самых регистров снова вдвое больше, и они снова вдвое увеличились в размере, так ещё и появился стек новых инструкций и поддержка устаревших.

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

72-ядерный 288-потоковый Knights Landing Xeon Phi.

В отличие от всех предыдущих реализаций, новый набор векторных инструкций состоял из 19-и компонентов: базового – AVX-512F, – необходимого для обеспечения совместимости, и множества весьма специфических. Эти дополнительные наборы охватывают такие области операций, как обратная математика, целочисленные FMA и алгоритмы свёрточной (конволюционной) нейронной сети (CNN-алгоритмы).

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

Это может показаться круто. А может и не показаться – в зависимости от вашей точки зрения. Регистры на кристалле CPU обычно группируются в так называемом регистровом файле, как видно на макрофото ниже.

2-ядерный Intel Skylake

Желтым прямоугольником выделен файл векторных регистров, красный прямоугольник – это наиболее вероятное расположение файла целочисленного регистра. Обратите внимание, насколько файл векторного регистра больше integer-регистра. В Skylake используются 256-битные регистры AVX2, следовательно аналогичный векторный регистровый файл AVX-512 занял бы на таком же кристалле в четыре раза больше места: вдвое больше, потому что вдвое больше их размер, и ещё вдвое – потому что самих регистров вдвое больше.

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

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

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

Например, набор IFMA (Integer Fused Multiply Add, «целочисленное умножение-сложение с однократным округлением») доступен только на процессорах Cannon, Ice и Tiger Lake. В то время как процессоры на архитектуре Cooper и Cascade Lake его не поддерживают, несмотря на то, что они относятся к сегменту процессоров для серверов и рабочих станций.

Стоит отметить, что AMD не предлагает поддержку AVX-512, и не собирается. По их мнению, обработка массивных векторных вычислений – это прерогатива GPU. С AMD полностью солидарна Nvidia, и обе компании уже выпустили продукты специально для таких нужд.

И дальше что?

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

Что касается последних двух типов данных, то CPU теперь напрямую конкурируют с GPU: ведь мир 3D-графики – это как раз всё, что связано с SIMD, векторами, плавающими точками и т.д. И производители GPU не спали – разработка графических ускорителей велась стремительными темпами. В начале 2010-х годов купить видеокарту, процессор которой способен выполнять почти 800 миллиардов инструкций SIMD в секунду, вы уже могли менее чем за 500 долларов.

Это больше, чем то, на что сейчас способны лучшие из десктопных CPU. Но они и не предназначены для рекордов в какой-то конкретной области – их задача обрабатывать очень обобщенный код, который зачастую не повторяется или легко распараллеливается. Поэтому, не стоит думать, что возможности SIMD столь жизненно-важны для CPU, скорее это полезное дополнение к его арсеналу.

Вас интересует производительность SIMD в чистом виде? Ваш выбор – видеокарта, а не материнка!

Стремительное развитие графических процессоров недвусмысленно намекает, что для CPU нет нужды иметь чересчур большие векторные блоки, и почти наверняка именно поэтому AMD даже не пыталась разрабатывать своего собственного преемника для AVX2 (расширение, которое они используют в своих чипах с 2015 года). Давайте также не будем забывать, что процессоры следующего поколения могут больше походить на мобильные однокристальные (SoC, System-on-a-Chip), где под каждый тип задач выделена площадь на кристалле. Intel, в свою очередь, похоже, стремится внедрить AVX-512 в как можно большее количество продуктов.

Ждёт ли нас ещё и AVX-1024? Вряд ли, либо очень нескоро. Скорее всего, Intel займётся расширением AVX-512 с помощью дополнительных компонентов с инструкциями, чтобы повысить гибкость, а чистую SIMD-производительность переложит на плечи своей недавно разработанной линейки графических процессоров Xe.

Библиотеки SSE и AVX теперь являются неотъемлемой частью программного обеспечения: Adobe Photoshop требует, чтобы процессоры поддерживали как минимум SSE4.2; API машинного обучения TensorFlow требует поддержки AVX; Microsoft Teams может выполнять фоновые видеоэффекты, только если доступен AVX2.

Это говорит только об одном: несмотря на то, что в плане обработки SIMD графическим процессорам нет равных, этот функционал ещё долго будет в арсенале CPU. Так что будем ждать нового поколения векторных расширений и надеюсь, реклама нас впечатлит.

Понравилась статья? Поделить с друзьями:
  • Как собрать кораблик из бумаги пошаговая инструкция
  • Гравитус витамины для женщин инструкция по применению
  • Руководство ниссан моко
  • Реле освещения астрономическое twa 1 авв инструкция
  • Руководство по бизнесу что делать