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

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

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

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

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

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

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

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

Система с неоднородной топологией ЦП - это система, в которой используется один и тот же ISA, но сами ядра различаются по скорости. Настройка больше похожа на симметричный мультипроцессор . (Хотя такие системы являются технически асимметричными мультипроцессорами , ядра не различаются по ролям или доступу к устройствам.) Обычно существует два типа ядер: более производительное ядро, обычно известное как «большое» или P-ядро, и более энергоэффективное ядро. обычно известен как «маленький» или E-core.

Обычно такая топология используется для повышения энергоэффективности мобильных SoC.

  • ARM big.LITTLE (сменившаяся DynamIQ) - это типичный случай, когда более быстрые ядра с высокой мощностью сочетаются с более медленными ядрами с низким энергопотреблением.
  • Apple производила кремниевые ядра ARM от Apple с аналогичной организацией.
  • Intel также произвела гибридные ядра x86-64 под кодовым названием Lakefield , хотя и не без серьезных ограничений в поддержке набора команд. Более новая версия Alder Lake снижает жертву, добавляя дополнительную поддержку набора инструкций «маленькому» ядру.

Вызовы

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

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

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

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

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

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