No Image

Как проверить инструкции sse процессора

СОДЕРЖАНИЕ
413 просмотров
16 декабря 2019

SSE2 это набор инструкций, который определяет возможности того или иного процессора. Был разработан компанией Intel в 2000 году и включен в состав процессоров Pentium 4. Пришел на смену набору SSE, расширив список команд с 70 до 144.

C тех далеких времен вышло несколько более свежих версий этого набора инструкций.

На компьютер без поддержки SSE2 невозможно установить Windows 8 и более поздние версии этой операционной системы, Microsoft Office 2013 также требует поддержку SSE2 и практически все современные браузеры, включая Google Chrome и Mozilla Firefox.

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

Какие процессоры имеют поддержку SSE2?

У Intel данный набор инструкций впервые был внедрен на семейство процессоров Pentium 4 в 2000 году. Следовательно все процессоры, выпущенные позже, а это Pentium 4, Xeon, Celeron, Celeron D, Pentium M, Celeron M, Pentium D, Intel Atom, Core i3, i5, i7 поддерживают данный набор инструкций.

AMD внедрила SSE2 на свои процессоры впервые в 2003 году, когда была представлена архитектура AMD K8. Сюда входят все Athlon 64, Athlon 64 X2, Sempron 64, Turion 64. Поэтому если ваш AMD процессор выпущен в 2003 и позднее, то с 99% вероятностью он поддерживает SSE2.

Как узнать поддерживает ли процессор SSE2?

Во первых, при попытке установить на компьютер с процессором без поддержки SSE2 последнюю версию браузера Chrome или Mozilla Firefox будет появляться ошибка с текстом «This program requires a computer that supports SSE2 instructions». В ней говорится, что для данной программы нужен процессор с поддержкой SSE2.

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

Также вы можете скачать бесплатную программу CPU-Z, запустив которую можно посмотреть какие наборы команд доступны для использования на вашем процессоре.

Просмотр поддерживаемых инструкций процессором в программе CPU-Z

Что делать, если SSE2 не поддерживается?

Самый правильный вариант — обновлять компьютер (установить процессор с поддержкой SSE2, если это возможно) или приобрести новый.

Также можно попробовать поискать более ранние версии той программы, которая требует поддержку этого набора команд.

Является ли следующий код действительным для проверки того, поддерживает ли процессор набор инструкций SSE3?

