Гетерогенные вычисления - Heterogeneous computing

Гетерогенные вычисления относится к системам, которые используют более одного типа процессоров или ядра. Эти системы увеличивают производительность или энергоэффективность не просто добавляя однотипные процессоры, а добавляя разные сопроцессоры, обычно включающие специализированные возможности обработки для решения конкретных задач.[1]

Неоднородность

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

В прошлом гетерогенные вычисления означали, что разные ISA нужно было обрабатывать по-разному, а в современном примере Гетерогенная системная архитектура (HSA) системы[2] устранить разницу (для пользователя) при использовании нескольких типов процессоров (обычно Процессоры и GPU[3]), обычно на одном Интегральная схема, чтобы обеспечить лучшее из обоих миров: общую обработку графического процессора (помимо хорошо известных возможностей рендеринга трехмерной графики графического процессора, он также может выполнять математически интенсивные вычисления на очень больших наборах данных), в то время как процессоры могут запускать операционную систему и выполнять традиционные серийные задания.

Уровень неоднородности современных вычислительных систем постепенно увеличивается, поскольку дальнейшее масштабирование производственных технологий позволяет ранее дискретным компонентам стать интегрированными частями система на кристалле, или SoC.[нужна цитата ] Например, многие новые процессоры теперь включают встроенную логику для взаимодействия с другими устройствами (SATA, PCI, Ethernet, USB, RFID, радио, UART, и контроллеры памяти ), а также программируемые функциональные блоки и аппаратные ускорители (GPU, криптография сопроцессоры, программируемые сетевые процессоры, A / V кодеры / декодеры и т. д.).

Недавние результаты показывают, что мультипроцессор с гетерогенной микросхемой ISA, использующий разнообразие, предлагаемое несколькими ISA, может превзойти лучшую однородную архитектуру с той же самой ISA на целых 21% при 23% экономии энергии и 32% сокращении затрат. Продукт задержки энергии (EDP).[4] Объявление AMD в 2014 году о своих совместимых по выводам процессорах ARM и x86 под кодовым названием Project Skybridge,[5]предложил мультипроцессор на базе гетерогенного ISA (ARM + x86).[нужна цитата ]

Гетерогенная топология ЦП

Система с гетерогенная топология ЦП это система, в которой используется один и тот же ISA, но сами ядра разные по скорости.[6] Настройка больше похожа на симметричный мультипроцессор. (Хотя такие системы технически асимметричные мультипроцессоры, ядра не различаются по ролям или доступу к устройствам.)

Обычно такая топология используется для повышения энергоэффективности мобильных SoC. ARM большой.LITTLE это типичный случай, когда более быстрые ядра с высокой мощностью сочетаются с более медленными ядрами с низким энергопотреблением.[7] Apple Кремний произвел ядра ARM с аналогичной организацией. Intel также выпустила гибридные ядра x86 под кодовым названием Lakefield, хотя и не без серьезных ограничений в поддержке набора команд.

Вызовы

Гетерогенные вычислительные системы создают новые проблемы, которых нет в типичных однородных системах.[8] Наличие нескольких элементов обработки поднимает все проблемы, связанные с однородными системами параллельной обработки, в то время как уровень неоднородности в системе может внести неоднородность в разработку системы, методы программирования и общие возможности системы. Области неоднородности могут включать:[9]

  • ISA или архитектура набора команд
    • Вычислительные элементы могут иметь разную архитектуру набора команд, что ведет к двоичной несовместимости.
  • ABI или двоичный интерфейс приложения
  • API или интерфейс прикладного программирования
    • Услуги библиотеки и ОС могут быть доступны не для всех вычислительных элементов.[11]
  • Низкоуровневая реализация языковых функций
    • Языковые функции, такие как функции и потоки, часто реализуются с использованием указатели на функции, механизм, который требует дополнительного перевода или абстракции при использовании в гетерогенных средах.
  • Интерфейс памяти и Иерархия
    • Вычислительные элементы могут иметь разные тайник конструкции, согласованность кеша протоколы, а доступ к памяти может быть равномерным или неоднородным доступом к памяти (NUMA ). Различия также можно найти в способности читать данные произвольной длины, поскольку некоторые процессоры / блоки могут выполнять только байтовый, словарный или пакетный доступ.
  • Соединить
    • Вычислительные элементы могут иметь разные типы соединений, помимо базовых интерфейсов памяти / шины. Это может включать выделенные сетевые интерфейсы, прямой доступ к памяти (DMA ) устройства, почтовые ящики, ФИФО, и блокнот воспоминания и т. д. Более того, некоторые части гетерогенной системы могут быть согласованными с кешем, тогда как другие могут потребовать явного участия программного обеспечения для поддержания согласованности и согласованности.
  • Спектакль
    • Гетерогенная система может иметь процессоры, идентичные с точки зрения архитектуры, но имеющие основные микроархитектурные различия, которые приводят к различным уровням производительности и энергопотребления. Асимметрия в возможностях в сочетании с непрозрачными моделями программирования и абстракциями операционной системы иногда может приводить к проблемам предсказуемости производительности, особенно при смешанных рабочих нагрузках.
  • Разделение данных
    • Хотя разделение данных на однородные платформы часто тривиально, было показано, что для общего гетерогенного случая проблема является NP-полной.[12] Было показано, что для небольшого количества разделов существует оптимальное разделение, которое идеально балансирует нагрузку и минимизирует объем связи. [13]

