Intel® AVX: новый стандарт производительности и энергосбережения

Создать новую статью

25.05.2009 13:00


Введение

На фоне растущей потребности в повышенных вычислительных мощностях, корпорация Intel сохраняет свое лидирующее положение поставщика передовых производительных решений для удовлетворения новых запросов рынка и развития новых моделей применения. В активе Intel – долгая история инноваций и разработок в области расширения возможностей самой популярной и распространенной архитектуры процессоров в мире – архитектуры Intel. Компания продолжает эту традицию, представляя набор команд Intel® Advanced Vector Extensions (Intel® AVX), который выводит уже ставшую эталонной архитектуру Intel® SSE4 на новый уровень производительности, гибкости и энергосбережения.

В целях охвата широкой аудитории домашних и корпоративных пользователей, Intel планирует внедрить новый набор команд, получивший название Intel AVX, в широкий спектр новых продуктов, появление которых на рынке ожидается к 2010 году. Основываясь на наборе команд Intel SSE4 (instruction set architecture, ISA) и Intel® 64, архитектура Intel AVX предоставляет основу и структурные элементы для достижения нового уровня производительности, отвечающего растущим потребностям таких отраслей, как финансовый анализ, создание и обработка мультимедийных данных, разведка природных ресурсов и приложения с высокой интенсивностью вычислений (HPC). Intel AVX содержит расширения набора команд, обеспечивающие гибкую среду программирования, эффективную обработку массивов векторных и скалярных данных, а также высокую производительность в сочетании с экономным энергопотреблением.

В данной статье мы коротко рассмотрим историю ISA, а затем поговорим о новых инструкциях и возможностях Intel AVX.

Микроархитектура и архитектура набора команд

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

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

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

На пути к передовому набору команд – долгая история ISA

Intel совершенствует набор команд процессоров, чтобы реализовать весь потенциал своей микроархитектуры, и в то же время обеспечить необходимый уровень совместимости с процессорами предыдущих поколений на уровне приложений. Новые процессоры Intel® Core™2 – хороший пример поддержки совместимости наборов команд. Несмотря на то, что процессоры Intel Core 2 имеют усовершенствованную внутреннюю конструкцию, в них реализована версия ISA, практически идентичная набору команд процессоров предыдущего поколения Intel Core 2 Duo и Intel Pentium D, что гарантирует совместимость на уровне приложений. Практически все приложения, разработанные для процессоров Intel Pentium D, смогут выполняться на процессорах Intel Core 2 Duo и Intel Core 2 без каких-либо изменений. Более того, благодаря высокой производительности и эффективному энергосбережению новых процессоров, эти приложения будут работать лучше.

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

  1. 1. Intel оптимизирует имеющиеся инструкции, чтобы реализовать в них потенциал усовершенствованной микроархитектуры, и, таким образом, повысить производительность и энергосбережение. Разумеется, сохранив при этом возможность выполнения существующих приложений без каких-либо изменений.
  2. 2. Intel также добавляет новые наборы команд, предназначенные для оптимизации производительности и снижения потребляемой мощности при выполнении широкого спектра существующих и новых приложений. Чтобы получить максимальную выгоду от новых инструкций, старые приложения необходимо перекомпилировать с помощью обновленных версий компиляторов (дополнительную информацию можно найти на странице www.intel.ru/software).

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

  • Лидирующие позиции Intel в области разработки ISA распространяются на обширную экосистему операционных систем, включая Microsoft Windows* и Vista*, UNIX*, Linux*, а теперь и Macintosh*. Стремление Intel к совершенствованию фирменной архитектуры набора команд основывается на следующих принципах:
  • Обеспечение архитектурной совместимости для применения инновационных разработок в различных ОС и прикладных областях благодаря широкой поддержке отраслевой экосистемы.
  • Единый подход, предоставляющий поставщикам ПО гибкие возможности разработки продуктов с 32- и 64-разрядной архитектурами набора команд с учетом развития рынка.
  • Сотрудничество с разработчиками и независимыми поставщиками ПО в области разработки новых инструкций, чтобы помочь им в полной мере воспользоваться преимуществами решений Intel.
  • Обеспечение корректного выполнения и улучшения работы существующих приложений.
  • Обеспечение корректного выполнения новых приложений, использующих расширенный набор команд.
  • Предоставление ведущих в отрасли спецификаций Intel ISA сторонним разработчикам архитектур в качестве целостного стандарта для упрощения деятельности сообщества независимых поставщиков ПО.

