SSE5 (сокращенно Streaming SIMD Extensions версии 5 ) был SIMD набора команд расширения , предложенное AMD на 30 августа 2007 года в качестве дополнения к 128-битной SSE основных инструкциям в AMD64 архитектуре.
AMD решила не реализовывать SSE5, как предлагалось изначально. В мае 2009 года AMD заменила SSE5 тремя меньшими расширениями набора инструкций, названными XOP , FMA4 и F16C , которые сохраняют предлагаемую функциональность SSE5, но кодируют инструкции по-другому для лучшей совместимости с предлагаемым Intel набором инструкций AVX .
Три набора инструкций, производных от SSE5, были введены в ядро процессора Bulldozer , выпущенное в октябре 2011 года по 32-нм техпроцессу. [1]
Совместимость [ править ]
SSE5 расширения пучок AMD не включает в себя полный набор Intel «s SSE4 инструкций, что делает его конкурентом SSE4 , а не преемник.
Это усложняет разработку программного обеспечения. Рекомендуется, чтобы программа проверяла наличие расширений набора команд с помощью инструкции CPUID перед вводом пути кода, который зависит от правильного функционирования этих инструкций. Для максимальной переносимости оптимизированному приложению потребуются три пути кода: базовый путь кода для совместимости со старыми процессорами (от любого поставщика), отдельно оптимизированный путь кода Intel, использующий SSE4 или AVX, и отдельно оптимизированный путь кода AMD, использующий SSE5.
Из-за этого распространения тесты между процессорами Intel и AMD все чаще отражают умение или качество реализации различных путей кода, а не силу базовой платформы.
Улучшения SSE5 [ править ]
Предлагаемый набор инструкций SSE5 состоял из 170 инструкций (включая 46 базовых инструкций), многие из которых предназначены для улучшения однопоточной производительности. Некоторые инструкции SSE5 представляют собой инструкции с тремя операндами , использование которых увеличивает среднее количество инструкций за цикл, достижимое с помощью кода x86 . [2] Избранные новые инструкции включают: [3]
- Комбинированные инструкции умножения-накопления (FMACxx)
- Инструкции целочисленного умножения-накопления (IMAC, IMADC)
- Инструкции перестановки (PPERM, PERMPx) и условного перемещения (PCMOV)
- Инструкции по контролю точности, округлению и преобразованию
AMD утверждает, что SSE5 обеспечит резкое улучшение производительности, особенно в приложениях для высокопроизводительных вычислений (HPC), мультимедиа и компьютерной безопасности , включая 5-кратное увеличение производительности для шифрования Advanced Encryption Standard (AES) и 30% -ное увеличение производительности для дискретного косинусного преобразования ( DCT) используется для обработки видеопотоков. [2]
Для получения более подробной информации см. Наборы инструкций, разделенные далее.
- XOP : ревизия большей части набора инструкций SSE5.
- FMA3 : вектор с плавающей запятой умножение – накопление .
- F16C : преобразование с плавающей запятой половинной точности .
Редакция 2009 г. [ править ]
Спецификация SSE5 включала предлагаемое расширение общей схемы кодирования инструкций x86 , чтобы позволить инструкциям иметь более двух операндов. В 2008 году Intel объявила о своем запланированном наборе инструкций AVX, который предлагает другой способ кодирования инструкций с более чем двумя операндами. Две предложенные схемы кодирования, SSE5 и AVX, взаимно несовместимы, хотя схема AVX имеет определенные преимущества по сравнению со схемой SSE5: самое главное, AVX имеет много места для будущих расширений, включая большие размеры векторов.
В мае 2009 года AMD опубликовала пересмотренную спецификацию запланированных будущих инструкций. Эта версия изменяет схему кодирования, чтобы сделать ее совместимой со схемой AVX, но с другим байтом префикса, чтобы избежать перекрытия между инструкциями, введенными AMD, и инструкциями, введенными Intel.
Пересмотренный набор инструкций больше не носит название SSE5, которое подвергалось критике за вводящее в заблуждение, но большинство инструкций в новой версии функционально идентичны исходной спецификации SSE5 - отличается только способ кодирования инструкций. Планируемые дополнения к набору инструкций AMD состоят из трех подмножеств:
- XOP : инструкции умножения-накопления целочисленных векторов, горизонтальное сложение целочисленных векторов, сравнение целочисленных векторов, инструкции сдвига и поворота, команды перестановки байтов и условного перемещения, извлечение дроби с плавающей запятой.
- FMA4 : вектор с плавающей запятой умножение-накопление .
- F16C : преобразование с плавающей запятой половинной точности .
Эти новые наборы инструкций включают поддержку будущих расширений для размера вектора от 128 бит до 256 бит. Из этих предварительных спецификаций неясно , будет ли процессор Bulldozer поддерживать 256-битные векторные регистры (регистры YMM). [4]
См. Также [ править ]
- списки инструкций x86
- Слитное умножение – сложение
Ссылки [ править ]
- ^ Хруска, Joel (14 ноября 2008). «AMD Fusion перенесена в 2011 год» . Ars Technica .
- ^ a b Вэнс, Эшли (30 августа 2007 г.). «AMD планирует однопоточное ускорение с расширениями x86» . Реестр .
- ^ "128-битный набор инструкций SSE5" . Центр разработчиков AMD . Архивировано из оригинала на 15 января 2008 года . Проверено 28 января 2008 года .
- ^ «Руководство программиста архитектуры AMD64, том 6: 128-битные и 256-битные инструкции XOP и FMA4» (PDF) . AMD . 1 мая 2009 г.
Внешние ссылки [ править ]
- Новый набор инструкций SSE: AMD анонсирует SSE5 , AnandTech
- Руководство программиста по архитектуре AMD64, том 6: 128-битные и 256-битные инструкции XOP и FMA4
- AMD и Intel несовместимы - что делать? Форумы разработчиков AMD