что такое avx в играх

Запуск игры без AVX — что это такое?

что такое avx в играхПриветствую ребята))

Коротко ответ: запуск игры на процессоре без поддержки 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, она маленькая, неприхотливая, запустите ее и посмотрите какие инструкции поддерживает ваш проц:

что такое avx в играх

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

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

Источник

Сегодня хочу завести разговор на тему, что такое avx инструкции в процессоре, где и для чего они используются.

Зачем нужны AVX инструкции

Без AVX тоже можно обрабатывать фоточки, жевать видео и пилить три-дэ. Но есть нюансы.
Если по-проще, то старый 8-ядерный Xeon (не умеющий AXV) будет пилить видосы с той же скоростью что современный i3 (умеющий AVX).

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

Еще одна вкусность AVX это дополнительный операнд. Используется не 2 операнда а 3, что так же сокращает конвейер. Допустим мы хотим сложить X и Y.
Код: Обычная операция, где 2 операнда (X=X+Y) заставит перезаписывать один из операндов.
AVX операция, где 3 операнда (Z=X+Y) позволяет записать результат в третий операнд.
Сложна? Ок, давайте бум прощэ.

Новейшее функциональное расширение AVX512 (Advanced Vector Ex­ten­sion 512-bit), также известное под именем AVX3, состоит из девяти тех­но­ло­гий, каждая из которых может опционально поддерживаться или не поддерживаться конкретным процессором. Ряд внедрений рас­смат­ри­ва­е­мо­го семейства, связанных с операциями повышенной разрядности, уже применяется в сопроцессорах Intel Xeon Phi и опционально до­ступ­ны в процессорах Xeon с микроархитектурой Skylake. Напомним, что сопроцессоры Xeon Phi предназначены для установки в PCI Express слот.

Базовая функциональность AVX512

Как следует из несложных подсчетов, новое 512-битное операционное устройство способно обрабатывать 8 64-битных чисел двойной точности либо 16 32-битных чисел одинарной точности за одну векторную команду.

В базовый набор AVX512F также входит предикатное выполнение векторных операций. Это означает, что при об­ра­бот­ке чисел, упакованных в 512-битном регистре, операция может быть выполнена или отменена, ин­ди­ви­ду­аль­но для каждого числа. Например, при обработке 16 32-битных чисел одинарной точности, 16-битный предикат, содержащий все «единицы» обеспечит выполнение операции для всех чисел. Если все биты предиката нулевые, операция не выполняется. А установив, например два младших бита предиката, можно выполнить операцию для двух первых чисел, оставив остальные числа незатронутыми. Для хранения предикатов вводится 8 до­пол­ни­тель­ных 64-битных регистров K0–K7.

Аппаратное выявление конфликтов

Опережающая загрузка данных

что такое avx в играх
Рис 2

Вычисление экспоненты и обратных величин

Операции переменной разрядности

Обработка байтов и 16-битных операндов

Обработка 32 и 64-битных операндов

Совмещенное умножение-сложение для 52-битных операндов

Операции с байтами в составе векторных регистров

Резюме

Как видно из вышеизложенного, расширение AVX512 подразумевает введение новых процессорных команд и архитектурных ресурсов. Поэтому, прибавку производительности получит только то программное обеспечение, которое написано и оптимизировано с учетом новой технологии.

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

Улучшения

Новая схема кодирования

Новая схема кодирования инструкций VEX использует VEX префикс. В настоящий момент существуют два VEX префикса, длиной 2 и 3 байта. Для 2-х байтного VEX префикса первый байт равен 0xC5, для 3-х байтного 0xC4. В 64-битном режиме первый байт VEX префикса уникален. В 32-битном режиме возникает конфликт с инструкциями LES и LDS, который разрешается старшим битом второго байта, он имеет значение только в 64-битном режиме, через неподдерживаемые формы инструкций LES и LDS. Длина существующих 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)

Применение

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

Поддержка в операционных системах

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

Микропроцессоры с AVX

Будущие расширения

Схема кодирования инструкций VEX легко допускает дальнейшее расширение набора инструкций AVX. В следующей версии, AVX2, планируется добавить инструкции для работы с целыми числами, FMA3 (увеличит производительность при обработке чисел с плавающей запятой в 2 раза ), загрузку распределенного в памяти вектора (gather) и прочее.

Различные планируемые дополнения системы команд x86 :

Примечания

Наборы расширения базовых инструкций процессоров семейства x86
MMX | MMXEXT | SSE | SSE2 | SSE3 | SSSE3 | SSE4 | ATA | 3DNow! | 3DNowExt | SSE5 | AVX | AES

Смотреть что такое «AVX» в других словарях:

Описание тестовых систем и методики тестирования

Полный список задействованных в тестовых системах комплектующих выглядит следующим образом:

Тестирование выполнялось в операционной системе Microsoft Windows 10 Enterprise Build 10586 с использованием следующего комплекта драйверов:

Описание использовавшихся для измерения вычислительной производительности инструментов:

Действительно, благодаря открывшимся возможностям разгона у покупателей появились новые аргументы в пользу перехода на платформу LGA1151. Нет никаких сомнений, что это в определённой степени простимулирует продажи новых процессоров. Попутно получат новых клиентов и производители плат, которые наверняка смогут увеличить продажи моделей на базе Intel Z170. Внакладе не останутся и пользователи из числа энтузиастов. Перед ними открывается не только дополнительный простор для экспериментов, но и возможность извлечь вполне очевидную финансовую выгоду. Ведь теперь оверклокерские системы можно собирать из более дешёвых, чем раньше, комплектующих.

Впрочем, даже если вас интересуют исключительно игры и программы, где AVX/AVX2-расширения не используются и использоваться заведомо не будут, появившаяся у неоверклокерских процессоров поколения Skylake возможность разгона совсем не означает, что вы, выражаясь фигурально, сможете отмотать время назад и вернуться в золотой век Celeron 300A. В реалиях сегодняшнего дня нарастить производительность дешёвого процессора до уровня флагмана невозможно ни при каких обстоятельствах. После того как в середине 2000-х годов Intel поделила ассортимент потребительских процессоров на классы по числу вычислительных ядер и перечню поддерживаемых технологий, любая «межклассовая борьба» безвозвратно ушла в прошлое. И это наглядно показали проведённые тесты. Младший Core i3-6100 может претендовать лишь на то, чтобы при разгоне пытаться дотянуться до быстродействия начальных моделей Core i5. А младший Core i5-6400 может попробовать побороться с Core i5-6600K, но замахнуться на соперничество с Core i7-6700K ему, естественно, не по силам.

Наборы инструкций SSE4.2

Операция чтения, позволяющая ускорить (до 7.5 раз) работу с write-combining областями памяти.

Эти инструкции выполняют арифметические сравнения между всеми возможными парами полей (64 или 256 сравнений!) из обоих строк, заданных содержимым xmm1 и xmm2/m128. Затем булевые результаты сравнений обрабатываются для получения нужных результатов. Непосредственный аргумент imm8 управляет размером (байтовые или unicode строки, до 16/8 элементов каждая), знаковостью полей (элементов строк), типом сравнения и интерпретацией результатов.

Ими можно производить в строке (области памяти) поиск символов из заданного набора или в заданных диапазонах. Можно сравнивать строки (области памяти) или производить поиск подстрок.

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

Неразрушающие операции. Набор инструкций AVX позволяет использовать любую двухоперандную инструкцию XMM в трёхоперандном виде без модификации двух регистров-источников, с отдельным регистром для результата. Например, вместо a = a + b можно использовать c = a + b, при этом регистр a остаётся неизменённым. AVX не поддерживает неразрушающие формы операций над обычными регистрами общего назначения, такими как EAX, но такая поддержка, возможно, будет добавлена в последующих расширениях.

Требования выравнивания данных для операндов SIMD в памяти ослаблены.

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

Также в спецификации AVX описана группа инструкций PCLMUL (Parallel Carry-Less Multiplication, Parallel CLMUL)