Новые возможности процессоров позволяют разработчикам улучшить различные аспекты производительности своих приложений, в том числе - увеличить быстродействие при одновременном выполнении множества инструкций и обрабатывать множество блоков данных за одну инструкцию. Корпорация Intel всегда поощряла методы программирования, позволяющие повысить скорость обработки данных и эффективность использования процессора. Intel уже давно проводит активную кампанию по повышению производительности приложений, выполняющихся на процессорах Intel. Это достигается путем разработки специализированных наборов команд. Один из первых примеров таких разработок – набор команд для вычислений с плавающей запятой, впервые реализованный в процессорах серии 8086. Более свежие примеры включают технологии Single Instruction, Multiple Data (SIMD) и Intel® MMX™. Набор команд MMX позволил разработчикам выполнять операции с множеством элементов данных, загружаемых в специальные регистры MMX, что открывало путь к повышению производительности мультимедийных приложений, в том числе в сфере компьютерной графики, игр, потокового видео. В процессорах серии P6 корпорация Intel впервые представила набор команд Streaming SIMD Extensions (SSE). Набор команд Intel SSE, реализованный в процессорах Intel® Pentium® III, расширял возможности технологии MMX и позволял одновременно выполнять команды SIMD над четырьмя упакованными элементами данных с плавающей запятой одинарной точности с помощью специальных 128-разрядных регистров. С появлением микроархитектуры Intel NetBurst® был представлен набор команд SSE2, который стал расширением инструкций SIMD и предусматривал вычисления с плавающей запятой двойной точности и 128-битные целочисленные вычисления на основе SIMD. Благодаря набору команд Intel SSE2 разработчики получили гибкие инструменты для реализации сложных алгоритмов и повышения производительности приложений, предназначенных для работы с MPEG-2, MP3, трехмерной графики и др.

В процессорах Pentium 4, выпущенных по 90-нм технологии, был реализован набор команд SSE3. В нем предусматривались 13 дополнительных инструкций SIMD, предназначенных в первую очередь для улучшения синхронизации потоков и ускорения математических вычислений с плавающей запятой x87. Следующим достижением, доступным в процессорах на базе микроархитектуры Intel Core, стал набор команд Supplemental Intel SSE3. Supplemental Intel SSE3 содержит 32 новых операции, включая выравнивание и умножение+суммирование, что позволяет еще больше увеличить производительность.

В числе последних инновационных разработок Intel ISA можно назвать представленный в 2007 году набор команд Intel SSE4, который содержит целый ряд различных инструкций, обеспечивающих дальнейший рост производительности и удобство программирования. Набор команд SSE4 содержит несколько примитивов векторизации для компиляторов, повышающих эффективность работы мультимедийных приложений, а также новые инновационные инструкции для обработки строк. С появлением процессоров Intel на базе 45-нм производственного процесса, новые инструкции стали доступными для широкого спектра платформ Intel, включая настольные ПК, мобильные ПК и серверы. Расширения SSE4 включают в себя множество инновационных инструкций, которые можно разделить на две основные категории:

  • Примитивы векторизации для компиляторов и ускорители мультимедийных приложений (Intel SSE4 Vectorizing Compiler and Media Accelerators)
  • Ускорители обработки строк и текстовой информации (Intel SSE4 Efficient Accelerated String and Text Processing).

AES-NI и PCMULQDQ