Использование функции IsProcessorFeaturePresent() , по-видимому, не работает в Windows XP (см. http://msdn.microsoft.com/en-us/library/ms724482(v=vs.85).aspx).

Я создал GitHub-реестр, который обнаружит поддержку ЦП и ОС для всех основных расширений ISA x86: https://github.com/Mysticial/FeatureDetector

Здесь короче версия:

Сначала вам нужно получить доступ к инструкции CPUID:

Затем вы можете запустить следующий код:

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

В частности, поддержка операционной системы требуется для:

  • x64. (Вам нужна 64-разрядная ОС.)
  • Инструкции, которые используют (AVX) 256-битные ymm регистры. См. ответ Энди Лутомирски о том, как это обнаружить.
  • Инструкции, в которых используются 512-битные регистры zmm и маска (AVX512). Обнаружение поддержки ОС для AVX512 такое же, как у AVX, но с использованием флага 0xe6 вместо 0x6 .

Мистический ответ немного опасен – в нем объясняется, как определить поддержку ЦП, но не поддерживать ОС. Вам нужно использовать _xgetbv, чтобы проверить, активировала ли ОС требуемое расширенное состояние CPU. См. здесь для другого источника. Даже gcc совершил ту же ошибку. Мяч кода:

После недолгих поисков я также нашел решения от Intel:

Также обратите внимание, что в GCC есть некоторые специальные встроенные функции, которые вы можете использовать (см.: https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/X86-Built-in-Functions.html):

Если вы сложите это вместе с информацией выше, все будет хорошо.

На Mac OS это работает:

В моей машине это выводит это:

machdep.cpu.features: ФПУ УМЭ ДЕ ПСЭ ТСК МСР РАЙ МОК CX8 APIC сентябрь MTRR ПГЕ MCA CMOV РАТ PSE36 CLFSH DS ACPI МОГО FXSR SSE, SSE2, СС НТТ ТМ РВЕ SSE3 PCLMULQDQ DTES64 ПН DSCPL VMX EST ТМ2 SSSE3 ФМА CX16 Т PDCM SSE4.1 SSE4.2 x2APIC MOVBE POPCNT AES PCID XSAVE OSXSAVE SEGLIM64 TSCTMR AVX1.0 RDRAND F16C

Как вы можете видеть из инструкций, написанных жирным шрифтом, SSE3 и куча других инструкций SIMD поддерживаются.

Чтобы добавить в Abhiroop ответ: В linux вы можете запустить эту команду оболочки, чтобы узнать функции, поддерживаемые вашим процессором.

cat/proc/cpuinfo | grep flags | uniq

На моей машине это печатает

флаги: FPU VME-де-псевдоэфедрин TSC MSR пае MCE CX8 APIC SEP MTRR PGE MCA CMOV погладить pse36 clflush MMX fxsr ссе sse2 ХТ системный вызов пх pdpe1gb rdtscp лм constant_tsc rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu ПНИ PCLMULQDQ SSSE3 FMA CX16 PCID sse4_1 sse4_2 x2APIC movbe POPCNT tsc_deadline_timer АЕС xsave avx f16c гипервизор rdrand lahf_lm abm 3dnowprefetch invpcid_single retpoline kaiser fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx xsaveopt

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

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

Читайте также:  Как правильно сделать шумоизоляцию стены от соседей

Так, полюбившийся многим браузер Google Chrome не работает без поддержки процессором SSE2. Инструкции AVX могут в разы ускорить обработку фото- и видеоконтента. А недавно один мой знакомый на достаточно быстром Phenom II (6 ядер) не смог запустить игру Mafia 3, поскольку его процессор не поддерживает инструкции SSE4.2.

Если аббревиатуры SSE, MMX, AVX, SIMD вам ни о чем не говорят и вы хотели бы разобраться в этом вопросе, изложенная здесь информация станет неплохим подспорьем.

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

Аббревиатура образована от MultiMedia eXtensions (мультимедийные расширения). Это набор инструкций процессора, предназначенных для ускорения обработки фото-, аудио- и видеоданных. Разработан компанией Intel, используется в процессорах с 1997 года и на момент внедрения обеспечивал до 70% прироста производительности. Сегодня вам вряд ли удастся встретить процессор без поддержки этой технологии. Подробнее.

3DNow!

Технология впервые была использована в 1998 году в процессорах AMD и стала развитием технологии MMX, значительно расширив возможности процессора в области обработи мультимедийных данных. Ее презентацию совместили с выходом игры Quake 2, в которой 3DNow! обеспечивала до 30% прироста быстродействия. Но широкого распространения 3DNow! не получила. Сейчас она заменена другими технологиями и в новых процессорах не используется. Подробнее.

Аббревиатура от от Streaming SIMD Extensions. SIMD расшифровывается как Single Instruction Multiple Data, что значит "одна инструкция – множество данных".

SSE впервые использована в 1999 году в процессорах Pentium ІІІ и стала своеобразным ответом компании Intel на разработанную компанией AMD технологию 3DNow!, устранив некоторые ее недостатки. SSE применяется процессором, когда нужно совершить одни и те же действия над разными данными и обеспечивает осуществление до 4 таких вычислений за 1 такт, чем обеспечивает существенный прирост быстродействия.

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

Этот набор инструкций был разработан компанией Intel и впервые интегрирован в процессоры Pentium 4 (2000 – 2001 гг.).

Поддержка инструкций SSE2 является обязательным условием использования современного программного обеспечения. В частности, без этого набора команд не будут работать популярные браузеры Google Chrome и Яндекс-браузер. На компьютере без SSE2 также невозможно использовать Windows 8, Windows 10, Microsoft Office 2013 и др. Подробнее.

Набор из 13 инструкций, разработанный компанией Intel и впервые использованный ею в 2004 г. в процессорах с ядром Prescott. Позволяет процессору более эффективно использовать 128-битные регистры SSE.

Инструкции SSE3 заметно упростили ряд DSP- и 3D-операций. Практическая польза от них больше всего ощущается в приложениях, связанных с обработкой потоков графической информации, аудио- и видеосигналов. Подробнее.

SSSE 3

Сокращение от "Supplemental SSE3", что значит "Дополнительный SSE3". Это набор дополнительных инструкций процессора, внедренных компанией Intel в 2006 году в продолжение развития предыдущих наборов команд SSE. По сути, это был четвертый по счету набор инструкций SSE. Но в Intel решили иначе, возможно, посчитав его лишь незначительным дополнением к предыдущему пакету.

Инструкции SSSE3 необходимы для нормальной работы многих современных приложений, в частности программ распознавания речи, используемых алгоритм DNN (Deep Neural Network). Подробнее.

SSE 4.1

Набор инструкций, разработанный компанией Intel. Используется в процессорах с 2006 года.

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

SSE 4.2

Набор инструкций процессора, включающий 7 команд обработки строк, подсчета CRC32 и популяции единичных бит, а также работы с векторными примитивами. Впервые использован компанией Intel в 2008 году.

На практике инструкции SSE 4.2 повышают производительность при сканировании вирусов, поиска текста, строковой обработки библиотек (ZLIB, базы данных и др.), обработки 3D информации. Подробнее.

SSE4A (SSE128)

Набор инструкций, используемый в процессорах AMD с 2007 года. Включает всего 4 команды (инструкции, ускоряющие подсчет числа нулевых/единичных битов, комбинированные инструкции маскирования и сдвига, а также скалярные инструкции потоковой записи).

Аналогичные инструкций есть также в наборе SSE 4 (4.1, 4.2.) от Intel, который является значительно более эффективным (в общей сложности 54 инструкции), см. выше. Подробнее.

Расширение системы команд процессора, разработанное в 2008 году компанией Intel с целью ускорения работы и повышения уровня защищенности программ, использующих алгоритм шифрования AES (Advanced Encryption Standard).

В США и некоторых других странах AES является официальным стандартом шифрования. Используется операционной системой Windows и многими популярными программами для защиты конфиденциальной информации (The Bat!, TrueCrypt и др.). Если процессор поддерживает инструкции AES, прирост производительности приложений, использующих этот алгоритм, может достигать 1200 %. Подробнее.

Аббревиатура образована от Advanced Vector Extensions. Это расширение системы команд процессора, разработанное компанией Intel в 2008 году. Оказывает большое влияние на мультимедийные и вычислительные возможности процессора.

Читайте также:  Как зайти в меню автозагрузки

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

Значительный прирост производительности наблюдается при работе с фото-, видеоконтентом, решении научных задач и др.). Но для этого требуется также использование соответствующей операционной системы и адаптированного программного обеспечения. В Windows поддержка AVX появилась, только начиная с Windows 7 SP1. Подробнее.