Подходит для интенсивных вычислений с плавающей точкой в мультимедиа, научных и финансовых задачах. Увеличивает степень параллелизма и пропускную способность в вещественных SIMD вычислениях. Уменьшает давление (нагрузку) на регистры благодаря неразрушающим трёхоперандным операциям.

Источник

Сегодня хочу завести разговор на тему, что такое avx инструкции в процессоре, где и для чего они используются.

Зачем нужны AVX инструкции

Без AVX тоже можно обрабатывать фоточки, жевать видео и пилить три-дэ. Но есть нюансы.
Если по-проще, то старый 8-ядерный Xeon (не умеющий AXV) будет пилить видосы с той же скоростью что современный i3 (умеющий AVX).

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

Еще одна вкусность AVX это дополнительный операнд. Используется не 2 операнда а 3, что так же сокращает конвейер. Допустим мы хотим сложить X и Y.
Код: Обычная операция, где 2 операнда (X=X+Y) заставит перезаписывать один из операндов.
AVX операция, где 3 операнда (Z=X+Y) позволяет записать результат в третий операнд.
Сложна? Ок, давайте бум прощэ.

Новейшее функциональное расширение AVX512 (Advanced Vector Ex­ten­sion 512-bit), также известное под именем AVX3, состоит из девяти тех­но­ло­гий, каждая из которых может опционально поддерживаться или не поддерживаться конкретным процессором. Ряд внедрений рас­смат­ри­ва­е­мо­го семейства, связанных с операциями повышенной разрядности, уже применяется в сопроцессорах Intel Xeon Phi и опционально до­ступ­ны в процессорах Xeon с микроархитектурой Skylake. Напомним, что сопроцессоры Xeon Phi предназначены для установки в PCI Express слот.

Базовая функциональность AVX512

Как следует из несложных подсчетов, новое 512-битное операционное устройство способно обрабатывать 8 64-битных чисел двойной точности либо 16 32-битных чисел одинарной точности за одну векторную команду.

В базовый набор AVX512F также входит предикатное выполнение векторных операций. Это означает, что при об­ра­бот­ке чисел, упакованных в 512-битном регистре, операция может быть выполнена или отменена, ин­ди­ви­ду­аль­но для каждого числа. Например, при обработке 16 32-битных чисел одинарной точности, 16-битный предикат, содержащий все «единицы» обеспечит выполнение операции для всех чисел. Если все биты предиката нулевые, операция не выполняется. А установив, например два младших бита предиката, можно выполнить операцию для двух первых чисел, оставив остальные числа незатронутыми. Для хранения предикатов вводится 8 до­пол­ни­тель­ных 64-битных регистров K0–K7.

Аппаратное выявление конфликтов

Опережающая загрузка данных

что такое avx в играх
Рис 2

Вычисление экспоненты и обратных величин

Операции переменной разрядности

Обработка байтов и 16-битных операндов

Обработка 32 и 64-битных операндов

Совмещенное умножение-сложение для 52-битных операндов

Операции с байтами в составе векторных регистров

Резюме

Как видно из вышеизложенного, расширение AVX512 подразумевает введение новых процессорных команд и архитектурных ресурсов. Поэтому, прибавку производительности получит только то программное обеспечение, которое написано и оптимизировано с учетом новой технологии.

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

Улучшения

Новая схема кодирования

Новая схема кодирования инструкций VEX использует VEX префикс. В настоящий момент существуют два VEX префикса, длиной 2 и 3 байта. Для 2-х байтного VEX префикса первый байт равен 0xC5, для 3-х байтного 0xC4. В 64-битном режиме первый байт VEX префикса уникален. В 32-битном режиме возникает конфликт с инструкциями LES и LDS, который разрешается старшим битом второго байта, он имеет значение только в 64-битном режиме, через неподдерживаемые формы инструкций LES и LDS. Длина существующих 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)

Применение

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

Поддержка в операционных системах

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

Микропроцессоры с AVX

Будущие расширения

Схема кодирования инструкций VEX легко допускает дальнейшее расширение набора инструкций AVX. В следующей версии, AVX2, планируется добавить инструкции для работы с целыми числами, FMA3 (увеличит производительность при обработке чисел с плавающей запятой в 2 раза ), загрузку распределенного в памяти вектора (gather) и прочее.