Инновационные возможности архитектуры Intel ISA будут дополнены в 2009 семью новыми инструкциями, ускоряющими операции шифрования и дешифрования данных. В будущих процессорах Intel под кодовым названием Westmere будет реализовано шесть новых инструкций для симметричного шифрования/дешифрования с использованием стандарта Advanced Encryption Standard (AES) и одна инструкция для выполнения умножения без переноса (carry-less multiplication, PCMULQDQ), поддерживающая усовершенствованные алгоритмы блочного шифрования. Эти аппаратные примитивы обеспечивают повышенный уровень безопасности за счет исключения табличных преобразований и защищают от программных атак по внешним каналам (side channel attacks).

Архитектура Intel® AVX

Предыстория и общие сведения

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

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

Intel AVX представляет собой новый набор расширений для архитектуры Intel, предусматривающий 256-битные векторные вычисления с плавающей запятой на базе SIMD. Он будет впервые реализован в семействе процессоров Sandy Bridge, запланированных на 2010 год. Появление Intel AVX подчеркивает тенденцию к увеличению роли вычислений с плавающей запятой в приложениях общего назначения, таких как программы обработки графики, аудио и видео, а также инженерные приложения для трехмерного моделирования и анализа, научные системы экспериментального моделирования и средства финансового анализа.

Intel AVX предусматривает комплексное расширение архитектуры набора команд для микроархитектуры Intel 64 и обладает следующими особенностями:

  • Поддержка векторных данных с большей разрядностью (до 256 бит).
  • Эффективная схема кодирования инструкций, поддерживающая синтаксис команд с 3 и 4 операндами.
  • Гибкая среда программирования, предусматривающая различные возможности – от инструкций обработки переходов до сниженных требований к выравниванию смещений в памяти.
  • Новые примитивы для манипулирования данными и ускорения арифметических вычислений, включая трансляцию (broadcast), перестановку (permute), одновременное умножение и сложение (fused-multiply-add, FMA) и др.

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

Когда несколько лет назад начались работы по созданию Intel AVX, перед инженерами Intel была поставлена задача разработать комплексное решение, обладающее обратной совместимостью и расширяемостью. Используемый в решениях Intel синтаксис с тремя операндами и векторными данными увеличенной разрядности построен на формате инструкций, уже используемом в существующих инструкциях Intel SSE. Помимо этого, набор команд Intel AVX добавляет в операции кодирования синтаксис с 4 операндами, поддерживающий FMA, переменное преобразование (variable blend) и обобщенное тасование (generalized shuffle). Кодирование в наборе Intel AVX весьма компактно и, как правило, требует меньше символов, чем 64-битные формы существующих инструкций с плавающей запятой, при этом предусматривается ряд зарезервированных полей для будущих функций.

Основные преимущества Intel® AVX

Intel AVX представляет собой комплексное расширение архитектуры набора команд ISA, добавляющее ряд новых возможностей и новый компактный формат кодирования.

  • Значительное количество (200+) стандартных инструкций SSEx будет улучшено за счет усовершенствованных кодов инструкций, обеспечивающих поддержку таких функций, как неодинаковые операнды-источники и гибкое выравнивание в памяти.
  • Некоторое количество (< 100) стандартных 128-битных инструкций Intel SSEx будет расширено для поддержки 256-битных векторных данных.
  • В новых моделях процессоров Intel, запланированных на 2010 год и позднее, будет реализован ряд новых арифметических операций и операций обработки данных (< 100), не представленных в стандартных наборах команд Intel SSEx.