AVX 2

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

Практическая польза для рядового пользователя – прирост производительности при работе с видео, фотографиями, звуком, а также с программами, использующими алгоритмы распознавания голоса, лиц, жестов (при условии использования соответствующего программного обеспечения). Подробнее.

Набор инструкций процессора, ускоряющий операции умножения-сложения чисел с плавающей запятой. Аббревиатура FMA образована от англ. Fused Multiply-Add, что переводится как умножение-сложение с однократным округлением.

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

NX (XD), EVP

Технологии NX (XD) и EVP, не смотря на разные названия, являются одним и тем же – важным компонентом любого современного процессора, обеспечивающим повышенную защиту компьютера от вирусов и хакерских атак, основанных на механизме переполнения буфера.

Названия NX (No Xecute) и XD (eXecute Disable) характерны для процессоров Intel. EVP (Enhanced Virus Protection) – для процессоров AMD. Подробнее.

AMD64, Intel64

AMD64, Intel64, EM64T, x86-64, x64, Hammer Architecture – все эти термины обозначают одно и то же – 64-битную архитектуру центрального процессора, разработанную и внедренную в 2003 году компанией AMD. До этого процессоры были 32-битными.

Для обычного пользователя главным преимуществом 64-битного процессора является возможность использования в компьютере 64-битного программного обеспечения и большого объема оперативной памяти (теоретически, до 16777216 терабайт). Максимальное количество оперативной памяти, которое может адресовать 32-битный процессор – 4 ГБ. Подробнее.

XOP (от англ. eXtended operation – "расширенная операция") – это набор инструкций микропроцессора, повышающих его быстродействие при работе с мультимедиа, а также при решении научных задач.

Инструкции XOP впервые использованы в 2011 году в процессорах AMD архитектуры Bulldozer. В этот набор входит несколько различных типов векторных инструкций, большинство из которых являются целочисленными. Однако, есть среди них также инструкции для перестановки чисел с плавающей запятой и инструкции экстракции дробной части. Подробнее.

HT, SMT

В процессорах Intel технология многопоточности называется Hyper-Threading (HT), в процессорах AMD – Simultaneous MultiThreading (SMT).

Кроме названий, эти технологии отличаются еще и многими аспектами реализации. Однако, суть их одинакова. HT и SMT повышают эффективность использования вычислительных возможностей процессора (в среднем, на 20 – 30 %) за счет параллельного выполнения каждым его ядром двух потоков вычислений. Подробнее.

Аппаратная виртуализация (VT-x, VT-d, AMD-V)

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

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

Turbo Boost, Turbo Core

Turbo Boost и Turbo Core – похожие по своей сути технологии, автоматически повышающие тактовую частоту процессора выше номинальной, когда в этом есть необходимость. Turbo Boost используется в процессорах Intel, Turbo Core – в процессорах AMD. В целом, они обеспечивают значительный прирост быстродействия в большинстве приложений.