Различные планируемые дополнения системы команд x86 :

Примечания

Наборы расширения базовых инструкций процессоров семейства x86
MMX | MMXEXT | SSE | SSE2 | SSE3 | SSSE3 | SSE4 | ATA | 3DNow! | 3DNowExt | SSE5 | AVX | AES

Смотреть что такое «AVX» в других словарях:

Описание тестовых систем и методики тестирования

Полный список задействованных в тестовых системах комплектующих выглядит следующим образом:

Тестирование выполнялось в операционной системе Microsoft Windows 10 Enterprise Build 10586 с использованием следующего комплекта драйверов:

Описание использовавшихся для измерения вычислительной производительности инструментов:

Действительно, благодаря открывшимся возможностям разгона у покупателей появились новые аргументы в пользу перехода на платформу LGA1151. Нет никаких сомнений, что это в определённой степени простимулирует продажи новых процессоров. Попутно получат новых клиентов и производители плат, которые наверняка смогут увеличить продажи моделей на базе Intel Z170. Внакладе не останутся и пользователи из числа энтузиастов. Перед ними открывается не только дополнительный простор для экспериментов, но и возможность извлечь вполне очевидную финансовую выгоду. Ведь теперь оверклокерские системы можно собирать из более дешёвых, чем раньше, комплектующих.

Впрочем, даже если вас интересуют исключительно игры и программы, где AVX/AVX2-расширения не используются и использоваться заведомо не будут, появившаяся у неоверклокерских процессоров поколения Skylake возможность разгона совсем не означает, что вы, выражаясь фигурально, сможете отмотать время назад и вернуться в золотой век Celeron 300A. В реалиях сегодняшнего дня нарастить производительность дешёвого процессора до уровня флагмана невозможно ни при каких обстоятельствах. После того как в середине 2000-х годов Intel поделила ассортимент потребительских процессоров на классы по числу вычислительных ядер и перечню поддерживаемых технологий, любая «межклассовая борьба» безвозвратно ушла в прошлое. И это наглядно показали проведённые тесты. Младший Core i3-6100 может претендовать лишь на то, чтобы при разгоне пытаться дотянуться до быстродействия начальных моделей Core i5. А младший Core i5-6400 может попробовать побороться с Core i5-6600K, но замахнуться на соперничество с Core i7-6700K ему, естественно, не по силам.

Наборы инструкций SSE4.2

Операция чтения, позволяющая ускорить (до 7.5 раз) работу с write-combining областями памяти.

Эти инструкции выполняют арифметические сравнения между всеми возможными парами полей (64 или 256 сравнений!) из обоих строк, заданных содержимым xmm1 и xmm2/m128. Затем булевые результаты сравнений обрабатываются для получения нужных результатов. Непосредственный аргумент imm8 управляет размером (байтовые или unicode строки, до 16/8 элементов каждая), знаковостью полей (элементов строк), типом сравнения и интерпретацией результатов.

Ими можно производить в строке (области памяти) поиск символов из заданного набора или в заданных диапазонах. Можно сравнивать строки (области памяти) или производить поиск подстрок.

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

Неразрушающие операции. Набор инструкций AVX позволяет использовать любую двухоперандную инструкцию XMM в трёхоперандном виде без модификации двух регистров-источников, с отдельным регистром для результата. Например, вместо a = a + b можно использовать c = a + b, при этом регистр a остаётся неизменённым. AVX не поддерживает неразрушающие формы операций над обычными регистрами общего назначения, такими как EAX, но такая поддержка, возможно, будет добавлена в последующих расширениях.

Требования выравнивания данных для операндов SIMD в памяти ослаблены.

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

Также в спецификации AVX описана группа инструкций PCLMUL (Parallel Carry-Less Multiplication, Parallel CLMUL)

Подходит для интенсивных вычислений с плавающей точкой в мультимедиа, научных и финансовых задачах. Увеличивает степень параллелизма и пропускную способность в вещественных SIMD вычислениях. Уменьшает давление (нагрузку) на регистры благодаря неразрушающим трёхоперандным операциям.

