supplemental sse3 instructions что это
SSSE3 (Supplemental SSE3)
SSSE3 (Supplemental SSE3, то есть дополнительный SSE3) — это набор дополнительных инструкций процессора, разработанный компанией Intel в продолжение развития наборов команд SSE, SSE2 и SSE3.
По сути, это был четвертый по счету набор инструкций SSE и, по логике вещей, ему нужно бы было присвоить название SSE4. Но в Intel решили иначе, возможно, посчитав его лишь незначительным дополнением к предыдущему пакету.
На первых порах SSSE3 также назывался Merom New Instructions (MNI) по названию процессорного ядра, в котором Intel впервые намеревалась его использовать.
SSSE3 представляет собой набор из 16 новых команд, улучшающих работу с упакованными целыми. При этом, каждая из инструкций может использоваться процессором как для 64-битных, так и для 128-битных регистров. Поэтому в документации Intel речь идет не о 16, а о 32 командах SSSE3.
Инструкции SSSE3 необходимы для нормальной работы многих современных приложений, в частности программ распознавания речи, используемых алгоритм DNN (Deep Neural Network), и др.
Начало использование SSSE3 приходится на 2006 год (выход процессоров архитектуры Intel Core).
Люди обычно оценивают процессор по количеству ядер, тактовой частоте, объему кэша и других показателях, редко обращая внимание на поддерживаемые им технологии.
Отдельные из этих технологий нужны только для решения специфических заданий и в «домашнем» компьютере вряд ли когда-нибудь понадобятся. Наличие же других является непременным условием работы программ, необходимых для повседневного использования.
Так, полюбившийся многим браузер Google Chrome не работает без поддержки процессором SSE2. Инструкции AVX могут в разы ускорить обработку фото- и видеоконтента. А недавно один мой знакомый на достаточно быстром Phenom II (6 ядер) не смог запустить игру Mafia 3, поскольку его процессор не поддерживает инструкции SSE4.2.
Если аббревиатуры SSE, MMX, AVX, SIMD вам ни о чем не говорят и вы хотели бы разобраться в этом вопросе, изложенная здесь информация станет неплохим подспорьем.
Одной из особенностей компьютеров на базе процессоров AMD, которой они выгодно отличаются от платформ Intel, является высокий уровень совместимости процессоров и материнских плат. У владельцев относительно не старых настольных систем на базе AMD есть высокие шансы безболезненно «прокачать» компьютер путем простой замены процессора на «камень» из более новой линейки или же флагман из предыдущей.
Если вы принадлежите к их числу и задались вопросом «апгрейда», эта небольшая табличка вам в помощь.
В таблицу можно одновременно добавить до 6 процессоров, выбрав их из списка (кнопка «Добавить процессор»). Всего доступно больше 2,5 тыс. процессоров Intel и AMD.
Пользователю предоставляется возможность в удобной форме сравнивать производительность процессоров в синтетических тестах, количество ядер, частоту, структуру и объем кэша, поддерживаемые типы оперативной памяти, скорость шины, а также другие их характеристики.
Дополнительные рекомендации по использованию таблицы можно найти внизу страницы.
В этой базе собраны подробные характеристики процессоров Intel и AMD. Она содержит спецификации около 2,7 тысяч десктопных, мобильных и серверных процессоров, начиная с первых Пентиумов и Атлонов и заканчивая последними моделями.
Информация систематизирована в алфавитном порядке и будет полезна всем, кто интересуется компьютерной техникой.
Таблица содержит информацию о почти 2 тыс. процессоров и будет весьма полезной людям, интересующимся компьютерным «железом». Положение каждого процессора в таблице определяется уровнем его быстродействия в синтетических тестах (расположены по убыванию).
Есть фильтр, отбирающий процессоры по производителю, модели, сокету, количеству ядер, наличию встроенного видеоядра и другим параметрам.
Для получения подробной информации о любом процессоре достаточно нажать на его название.
Проверка стабильности работы центрального процессора требуется не часто. Как правило, такая необходимость возникает при приобретении компьютера, разгоне процессора (оверлокинге), при возникновении сбоев в работе компьютера, а также в некоторых других случаях.
В статье описан порядок проверки процессора при помощи программы Prime95, которая, по мнению многих экспертов и оверлокеров, является лучшим средством для этих целей.
ПОКАЗАТЬ ЕЩЕ
Решение ошибки CPU Does Not Have SSSE3
Если Вы игрок нашумевшего (в свое время) шутера под названием Apex Legends и читаете эти строки, скорее всего проблема связанная с процессором и SSSE3 Вам не нова. В этой статье мы расскажем основные способы решения указанной ошибки, а также объясним откуда это берется.
Причины возникновения неисправности
Основной причиной указанной проблемы можно назвать нежелание разработчиков обеспечить работоспособность проекта на всех видах и типах компьютеров. Неисправность возникает в основном на старых компьютерах со старыми CPU. При разработке игры компания производитель вероятно расчитывала на выпуск шутера с современной графикой и высокими требованиями, в связи с чем и оптимизировать проект под устаревшее железо не собирались. Однако по факту получилось, что и игра оказалась не такая уж «графонистая» и «устаревшие» компьютеры оказалось что вполне способны тянуть Apex Legends без особых зависаний.
Уже в первые месяцы после выхода игры официальный сайт оказался просто забит жалобами о невозможности запуска игры на самых разных компьютерах. Затем разработчики «вроде как» разрешили данный вопрос, однако как известно жалобы продолжают поступать до сих пор, хоть и не в таком количестве.
Однако, мододелы без дела не сидели и время зря не тратили. На сегодняшний день имеются различные способы справится с ошибкой SSSE3 в Apex Legends. Об этом читайте далее.
Исправляем CPU Does Not Have SSSE3
Правильное обновление Apex Legends
В первую очередь необходимо удостовериться в том, что текущая версия игры является последней. Иными словами — проверьте наличие обновлений и обновите в случае необходимости.
Что для этого нужно сделать?
Если в приложении Origin нет Apex Legends необходимо удалить имеющуюся версию игры и скачать заново но в этот раз с официального сайта.
Обновление драйверов CPU
Апекс может не работать из-за того что устаревшие драйвера не рассчитаны на поддержку подобной игры. Для того что бы обновить драйвера следуйте следующим не сложным шагам:
Откройте меню «Пуск», щелкните правой кнопкой мыши «Компьютер» и выберите «Свойства», чтобы открыть меню «Система»
Нажмите «Диспетчер устройств», который находится на левой панели инструментов в окне «Система»
Нажмите стрелку слева от надписи «Процессоры» в окне диспетчера устройств.
Щелкните правой кнопкой мыши по вашему процессору и нажмите «Обновить драйвер», чтобы начать процесс обновления. Для завершения обновления вам может потребоваться перезагрузить компьютер.
Установка и удаление Apex Legends
В крайнем случае, если ни один из способов указанных в статье не помогает требуется полностью удалить Apex Legends через установку и удаление программ.
установка и удаление программ» width=»696″ height=»491″ srcset=»https://itkek.ru/wp-content/uploads/2019/11/1-2.jpg 696w, https://itkek.ru/wp-content/uploads/2019/11/1-2-300×212.jpg 300w» sizes=»(max-width: 696px) 100vw, 696px» //>
После полного удаления потребуется скачать с официального сайта игру и установить на компьютер, после чего проверить работоспособность.
Использование набора инструкций Intel SSSE3 для ускорения реализации алгоритма DNN в задачах распознавания речи, выполняемых на мобильных устройствах
За последние тридцать лет технологии распознавания речи серьёзно продвинулись вперед, начав свой путь в исследовательских лабораториях и дойдя до широкого круга потребителей. Эти технологии начинают играть важную роль в нашей жизни. Их можно встретить на рабочем месте, дома, в машине. Их используют в медицинских целях и в других сферах деятельности. Распознавание речи входит в топ-10 перспективных технологий мирового уровня.
Обзор
В результате исследований последних лет произошла смена основных алгоритмов распознавания речи. Так, прежде это были алгоритмы GMM (Gaussian Mixture Model) и HMM-GMM (Hidden Markov Model – Gaussian Mixture Model). От них произошёл переход к алгоритму DNN (Deep Neural Network). Работа этого алгоритма напоминает деятельность человеческого мозга. Здесь используются сложные вычисления и огромное количество данных.
Благодаря Интернету воспользоваться современными технологиями распознавания речи может любой владелец смартфона. К его услугам – бесчисленное множество серверов. А вот без Интернета службы распознавания речи в мобильных устройствах почти бесполезны. Они редко способны правильно понимать тех, кто пытается с ними «разговаривать».
Можно ли перенести реализацию алгоритма DNN с сервера на смартфон или планшет? Ответ на этот вопрос – да. Благодаря поддержке процессорами от Intel набора инструкций SSSE3, на мобильных устройствах можно пользоваться приложениями для распознавания речи, основанными на алгоритме DNN. При этом подключение к Интернету не требуется. В результате наших испытаний точность распознавания речи таким приложением составила более 80%. Это очень близко к тому, что достижимо при использовании серверных систем. В этом материале мы расскажем об алгоритме DNN и о том, как набор инструкций Intel SSSE3 способен помочь в ускорении расчётов, необходимых для реализации этого алгоритма.
Предварительные сведения
DNN (ГНС) – это сокращение от Deep Neural Network (Глубокая Нейронная Сеть). Это – сеть прямого распространения, содержащая множество скрытых слоёв. DNN находится на переднем крае современных технологий машинного обучения. Для этого алгоритма нашлось множество вариантов практического применения.
Глубокие нейронные сети имеют большое количество скрытых слоёв. При их обучении нужно модифицировать десятки миллионов параметров. Как результат, обучение таких сетей требует значительных затрат времени.
Распознавание речи – типичный пример применения DNN. Упрощённо, приложения для распознавания речи можно представить состоящими из акустической модели (acoustic model), языковой модель (language model) и подсистемы декодирования (decoding). Акустическая модель используется для моделирования распределения вероятностей вариантов произношения. Языковая модель применяется для моделирования связей между словами. На этапе декодирования используются две вышеописанные модели, речь преобразуется в текст. Нейронная сеть умеет моделировать любые словесные конструкции. В то время как глубокая нейронная сеть имеет более сильную способность к выделению существенных признаков данных, чем мелкая (shallow) сеть, она моделирует структуру человеческого мозга, и, таким образом, способна более точно «понять» характеристики вещей. В результате, в сравнении с другими методами, в такой нейронной сети можно более точно смоделировать акустические и языковые модели.
Области применения алгоритма DNN
Схема типичной глубокой нейронной сети
Обычно типичная глубокая нейронная сеть содержит множество линейных и нелинейных слоёв, которые накладываются друг на друга.
Четыре скрытых слоя в акустической модели, построенной на базе DNN
Сеть, схема которой здесь приведена, состоит из набора линейных слоёв. Каждый нейрон из предыдущего слоя связан с каждым нейроном из следующего. Связь входа сети с её выходом можно описать следующей формулой:
X T – это вектор-строка, вход нейронной сети. В применении к распознаванию речи мы обычно помещаем 4 фрагмента данных для одновременной работы над ними, таким образом, создавая входную матрицу 4xM. W T и B это, соответственно, линейная матрица преобразования нейронной сети и вектор смещения. Обычно размерность такой сети очень велика, во всех слоях имеется одинаковое количество нейронов, то есть, сеть имеет квадратную форму.
Набор инструкций Intel SSSE3
Intel называет набор команд Supplemental Streaming SIMD Extensions 3, или, для краткости, просто SSSE3, расширением набора команд SSE3. Это – часть технологии SIMD, интегрированной в микропроцессоры Intel. Данная технология рассчитана на улучшение возможностей по обработке мультимедийных данных. Она предназначена для ускорения выполнения задач кодирования и декодирования информации и для ускорения проведения различных расчётов. Используя набор инструкций SSSE3, мы можем обрабатывать несколько потоков данных с помощью одной инструкции за один тактовый цикл. Это позволяет значительно повысить эффективность приложений. В частности, команды SSSE3 применимы к матричным вычислениям.
Для использования набора инструкций SSSE3 нужно подключить соответствующие заголовочные файлы SIMD:
Заголовочный файл tmmintrin.h обеспечивает работу с SSSE3, ниже приведено описание функций, которые в нём определены.
Определения структур данных __m64 и __m128 находятся в заголовочном файле для MMX (mmintrin.h) и SSE (xmmintrin.h).
Пример: использование функций SSSE3 для ускорения вычислений, примеряющихся в алгоритме DNN
Здесь мы рассмотрим пару функций. На их примере будет показано, как SSSE3 используется для ускорения расчётов при реализации алгоритма DNN.
__m128i _mm_maddubs_epi16 (__m128i a, __m128i b) Сложение с насыщением
Эта функция очень важна при выполнении матричных вычислений в алгоритме DNN. Параметр – это 128-битный регистр (register), который используется для хранения 16-ти целых чисел без знака (8-ми битных). Параметр b – это целое со знаком, тоже 8-ми битное. Возвращаемый результат – это 8 16-битных целых чисел со знаком. Эта функция отлично подходит для выполнения матричных вычислений:
__m128i _mm_hadd_epi32 (__m128i a, __m128i b) Сложение смежных элементов
Эту функцию можно назвать функцией, которая выполняет попарное сложение. Параметры a и b – это 128-битные регистры, которые хранят по 4 целых 32-битных числа со знаком. В соответствии с обычной операцией по сложению соответствующих элементов в двух векторах, команда выполняет сложение смежных элементов входного вектора:
Предположим, у нас есть задача вычислений на векторах, типичная для реализации DNN.
Имеются пять векторов: a1, b1, b2, b3, b4. Вектор a1 – это одномерный массив из 16-ти целых чисел типа signed char. Векторы b1, b2, b3, b4 – массивы целых чисел из 16 элементов каждый типа unsigned char. Нам нужно получить скалярные произведения a1*b1, a1*b2, a1*b3, a1*b4 результат надо сохранить в виде 32-битного целого числа со знаком.
Если мы воспользуемся обычным для программирования на C подходом, то код для решения этой задачи будет выглядеть так:
Предположим, что за один тактовый цикл можно выполнить одну операцию умножения и одну операцию сложения. Получаем – 64 тактовых цикла на выполнение расчётов.
Теперь воспользуемся набором инструкций SSSE3 для решений той же задачи.
Результат мы сохраняем в 128-битном регистре (с), в котором помещаются 4 целых числа. Учитывая конвейерную обработку данных, на вычисления уйдёт 12 или 13 тактовых циклов. Если сравнить эти данные, получится следующее: