Гетерогенные вычисления - Heterogeneous computing
Было предложено, чтобы эта статья была слился в Грид-вычисления. (Обсудить) Предлагается с августа 2020 года. |
эта статья нужны дополнительные цитаты для проверка.Октябрь 2014 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Гетерогенные вычисления относится к системам, которые используют более одного типа процессоров или ядра. Эти системы увеличивают производительность или энергоэффективность не просто добавляя однотипные процессоры, а добавляя разные сопроцессоры, обычно включающие специализированные возможности обработки для решения конкретных задач.[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 или двоичный интерфейс приложения
- Вычислительные элементы могут интерпретировать память по-разному.[10] Это может включать как порядок байтов, соглашение о вызовах, и макет памяти, и зависит как от архитектуры, так и от компилятор использовался.
- API или интерфейс прикладного программирования
- Услуги библиотеки и ОС могут быть доступны не для всех вычислительных элементов.[11]
- Низкоуровневая реализация языковых функций
- Языковые функции, такие как функции и потоки, часто реализуются с использованием указатели на функции, механизм, который требует дополнительного перевода или абстракции при использовании в гетерогенных средах.
- Интерфейс памяти и Иерархия
- Вычислительные элементы могут иметь разные тайник конструкции, согласованность кеша протоколы, а доступ к памяти может быть равномерным или неоднородным доступом к памяти (NUMA ). Различия также можно найти в способности читать данные произвольной длины, поскольку некоторые процессоры / блоки могут выполнять только байтовый, словарный или пакетный доступ.
- Соединить
- Вычислительные элементы могут иметь разные типы соединений, помимо базовых интерфейсов памяти / шины. Это может включать выделенные сетевые интерфейсы, прямой доступ к памяти (DMA ) устройства, почтовые ящики, ФИФО, и блокнот воспоминания и т. д. Более того, некоторые части гетерогенной системы могут быть согласованными с кешем, тогда как другие могут потребовать явного участия программного обеспечения для поддержания согласованности и согласованности.
- Спектакль
- Гетерогенная система может иметь процессоры, идентичные с точки зрения архитектуры, но имеющие основные микроархитектурные различия, которые приводят к различным уровням производительности и энергопотребления. Асимметрия в возможностях в сочетании с непрозрачными моделями программирования и абстракциями операционной системы иногда может приводить к проблемам предсказуемости производительности, особенно при смешанных рабочих нагрузках.
- Разделение данных
- Хотя разделение данных на однородные платформы часто тривиально, было показано, что для общего гетерогенного случая проблема является NP-полной.[12] Было показано, что для небольшого количества разделов существует оптимальное разделение, которое идеально балансирует нагрузку и минимизирует объем связи. [13]
Пример оборудования
Гетерогенное вычислительное оборудование можно найти во всех областях вычислений - от высокопроизводительных серверов и высокопроизводительных вычислительных машин до встроенных устройств с низким энергопотреблением, включая мобильные телефоны и планшеты.
- Высокопроизводительные вычисления
- Cray XD1
- Компьютеры SRC SRC-6 и SRC-7
- Встроенные системы (DSP и мобильные платформы)
- Инструменты Техаса OMAP
- Аналоговые устройства Blackfin
- Qualcomm Львиный зев
- Nvidia Тегра
- Samsung Exynos
- яблоко "Набор
- Movidius Myriad Блоки обработки зрения, который включает в себя несколько симметричных процессоров, дополненных фиксированные функциональные блоки, и пара SPARC на базе контроллеров.
- HiSilicon Кирин SoC
- MediaTek SoC
- Системы дизайна Cadence DSP Tensilica
- Реконфигурируемые вычисления
- Сети
- Сетевые процессоры Intel IXP
- Нетроном Сетевые процессоры NFP
- Универсальные вычислительные, игровые и развлекательные устройства
- Intel Процессоры Sandy Bridge, Ivy Bridge и Haswell
- AMD Экскаватор и Райзен ВСУ
- IBM Ячейка, найденный в Игровая приставка 3[14]
- SpursEngine, вариант процессора IBM Cell
- Двигатель эмоций, найденный в PlayStation 2
- РУКА big.LITTLE / DynamIQ Архитектура процессора
- Почти все поставщики ARM предлагают разнородные решения; ARM, Qualcomm, Nvidia, Apple, Samsung, HiSilicon, MediaTek и др.
Смотрите также
использованная литература
- ^ Шан, Амар (2006). Гетерогенная обработка: стратегия дополнения закона Мура. Linux Journal.
- ^ "Фонд архитектуры гетерогенных систем (HSA)". Архивировано из оригинал на 2014-04-23. Получено 2014-11-01.
- ^ С. Миттал и Дж. Веттер (2015), Обзор методов гетерогенных вычислений CPU-GPU, ACM Computing Surveys.
- ^ Венкат, Ашиш; Таллсен, Дин М. (2014). Использование разнообразия ISA: разработка многопроцессорного процессора на гетерогенных микросхемах ISA. Материалы 41-го ежегодного международного симпозиума по компьютерной архитектуре.
- ^ Ананд Лал Шимпи (05.05.2014). «AMD объявляет о выпуске проекта SkyBridge: совместимые с выводами ARM и x86 SoC в 2015 году, поддержка Android». АнандТех. Получено 2017-06-11.
В следующем году AMD выпустит маломощную 20-нм SoC на базе Cortex A57 со встроенным графическим процессором Graphics Core Next.
- ^ «Планирование с учетом энергопотребления». Документация ядра Linux.
- ^ Обзор методов проектирования и управления асимметричными многоядерными процессорами, ACM Computing Surveys, 2015.
- ^ Кунцман, Д. (2011). Программирование гетерогенных систем. Международный симпозиум по параллельной и распределенной обработке. Дои:10.1109 / IPDPS.2011.377.
- ^ Флакс, Брайан (2009). Внедрение гетерогенных процессоров в массовое производство (PDF). Симпозиум по ускорителям приложений в высокопроизводительных вычислениях (SAAHPC).
- ^ «Экономичное распределение мультимедийных данных для гетерогенной памяти с использованием генетического алгоритма в облачных вычислениях» (PDF). IEEE. 2016 г. Цитировать журнал требует
| журнал =
(Помогите) - ^ Агрон, Джейсон; Эндрюс, Дэвид (2009). Аппаратные микроядра для гетерогенных многоядерных систем. Семинары по параллельной обработке, 2009. Международная конференция по параллельной обработке (ICPPW). Дои:10.1109 / ICPPW.2009.21.
- ^ Бомон, Оливье; Буде, Винсент; Растелло, Фабрис; Роберт, Ив (август 2002). «Разбиение квадрата на прямоугольники: NP-полнота и алгоритмы аппроксимации» (PDF). Алгоритмика. 34 (3): 217–239. CiteSeerX 10.1.1.3.4967. Дои:10.1007 / s00453-002-0962-9.
- ^ Бомон, Оливье; Беккер, Бретт; ДеФлюмер, Эшли; Эйро-Дюбуа, Лайонел; Ластовецкий, Алексей (июль 2018). «Последние достижения в области разделения матриц для параллельных вычислений на гетерогенных платформах» (PDF). Транзакции IEEE для параллельных и распределенных вычислений.
- ^ Гшвинд, Майкл (2005). Новая архитектура SIMD для гетерогенного многопроцессорного чипа Cell. (PDF). Горячие чипы: симпозиум по высокопроизводительным чипам.