Источник

Сегодня хочу завести разговор на тему, что такое avx инструкции в процессоре, где и для чего они используются.

Зачем нужны AVX инструкции

Без AVX тоже можно обрабатывать фоточки, жевать видео и пилить три-дэ. Но есть нюансы.
Если по-проще, то старый 8-ядерный Xeon (не умеющий AXV) будет пилить видосы с той же скоростью что современный i3 (умеющий AVX).

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

Еще одна вкусность AVX это дополнительный операнд. Используется не 2 операнда а 3, что так же сокращает конвейер. Допустим мы хотим сложить X и Y.
Код: Обычная операция, где 2 операнда (X=X+Y) заставит перезаписывать один из операндов.
AVX операция, где 3 операнда (Z=X+Y) позволяет записать результат в третий операнд.
Сложна? Ок, давайте бум прощэ.

Новейшее функциональное расширение AVX512 (Advanced Vector Ex­ten­sion 512-bit), также известное под именем AVX3, состоит из девяти тех­но­ло­гий, каждая из которых может опционально поддерживаться или не поддерживаться конкретным процессором. Ряд внедрений рас­смат­ри­ва­е­мо­го семейства, связанных с операциями повышенной разрядности, уже применяется в сопроцессорах Intel Xeon Phi и опционально до­ступ­ны в процессорах Xeon с микроархитектурой Skylake. Напомним, что сопроцессоры Xeon Phi предназначены для установки в PCI Express слот.

Базовая функциональность AVX512

Как следует из несложных подсчетов, новое 512-битное операционное устройство способно обрабатывать 8 64-битных чисел двойной точности либо 16 32-битных чисел одинарной точности за одну векторную команду.

В базовый набор AVX512F также входит предикатное выполнение векторных операций. Это означает, что при об­ра­бот­ке чисел, упакованных в 512-битном регистре, операция может быть выполнена или отменена, ин­ди­ви­ду­аль­но для каждого числа. Например, при обработке 16 32-битных чисел одинарной точности, 16-битный предикат, содержащий все «единицы» обеспечит выполнение операции для всех чисел. Если все биты предиката нулевые, операция не выполняется. А установив, например два младших бита предиката, можно выполнить операцию для двух первых чисел, оставив остальные числа незатронутыми. Для хранения предикатов вводится 8 до­пол­ни­тель­ных 64-битных регистров K0–K7.

Аппаратное выявление конфликтов

Опережающая загрузка данных

что такое avx в играх
Рис 2

Вычисление экспоненты и обратных величин

Операции переменной разрядности

Обработка байтов и 16-битных операндов

Обработка 32 и 64-битных операндов

Совмещенное умножение-сложение для 52-битных операндов

Операции с байтами в составе векторных регистров

Резюме

Как видно из вышеизложенного, расширение AVX512 подразумевает введение новых процессорных команд и архитектурных ресурсов. Поэтому, прибавку производительности получит только то программное обеспечение, которое написано и оптимизировано с учетом новой технологии.

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

Улучшения

Новая схема кодирования

Новая схема кодирования инструкций VEX использует VEX префикс. В настоящий момент существуют два VEX префикса, длиной 2 и 3 байта. Для 2-х байтного VEX префикса первый байт равен 0xC5, для 3-х байтного 0xC4. В 64-битном режиме первый байт VEX префикса уникален. В 32-битном режиме возникает конфликт с инструкциями LES и LDS, который разрешается старшим битом второго байта, он имеет значение только в 64-битном режиме, через неподдерживаемые формы инструкций LES и LDS. Длина существующих 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)

Применение

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

Поддержка в операционных системах

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

Микропроцессоры с AVX

Будущие расширения

Схема кодирования инструкций VEX легко допускает дальнейшее расширение набора инструкций AVX. В следующей версии, AVX2, планируется добавить инструкции для работы с целыми числами, FMA3 (увеличит производительность при обработке чисел с плавающей запятой в 2 раза ), загрузку распределенного в памяти вектора (gather) и прочее.

