Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Неоднородность [ править ]

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

В прошлом гетерогенные вычисления означали, что разные ISA должны обрабатываться по-разному, в то время как в современном примере системы с гетерогенной системной архитектурой (HSA) [2] устраняют разницу (для пользователя) при использовании нескольких типов процессоров (обычно CPU и 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 big.LITTLE - это типичный случай, когда более быстрые ядра с высокой мощностью сочетаются с более медленными ядрами с низким энергопотреблением. [7] Apple Silicon производит ядра ARM аналогичной организации. Intel также выпустила гибридные ядра x86 под кодовым названием Lakefield, хотя и не без серьезных ограничений в поддержке набора команд.

Alder Lake использует маленькие и большие жилы.

Проблемы [ править ]

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

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

Пример оборудования [ править ]

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

  • Высокопроизводительные вычисления
    • Cray XD1
    • Компьютеры SRC SRC-6 и SRC-7
  • Встроенные системы (DSP и мобильные платформы)
    • Техасские инструменты OMAP
    • Аналоговые устройства Blackfin
    • Qualcomm Snapdragon
    • Nvidia Tegra
    • Samsung Exynos
    • Яблоко серии "А"
    • Блоки обработки Movidius Myriad Vision , включающие несколько симметричных процессоров, дополненных блоками с фиксированными функциями , и парой контроллеров на базе SPARC .
    • SoC HiSilicon Kirin
    • MediaTek SoC
    • Цифровые сигнальные процессоры Cadence Design Systems Tensilica
  • Реконфигурируемые вычисления
    • Xilinx поле программируемой пользователем вентильной матрицы (FPGA, например, Virtex-II Pro, Virtex 4 FX, Virtex 5 FXT) и Zynq и Версальные Платформы
    • Intel «Стеллартон» ( ПЛИС Atom + Altera )
  • Сети
    • Сетевые процессоры Intel IXP
    • Сетевые процессоры Netronome NFP
  • Универсальные вычислительные, игровые и развлекательные устройства
    • Процессоры Intel Sandy Bridge, Ivy Bridge и Haswell
    • AMD Excavator и APU Ryzen
    • IBM Cell в PlayStation 3 [14]
      • SpursEngine , вариант процессора IBM Cell
    • Emotion Engine , найденный в PlayStation 2
    • ARM big.LITTLE / архитектура процессора DynamIQ
      • Почти все поставщики ARM предлагают разнородные решения; ARM, Qualcomm, Nvidia, Apple, Samsung, HiSilicon, MediaTek и др.

См. Также [ править ]

  • ГПГПУ
  • MPSoC
  • big.LITTLE / DynamIQ

Ссылки [ править ]

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