Несмотря на одинаковое предназначение, Turbo Boost и Turbo Core существенно отличаются. Подробнее.

TXT (англ. Trusted eXecution Technology – технология доверенного выполнения) – разработанная компанией Intel и используемая в ее процессорах технология, обеспечивающая аппаратную защиту компьютера от вредоносных программ.

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

TSX (Transactional Synchronization eXtensions) – набор инструкций многоядерного процессора, разработанный компанией Intel, который повышает эффективность взаимодействия ядер между собой при осуществлении общего доступа к одним и тем же данным и, в конечном счете, увеличивает общую производительность компьютера. Подробнее.

SpeedStep, PowerNow!, Cool’n’Quiet

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

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

Memory Protection Extensions – технология, обеспечивающая повышенную защиту компьютера от вирусных и других угроз, использующих механизм переполнения буфера.

Читайте также:  Как зарегистрироваться в группе в контакте

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

Software Guard Extensions (SGX) – набор инструкций, разработанный компанией Intel и используемый в ее процессорах, начиная с архитектуры Skylake.

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

Intel SHA

Intel Secure Hash Algorithm extensions (SHA) – набор инструкций процессора, разработанных компанией Intel для ускорения работы приложений, используемых алгоритмы шифрования SHA. Включает 7 инструкций, 4 из которых ускоряют работу SHA-1, остальные 3 – SHA-256. Ускорение может составлять 150-200 % и более (в зависимости конкретного приложения).

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

Advanced Configuration and Power Interface (ACPI) – стандарт, разработанный компаниями HP, Intel, Microsoft, Phoenix и Toshiba. Используется в компьютерной технике с 1996 года, постепенно дополняясь и совершенствуясь. Определяет общий подход к управлению питанием и обеспечивает взаимодействие между устройствами компьютера, его операционной системой и BIOS/UEFI в целях снижения уровня энергопотребления.

Стандарт ACPI предусматривает несколько режимов работы процессора. В зависимости от модели, они могут поддерживаться процессором в полном объеме или только какая-то их часть. Подробнее.

System Management Mode (SMM) – режим, при котором процессор приостанавливает исполнение любого кода (в том числе и операционной системы) и запускает специальную программу, хранящуюся в зарезервированной области оперативной памяти.

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

Dynamic Front Side Bus Frequency Switching (DFFS) – одна из технологий снижения энергопотребления компьютерных систем. Она позволяет операционной системе компьютера, в зависимости от нагрузки, которую он испытывает, понижать частоту системной шины FSB, что влечет за собой также и снижение частоты процессора. Подробнее.

SenseMI

SenseMI – технология, разработанная компанией AMD и впервые использованная в процессорах серии Ryzen. Она представляет собой комплекс из нескольких взаимосвязанных компонентов, обеспечивающих оптимальную производительность и энергоэффективность путем прогнозирования программного кода, а также динамического изменения частоты процессора в соответствии с решаемыми задачами в каждый конкретный момент времени (Smart Prefetch, Neural Net Prediction, Pure Power, Precision Boost, Extended Frequency Range).

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

AMD CoolCore

AMD CoolCore – технология, осуществляющая временное отключение неиспользуемых блоков процессора в целях снижения энергопотребления и выделяемого им тепла. Впервые использована в процессорах Phenom. Подробнее.

AMD CoolSpeed

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

AMD Enduro

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

Ценной Enduro является для мобильных компьютеров, поскольку позволяет существенно экономить заряд аккумулятора. Подробнее.

BMI, TBM, ABM

Bit Manipulation Instructions (BMI) – наборы инструкций, используемые в процессорах Intel и AMD для ускорения операций, связанных с манипулированием битами.

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

DPM, DDPM

Dynamic Power Management и Dual Dynamic Power Management- технологии автоматического динамического изменения питания процессора. В совокупности с другими энергосберегающими технологиями, они значительно повышают его энергоэффективность, снижая уровень питания в периоды простоя или незначительных загрузок и повышая его, когда это необходимо. Подробнее.

SMEP, SMAP

Supervisor Mode Execution Prevention и Supervisor Mode Access Prevention – технологии, разработанные компанией Intel для защиты компьютера от хакерских атак и других угроз, использующих так называемый "режим супервизора". Подробнее.

F16C – набор инструкций, используемый в процессорах архитектуры x86 для ускорения преобразований между двоичными числами половинной точности (16 bit) и стандартными двоичными числами с плавающей запятой одинарной точности (32 bit).

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

Комментировать
413 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
Adblock detector