Пример оборудования

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

Смотрите также

использованная литература

  1. ^ Шан, Амар (2006). Гетерогенная обработка: стратегия дополнения закона Мура. Linux Journal.
  2. ^ "Фонд архитектуры гетерогенных систем (HSA)". Архивировано из оригинал на 2014-04-23. Получено 2014-11-01.
  3. ^ С. Миттал и Дж. Веттер (2015), Обзор методов гетерогенных вычислений CPU-GPU, ACM Computing Surveys.
  4. ^ Венкат, Ашиш; Таллсен, Дин М. (2014). Использование разнообразия ISA: разработка многопроцессорного процессора на гетерогенных микросхемах ISA. Материалы 41-го ежегодного международного симпозиума по компьютерной архитектуре.
  5. ^ Ананд Лал Шимпи (05.05.2014). «AMD объявляет о выпуске проекта SkyBridge: совместимые с выводами ARM и x86 SoC в 2015 году, поддержка Android». АнандТех. Получено 2017-06-11. В следующем году AMD выпустит маломощную 20-нм SoC на базе Cortex A57 со встроенным графическим процессором Graphics Core Next.
  6. ^ «Планирование с учетом энергопотребления». Документация ядра Linux.
  7. ^ Обзор методов проектирования и управления асимметричными многоядерными процессорами, ACM Computing Surveys, 2015.
  8. ^ Кунцман, Д. (2011). Программирование гетерогенных систем. Международный симпозиум по параллельной и распределенной обработке. Дои:10.1109 / IPDPS.2011.377.
  9. ^ Флакс, Брайан (2009). Внедрение гетерогенных процессоров в массовое производство (PDF). Симпозиум по ускорителям приложений в высокопроизводительных вычислениях (SAAHPC).
  10. ^ «Экономичное распределение мультимедийных данных для гетерогенной памяти с использованием генетического алгоритма в облачных вычислениях» (PDF). IEEE. 2016 г. Цитировать журнал требует | журнал = (Помогите)
  11. ^ Агрон, Джейсон; Эндрюс, Дэвид (2009). Аппаратные микроядра для гетерогенных многоядерных систем. Семинары по параллельной обработке, 2009. Международная конференция по параллельной обработке (ICPPW). Дои:10.1109 / ICPPW.2009.21.
  12. ^ Бомон, Оливье; Буде, Винсент; Растелло, Фабрис; Роберт, Ив (август 2002). «Разбиение квадрата на прямоугольники: NP-полнота и алгоритмы аппроксимации» (PDF). Алгоритмика. 34 (3): 217–239. CiteSeerX  10.1.1.3.4967. Дои:10.1007 / s00453-002-0962-9.
  13. ^ Бомон, Оливье; Беккер, Бретт; ДеФлюмер, Эшли; Эйро-Дюбуа, Лайонел; Ластовецкий, Алексей (июль 2018). «Последние достижения в области разделения матриц для параллельных вычислений на гетерогенных платформах» (PDF). Транзакции IEEE для параллельных и распределенных вычислений.
  14. ^ Гшвинд, Майкл (2005). Новая архитектура SIMD для гетерогенного многопроцессорного чипа Cell. (PDF). Горячие чипы: симпозиум по высокопроизводительным чипам.