stringtranslate.com

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

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

Гетерогенность

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

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

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

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

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

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

Распространенным применением такой топологии является обеспечение более высокой энергоэффективности, особенно в мобильных SoC.

Вызовы

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

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

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

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

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

Ссылки

  1. ^ Шан, Амар (2006). Гетерогенная обработка: стратегия усиления закона Мура. Linux Journal.
  2. ^ "Hetergeneous System Architecture (HSA) Foundation". Архивировано из оригинала 2014-04-23 . Получено 2014-11-01 .
  3. ^ Венкат, Ашиш; Туллсен, Дин М. (2014). Использование разнообразия ISA: проектирование гетерогенного мультипроцессора ISA Chip. Труды 41-го ежегодного международного симпозиума по архитектуре компьютеров.
  4. ^ Ананд Лал Шимпи (2014-05-05). "AMD анонсирует проект SkyBridge: совместимые по выводам ARM и x86 SoC в 2015 году, поддержка Android". AnandTech . Получено 2017-06-11 . В следующем году AMD выпустит маломощную 20-нм SoC на базе Cortex A57 с интегрированным графическим процессором Graphics Core Next.
  5. ^ "Energy Aware Scheduling". Документация ядра Linux .
  6. ^ Амадео, Рон (2023-10-24). «Qualcomm Snapdragon 8 Gen 3 обещает на 30 процентов более быстрый процессор». Ars Technica .
  7. ^ Миттал, Спарш (февраль 2015 г.). «Обзор методов проектирования и управления асимметричными многоядерными процессорами». ACM Computing Surveys . 48 (3): 1–38. doi :10.1145/2856125.
  8. ^ Кунцман, Д. М. (2011). Программирование гетерогенных систем . Международный симпозиум по параллельной и распределенной обработке. Семинары. doi :10.1109/IPDPS.2011.377.
  9. ^ Флакс, Брайан (2009). Внедрение гетерогенных процессоров в массовую практику (PDF) . Симпозиум по ускорителям приложений в высокопроизводительных вычислениях (SAAHPC).
  10. ^ K. Gai; L. Qiu; H. Zhao; M. Qiu (октябрь–декабрь 2020 г.). «Распределение мультимедийных данных с учетом затрат для гетерогенной памяти с использованием генетического алгоритма в облачных вычислениях». IEEE Transactions on Cloud Computing . 8 (4): 1212–1222. doi :10.1109/TCC.2016.2594172.
  11. ^ Агрон, Джейсон; Эндрюс, Дэвид (2009). Аппаратные микроядра для гетерогенных многоядерных систем . Семинары по параллельной обработке, 2009. Международная конференция по параллельной обработке (ICPPW). doi :10.1109/ICPPW.2009.21.
  12. ^ Ланг, Йоханнес (2020). Heterogenes Rechnen mit ARM и DSP Multiprozessor-Ein-Chip-Systemen (MSc.). Fachhochschule Форарльберг. дои : 10.25924/опус-4525.
  13. ^ Вонг, Уильям Г. (30 сентября 2002 г.). «Инструменты имеют значение в разработке программного обеспечения для смешанных процессоров». www.electronicdesign.com . Получено 09.08.2023 .
  14. ^ Бомон, Оливье; Буде, Винсент; Растелло, Фабрис; Роберт, Ив (август 2002 г.). «Разбиение квадрата на прямоугольники: NP-полнота и алгоритмы аппроксимации» (PDF) . Algorithmica . 34 (3): 217–239. CiteSeerX 10.1.1.3.4967 . doi :10.1007/s00453-002-0962-9. S2CID  9729067. 
  15. ^ Бомон, Оливье; Беккер, Бретт; ДеФлумер, Эшли; Эйро-Дюбуа, Лионель; Ластовецкий, Алексей (июль 2018 г.). «Последние достижения в области матричного разбиения для параллельных вычислений на гетерогенных платформах» (PDF) . Труды IEEE по параллельным и распределенным вычислениям .
  16. ^ Gschwind, Michael (2005). Новая архитектура SIMD для гетерогенного чипа-мультипроцессора Cell (PDF) . Hot Chips: A Symposium on High Performance Chips. Архивировано из оригинала (PDF) 2020-06-18 . Получено 2014-10-28 .