Можно выделить следующие ключевые преимущества архитектуры Intel AVX:

  1. Производительность: Набор расширений Intel AVX может улучшить производительность существующих и будущих приложений, поддерживающих распараллеливаемые наборы данных:
    • Наборы векторных данных большей разрядности могут обрабатываться со скоростью до двух раз быстрее, чем 128-битные наборы данных.
    • Производительность приложения может масштабироваться в зависимости от количества аппаратных потоков и процессорных ядер.
    • Область применения приложений может быть расширена за счет усовершенствованных межплатформенных интерфейсов, таких как Intel QPI.
  2. Энергосбережение: Intel AVX обеспечивает значительную экономию потребляемой процессором энергии. Если инструкции не используются или используются редко, расход энергии незначителен. В сочетании с высокой производительностью, которую может обеспечить новая технология, ориентированные на Intel AVX приложения могут стать намного более энергоэффективными и демонстрировать высокий коэффициент производительности в расчете на потребляемую мощность.
  3. Расширяемость: Intel AVX обладает мощными встроенными средствами расширяемости без усложнения кода:
    • Изменения в контекст управления ОС необходимо вносить лишь однократно.
    • Поддержка будущих векторных целочисленных инструкций с разрядностью до 256 и 512 бит.
    • Поддержка будущих векторных инструкций с плавающей запятой и разрядностью до 512 и вплоть до 1024 бит.
  4. Совместимость: Расширения Intel AVX обратно совместимы с предыдущими расширениями архитектуры набора команд, в том числе Intel SSE4:
    • Легкое портирование существующих приложений Intel SSE под Intel AVX-128.
    • Не вызывающее особых сложностей портирование существующих приложений Intel SSE под Intel AVX-256.
  5. Широкая область применения: Набор расширений Intel AVX будет доступен на широком спектре платформ Intel, от субноутбуков до многопроцессорных серверных систем.
  6. Поддержка: Полный комплект средств разработки Intel и обширные возможности поддержки через Интернет, доступные через Intel® Software Network http://softwarecentral.intel.com, с легкостью позволяют начать работу с Intel AVX уже сегодня.