Различные планируемые дополнения системы команд x86 :

Примечания

Наборы расширения базовых инструкций процессоров семейства x86
MMX | MMXEXT | SSE | SSE2 | SSE3 | SSSE3 | SSE4 | ATA | 3DNow! | 3DNowExt | SSE5 | AVX | AES

Смотреть что такое «AVX» в других словарях:

Описание тестовых систем и методики тестирования

Полный список задействованных в тестовых системах комплектующих выглядит следующим образом:

Тестирование выполнялось в операционной системе Microsoft Windows 10 Enterprise Build 10586 с использованием следующего комплекта драйверов:

Описание использовавшихся для измерения вычислительной производительности инструментов:

Действительно, благодаря открывшимся возможностям разгона у покупателей появились новые аргументы в пользу перехода на платформу LGA1151. Нет никаких сомнений, что это в определённой степени простимулирует продажи новых процессоров. Попутно получат новых клиентов и производители плат, которые наверняка смогут увеличить продажи моделей на базе Intel Z170. Внакладе не останутся и пользователи из числа энтузиастов. Перед ними открывается не только дополнительный простор для экспериментов, но и возможность извлечь вполне очевидную финансовую выгоду. Ведь теперь оверклокерские системы можно собирать из более дешёвых, чем раньше, комплектующих.

Впрочем, даже если вас интересуют исключительно игры и программы, где AVX/AVX2-расширения не используются и использоваться заведомо не будут, появившаяся у неоверклокерских процессоров поколения Skylake возможность разгона совсем не означает, что вы, выражаясь фигурально, сможете отмотать время назад и вернуться в золотой век Celeron 300A. В реалиях сегодняшнего дня нарастить производительность дешёвого процессора до уровня флагмана невозможно ни при каких обстоятельствах. После того как в середине 2000-х годов Intel поделила ассортимент потребительских процессоров на классы по числу вычислительных ядер и перечню поддерживаемых технологий, любая «межклассовая борьба» безвозвратно ушла в прошлое. И это наглядно показали проведённые тесты. Младший Core i3-6100 может претендовать лишь на то, чтобы при разгоне пытаться дотянуться до быстродействия начальных моделей Core i5. А младший Core i5-6400 может попробовать побороться с Core i5-6600K, но замахнуться на соперничество с Core i7-6700K ему, естественно, не по силам.

Наборы инструкций SSE4.2

Операция чтения, позволяющая ускорить (до 7.5 раз) работу с write-combining областями памяти.

Эти инструкции выполняют арифметические сравнения между всеми возможными парами полей (64 или 256 сравнений!) из обоих строк, заданных содержимым xmm1 и xmm2/m128. Затем булевые результаты сравнений обрабатываются для получения нужных результатов. Непосредственный аргумент imm8 управляет размером (байтовые или unicode строки, до 16/8 элементов каждая), знаковостью полей (элементов строк), типом сравнения и интерпретацией результатов.

Ими можно производить в строке (области памяти) поиск символов из заданного набора или в заданных диапазонах. Можно сравнивать строки (области памяти) или производить поиск подстрок.

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

Неразрушающие операции. Набор инструкций AVX позволяет использовать любую двухоперандную инструкцию XMM в трёхоперандном виде без модификации двух регистров-источников, с отдельным регистром для результата. Например, вместо a = a + b можно использовать c = a + b, при этом регистр a остаётся неизменённым. AVX не поддерживает неразрушающие формы операций над обычными регистрами общего назначения, такими как EAX, но такая поддержка, возможно, будет добавлена в последующих расширениях.

Требования выравнивания данных для операндов SIMD в памяти ослаблены.

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

Также в спецификации AVX описана группа инструкций PCLMUL (Parallel Carry-Less Multiplication, Parallel CLMUL)

Подходит для интенсивных вычислений с плавающей точкой в мультимедиа, научных и финансовых задачах. Увеличивает степень параллелизма и пропускную способность в вещественных SIMD вычислениях. Уменьшает давление (нагрузку) на регистры благодаря неразрушающим трёхоперандным операциям.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *