Гетерогенные вычисления
Эта статья нуждается в дополнительных цитатах для проверки . ( октябрь 2014 г. ) |
Гетерогенные вычисления относятся к системам, которые используют более одного типа процессора или ядра . Эти системы повышают производительность или энергоэффективность не только за счет добавления процессоров одного и того же типа, но и за счет добавления разнородных сопроцессоров , обычно включающих специализированные возможности обработки для решения определенных задач. [1]
Неоднородность [ править ]
Обычно гетерогенность в контексте вычислений относится к разным архитектурам набора команд (ISA), где основной процессор имеет одну, а другие процессоры имеют другую, обычно совершенно другую, архитектуру (возможно, несколько), а не просто другую микроархитектуру ( плавающую обработка номеров точек является особым случаем этого процесса и обычно не называется гетерогенной).
В прошлом гетерогенные вычисления означали, что с разными ISA нужно было обращаться по-разному, тогда как в современном примере с гетерогенной системной архитектурой (HSA) системы [2] устранить разницу (для пользователя) при использовании нескольких типов процессоров (обычно центральных и графических процессоров ), обычно на одной и той же интегральной схеме , чтобы обеспечить лучшее из обоих миров: общую обработку графического процессора (помимо хорошо известных возможностей рендеринга 3D-графики графического процессора). , он также может выполнять математически интенсивные вычисления с очень большими наборами данных), в то время как ЦП могут запускать операционную систему и выполнять традиционные последовательные задачи.
Уровень гетерогенности в современных вычислительных системах постепенно возрастает, поскольку дальнейшее масштабирование технологий изготовления позволяет ранее дискретным компонентам стать интегрированными частями системы -на-кристалле , или SoC. [ нужна ссылка ] Например, многие новые процессоры теперь включают встроенную логику для взаимодействия с другими устройствами ( SATA , PCI , Ethernet , USB , RFID , радиомодулями , UART и контроллерами памяти ), а также программируемые функциональные блоки и аппаратные ускорители ( графические процессоры , криптографические процессоры) . сопроцессоры , программируемые сетевые процессоры, кодеры/декодеры A/V и т. д.).
Недавние результаты показывают, что мультипроцессор с гетерогенной ISA-схемой, использующий разнообразие, предлагаемое несколькими ISA, может превзойти лучшую гомогенную архитектуру с той же ISA на целых 21% с экономией энергии на 23% и снижением на 32% продукта задержки энергии (EDP). . [3] Объявление AMD в 2014 году о совместимых по выводам процессорах ARM и x86 под кодовым названием Project Skybridge. [4] предложил создать мультипроцессор на основе гетерогенного ISA (ARM+x86). [ нужна ссылка ]
процессора Гетерогенная топология
Система с гетерогенной топологией ЦП — это система, где используется одна и та же ISA, но сами ядра разные по скорости. [5] Установка больше похожа на симметричный мультипроцессор . (Хотя такие системы технически представляют собой асимметричные мультипроцессоры , ядра не различаются по ролям или доступу к устройствам.) Обычно существует два типа ядер: ядро с более высокой производительностью, обычно известное как «большое» или P-ядро, и более энергоэффективное ядро. обычно известный как «маленький» или E-core. Термины P- и E-ядра обычно используются в отношении реализации гетерогенных вычислений Intel, а термины «большие» и «маленькие ядра» обычно используются в отношении архитектуры ARM.
Обычно такая топология используется для обеспечения большей энергоэффективности, особенно в мобильных SoC.
- ARM big.LITTLE (на смену DynamIQ) представляет собой прототипный случай, в котором более быстрые ядра с высоким энергопотреблением сочетаются с более медленными ядрами с низким энергопотреблением. [6]
- Apple выпустила кремниевые SoC Apple с аналогичной организацией.
- Intel также выпустила гибридные чипы x86-64 под кодовым названием Lakefield , хотя и не без серьезных ограничений в поддержке набора команд. Более новый Alder Lake уменьшает жертвы, добавляя дополнительную поддержку набора команд к «маленькому» ядру.
Проблемы [ править ]
Гетерогенные вычислительные системы создают новые проблемы, которых нет в типичных однородных системах. [7] Наличие нескольких элементов обработки поднимает все проблемы, связанные с однородными системами параллельной обработки, в то время как уровень неоднородности в системе может привести к неравномерности в разработке системы, методах программирования и общих возможностях системы. Области неоднородности могут включать в себя: [8]
- ISA или архитектура набора команд
- Вычислительные элементы могут иметь разную архитектуру набора команд, что приводит к двоичной несовместимости.
- ABI или двоичный интерфейс приложения
- Вычислительные элементы могут интерпретировать память по-разному. [9] Это может включать в себя как порядок байтов , соглашение о вызовах архитектуры, так и от компилятора . , так и расположение памяти, и зависит как от используемой
- API или интерфейс прикладного программирования
- Службы библиотеки и ОС могут не быть одинаково доступны для всех вычислительных элементов. [10]
- Низкоуровневая реализация функций языка
- Возможности языка, такие как функции и потоки, часто реализуются с использованием указателей на функции — механизма, который требует дополнительного перевода или абстракции при использовании в гетерогенных средах.
- памяти Интерфейс и иерархия
- Вычислительные элементы могут иметь разные кэша структуры , протоколы согласованности кэша , а доступ к памяти может быть унифицированным или неравномерным доступом к памяти ( NUMA ). Различия также можно найти в способности читать данные произвольной длины, поскольку некоторые процессоры/устройства могут выполнять только байтовый, словный или пакетный доступ. [11]
- Межсоединение
- Вычислительные элементы могут иметь разные типы межсоединений, помимо базовых интерфейсов памяти/шины. прямого доступа к памяти ( DMA Это могут быть выделенные сетевые интерфейсы, устройства ), почтовые ящики, FIFO , блокноты памяти и т. д. Кроме того, некоторые части гетерогенной системы могут быть кэш-когерентными, тогда как другие могут требовать явного участия программного обеспечения для поддержания согласованности. и согласованность.
- Производительность
- Гетерогенная система может иметь процессоры, идентичные по архитектуре, но имеющие основные микроархитектурные различия, которые приводят к разным уровням производительности и энергопотребления. Асимметрия возможностей в сочетании с непрозрачными моделями программирования и абстракциями операционной системы иногда может привести к проблемам с предсказуемостью производительности, особенно при смешанных рабочих нагрузках.
- Инструменты разработки
- Для разных типов процессоров обычно требуются разные инструменты (редакторы, компиляторы и т. д.) для разработчиков программного обеспечения, что усложняет разделение приложения на них. [12]
- Разделение данных
- Хотя разделение данных на однородных платформах часто является тривиальной задачей, было показано, что для общего гетерогенного случая проблема является NP-полной. [13] Было показано, что для небольшого количества разделов существуют оптимальные разделы, которые идеально балансируют нагрузку и минимизируют объем связи. [14]
Пример оборудования [ править ]
Этот раздел может потребовать очистки Википедии , чтобы соответствовать стандартам качества . Конкретная проблема заключается в следующем: некоторые группировки не имеют смысла, если учитывать «то, что добавлено по сравнению с голым процессором». Возможно, пришло время переосмыслить таксономию. ( сентябрь 2021 г. ) |
Гетерогенное вычислительное оборудование можно найти в каждой области вычислений — от высокопроизводительных серверов и высокопроизводительных вычислительных машин до маломощных встроенных устройств, включая мобильные телефоны и планшеты.
- Высокопроизводительные вычисления
- Cydra-5 (числовой сопроцессор)
- Крей XD1 (FPGA)
- Компьютеры SRC SRC-6 и SRC-7 (FPGA)
- Встроенные системы (DSP и мобильные платформы)
- Texas Instruments OMAP (медиа-сопроцессор)
- Analog Devices Blackfin (DSP и медиа-сопроцессоры)
- Qualcomm Snapdragon (графический процессор, DSP, изображение, иногда сопроцессор AI; модем, датчики)
- Nvidia Tegra (графический процессор; модем, датчики)
- Samsung Exynos (графический процессор; модем, датчики)
- Apple серии «A» (ЦП, графический процессор; модем)
- Процессорные блоки Movidius Myriad Vision , включающие в себя несколько симметричных процессоров, дополненных блоками с фиксированными функциями , и пару контроллеров на базе SPARC .
- HiSilicon Kirin SoC (графический процессор; модем, датчики)
- SoC MediaTek (графический процессор; модем, датчики)
- Cadence Design Systems Tensilica ЦСП
- Реконфигурируемые вычисления
- сеть
- Intel IXP Сетевые процессоры
- Сетевые процессоры Netronome NFP
- Вычислительные, игровые и развлекательные устройства общего назначения
- Процессоры Intel Sandy Bridge, Ivy Bridge и Haswell (встроенный графический процессор, поддержка OpenCL, начиная с Ivy Bridge)
- AMD Excavator и APU Ryzen (встроенный графический процессор, поддержка OpenCL)
- IBM Cell , найденный в PlayStation 3 (векторный сопроцессор) [15]
- SpursEngine — вариант процессора IBM Cell.
- Emotion Engine , используемый в PlayStation 2 (векторные и медиа-сопроцессоры)
- Архитектура ЦП ARM big.LITTLE/DynamIQ (гетерогенная топология)
- Почти все поставщики ARM предлагают гетерогенные решения; ARM, Qualcomm, Nvidia, Apple, Samsung, HiSilicon, MediaTek и т. д.
См. также [ править ]
Ссылки [ править ]
- ^ Шан, Амар (2006). Гетерогенная обработка: стратегия усиления закона Мура . Linux-журнал.
- ^ «Фонд гетерогенной системной архитектуры (HSA)» . Архивировано из оригинала 23 апреля 2014 г. Проверено 1 ноября 2014 г.
- ^ Венкат, Ашиш; Таллсен, Дин М. (2014). Использование разнообразия ISA: проектирование мультипроцессора с гетерогенной ISA . Материалы 41-го ежегодного международного симпозиума по компьютерной архитектуре.
- ^ Ананд Лал Шимпи (5 мая 2014 г.). «AMD анонсирует проект SkyBridge: совместимые по выводам процессоры ARM и x86 в 2015 году, поддержка Android» . АнандТех . Проверено 11 июня 2017 г.
В следующем году AMD выпустит маломощную 20-нм SoC на базе Cortex A57 со встроенным графическим процессором Graphics Core Next.
- ^ «Энергосберегающее планирование» . Документация ядра Linux .
- ^ Обзор методов проектирования и управления асимметричными многоядерными процессорами , Обзоры вычислений ACM, 2015.
- ^ Кунцман, DM (2011). Программирование гетерогенных систем . Международный симпозиум по параллельной и распределенной обработке. дои : 10.1109/IPDPS.2011.377 .
- ^ Флахс, Брайан (2009). Выведение гетерогенных процессоров в массовое производство (PDF) . Симпозиум по ускорителям приложений в высокопроизводительных вычислениях (SAAHPC).
- ^ «Распределение мультимедийных данных с учетом затрат в гетерогенной памяти с использованием генетического алгоритма в облачных вычислениях» (PDF) . IEEE. 2016.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Агрон, Джейсон; Эндрюс, Дэвид (2009). Аппаратные микроядра для гетерогенных многоядерных систем . Семинары по параллельной обработке, 2009 г. Международная конференция по параллельной обработке (ICPPW). дои : 10.1109/ICPPW.2009.21 .
- ^ Ланг, Йоханнес (2020). Гетерогенные вычисления с использованием многопроцессорных однокристальных систем ARM и DSP (магистр). Форарльбергский университет прикладных наук. дои : 10.25924/опус-4525 .
- ^ Вонг, Уильям Г. (30 сентября 2002 г.). «Инструменты имеют значение при разработке программного обеспечения для смешанных процессоров» . www.electronicdesign.com . Проверено 9 августа 2023 г.
- ^ Бомонт, Оливье; Буде, Винсент; Растелло, Фабрис; Робер, Ив (август 2002 г.). «Разбиение квадрата на прямоугольники: NP-полнота и алгоритмы аппроксимации» (PDF) . Алгоритмика . 34 (3): 217–239. CiteSeerX 10.1.1.3.4967 . дои : 10.1007/s00453-002-0962-9 . S2CID 9729067 .
- ^ Бомонт, Оливье; Беккер, Бретт; ДеФлюмер, Эшли; Эйро-Дюбуа, Лионель; Ластовецкий, Алексей (июль 2018 г.). «Последние достижения в разделении матриц для параллельных вычислений на гетерогенных платформах» (PDF) . Транзакции IEEE в параллельных и распределенных вычислениях .
- ^ Гшвинд, Майкл (2005). Новая архитектура SIMD для гетерогенного мультипроцессора Cell (PDF) . Горячие чипы: симпозиум по высокопроизводительным чипам. Архивировано из оригинала (PDF) 18 июня 2020 г. Проверено 28 октября 2014 г.