Соответствующие платформы для разработки программного обеспечения будут доступны в первой половине 2010 года. До этого срока независимые поставщики ПО смогут начать разработку с помощью эмулятора и других средств, которые можно будет загрузить с сайта Intel AVX (http://www.intel.com/software/avx).

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

  • Большинство приложений, написанных с использованием встроенных функций (intrinsics), достаточно просто перекомпилировать.
  • Существующие приложения Intel SSE можно без особых сложностей портировать под Intel AVX 256 с помощью библиотек Intel, таких как Intel® Integrated Performance Primitives (Intel® IPP) и др.
  • Все инструкции Intel SSE/2 расширяются с помощью простого префикса ( “VEX).

Заключение

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

Об авторах

Надим Фирашта (Nadeem Firasta) – старший технический аналитик Intel, работающий в отделе оценки производительности и сравнительного анализа (PBCA) Группы продаж и маркетинга (SMG). В настоящее время занимается изучением перспектив технологий процессоров и платформ в различных сферах применения платформ клиентов. Также руководит разработкой основных маркетинговых материалов для Группы продаж и маркетинга Intel. Надим работает в Intel на протяжении 12 лет и успел побывать на различных должностях, связанных с разработкой микропроцессоров - от ведущего специалиста по микроархитектуре до ведущего специалиста по апробации чипов для различных микропроцессоров Intel. Его адрес электронной почты nadeem.h.firasta@intel.com.

Марк Бакстон (Mark Buxton) – ведущий инженер Intel Corporation, руководит отделом оптимизации производительности приложений в Группе программных решений (SSG). Вы можете написать Марку по электронной почте на адрес Mark.J.Buxton@intel.com.

Паула Джинбо (Paula Jinbo) – специалист по маркетингу программных продуктов в Группе программных решений (SSG), отвечает за связи с независимыми поставщиками по вопросам поддержки мобильных платформ и будущих процессорных технологий. Паула работает в Intel около 10 лет и занимала различные должности в области маркетинга, разработки и сопровождения программных продуктов. До прихода в Intel она работала в компании, занимающейся поставками потребительского ПО, и вела все контракты по дистрибуции и лицензированию продуктов компании в Азии и Латинской Америке. Вы можете связаться с ней по электронной почте по адресу Paula.jinbo@Intel.com.

Кавех Нашери (Kaveh Nasri) – специалист по маркетингу продуктов в Группе цифровых корпоративных платформ (DEG). Его деятельность связана с разработкой планов развития процессорных продуктов и будущих процессорных технологий. Кавех проработал в Intel уже 20 лет на различных должностях в области разработки программного обеспечения, системной и программной архитектуры, а также инженерно-технического управления. Его адрес электронной почты kaveh.nasri@intel.com.

Ши Чжон Ко (Shihjong Kuo) – старший инженер в отделе технического маркетинга серверных платформ в Группе цифровых корпоративных платформ (DEG). Он работает в Intel около 10 лет, сфера его деятельности – вопросы расширяемости/совместимости архитектуры Intel в различных поколениях процессоров Intel. Он координирует разработку руководств по процессорам Intel с точки зрения рекомендаций по программированию и оптимизации ПО. Его адрес электронной почты shihjong.kuo@intel.com.

ПРЕДСТАВЛЕННАЯ В НАСТОЯЩЕМ ДОКУМЕНТЕ ИНФОРМАЦИЯ ПРИВОДИТСЯ ТОЛЬКО В СВЯЗИ С ПРОДУКТАМИ INTEL®. В НАСТОЯЩЕМ ДОКУМЕНТЕ НЕ СОДЕРЖИТСЯ НИКАКОЙ ЯВНОЙ ИЛИ ПОДРАЗУМЕВАЕМОЙ, КАК В СИЛУ ПРАВОВОЙ ПРЕЗУМПЦИИ ТАК И ИНЫХ ОСНОВАНИЙ, ЛИЦЕНЗИИ НА ЛЮБЫЕ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ. ЕСЛИ ИНОЕ НЕ УКАЗАНО В УСЛОВИЯХ И ПОЛОЖЕНИЯХ INTEL, ПРИМЕНИМЫХ К ПРОДАЖЕ ТАКИХ ПРОДУКТОВ, INTEL НЕ ПРИНИМАЕТ НА СЕБЯ НИКАКИХ ОБЯЗАТЕЛЬСТВ И ОТКАЗЫВАЕТСЯ ОТ ЛЮБЫХ ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ ГАРАНТИЙ В СВЯЗИ С ПРОДАЖЕЙ И/ИЛИ ИСПОЛЬЗОВАНИЕМ ПРОДУКТОВ INTEL, ВКЛЮЧАЯ ОБЯЗАТЕЛЬСТВА ИЛИ ГАРАНТИИ, КАСАЮЩИЕСЯ ПРИГОДНОСТИ ДЛЯ ИСПОЛЬЗОВАНИЯ В ОПРЕДЕЛЕННЫХ ЦЕЛЯХ, ТОВАРНОГО СОСТОЯНИЯ, РАВНО КАК И ОТСУТСТВИЯ НАРУШЕНИЙ КАКИХ-ЛИБО ПАТЕНТОВ, АВТОРСКИХ ПРАВ ИЛИ ИНЫХ ПРАВ ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ. Продукты Intel не предназначены для использования в медицинских системах, системах спасения или жизнеобеспечения, критических системах управления или безопасности, а также в системах ядерных объектов.

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

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

Номерные обозначения процессоров Intel не являются показателем производительности. Номерные обозначения процессоров служат для разграничения внутри серии процессоров, а не между различными сериями процессоров. Дополнительные сведения доступны на странице www.intel.com/products/processor_number.

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

Представленное в настоящем документе кодовое наименование Sandy Bridge используется Intel только для идентификации находящегося в разработке продукта, технологии или услуги, которые еще поступили в открытую продажу, т.е. не были объявлены, запущены в производство или поставлены в торговую сеть. Оно не является «коммерческим» наименованием продуктов или услуг и не предназначено для использования в качестве товарного знака.

Копии документов, на которые в настоящем документе имеется ссылка под порядковым номером, а также другие публикации Intel, можно получить, обратившись по телефону 1-800-548-4725, или посетив веб-сайт Intel.

Intel, Intel Core, Pentium, и логотип Intel являются товарными знаками Intel Corporation в США и других странах.

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

Охраняется авторским правом © 2008, Intel Corporation. Все права защищены.