Архитектура компьютера, использующая несколько различных методов обработки
Гетерогенные вычисления относятся к системам, которые используют более одного типа процессора или ядра . Эти системы повышают производительность или энергоэффективность не только за счет добавления одного и того же типа процессоров, но и за счет добавления разнородных сопроцессоров , обычно включающих специализированные возможности обработки для решения определенных задач. [1]
Гетерогенность
Обычно гетерогенность в контексте вычислений относится к различным архитектурам набора команд (ISA), где основной процессор имеет одну, а другие процессоры имеют другую, обычно совершенно другую, архитектуру (может быть, более одной), а не просто другую микроархитектуру ( обработка чисел с плавающей точкой является частным случаем этого, обычно не называемым гетерогенной).
В прошлом гетерогенные вычисления означали, что разные ISA должны были обрабатываться по-разному, в то время как в современном примере системы с гетерогенной системной архитектурой (HSA) [2] устраняют разницу (для пользователя), используя несколько типов процессоров (обычно центральные и графические процессоры ), как правило, на одной и той же интегральной схеме , чтобы обеспечить лучшее из обоих миров: общую обработку на GPU (помимо хорошо известных возможностей графического рендеринга 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.
- ARM big.LITTLE (на смену ему пришел DynamIQ) — это типичный случай, в котором более быстрые ядра высокой мощности сочетаются с более медленными ядрами низкой мощности. [7]
- Компания Apple выпустила кремниевые однокристальные системы (SoC) с похожей организацией.
- Intel также выпустила гибридные чипы x86-64 под кодовым названием Lakefield , хотя и не без серьезных ограничений в поддержке набора инструкций. Более новый Alder Lake уменьшает жертву, добавляя больше поддержки набора инструкций к «маленькому» ядру.
Вызовы
Гетерогенные вычислительные системы представляют новые проблемы, не встречающиеся в типичных гомогенных системах. [8] Наличие нескольких элементов обработки поднимает все проблемы, связанные с гомогенными параллельными системами обработки, в то время как уровень гетерогенности в системе может вносить неоднородность в разработку системы, практику программирования и общие возможности системы. Области гетерогенности могут включать: [9]
- ISA или архитектура набора инструкций
- Вычислительные элементы могут иметь различную архитектуру набора команд, что приводит к двоичной несовместимости.
- ABI или двоичный интерфейс приложения
- Вычислительные элементы могут интерпретировать память по-разному. [10] Это может включать в себя как порядок байтов , соглашение о вызовах , так и структуру памяти и зависит как от архитектуры, так и от используемого компилятора .
- API или интерфейс прикладного программирования
- Библиотечные и операционные службы могут быть неравномерно доступны для всех вычислительных элементов. [11]
- Низкоуровневая реализация языковых возможностей
- Такие языковые возможности, как функции и потоки, часто реализуются с использованием указателей функций — механизма, который требует дополнительной трансляции или абстракции при использовании в гетерогенных средах.
- Интерфейс и иерархия памяти
- Вычислительные элементы могут иметь разные структуры кэша , протоколы когерентности кэша , а доступ к памяти может быть равномерным или неравномерным ( NUMA ). Различия также могут быть обнаружены в способности считывать произвольные длины данных, поскольку некоторые процессоры/блоки могут выполнять только байтовый, словарный или пакетный доступ. [12]
- Интерконнект
- Вычислительные элементы могут иметь различные типы межсоединений помимо базовых интерфейсов памяти/шины. Это может включать выделенные сетевые интерфейсы, устройства прямого доступа к памяти ( DMA ), почтовые ящики, FIFO и блокнотные памяти и т. д. Кроме того, некоторые части гетерогенной системы могут быть кэш-когерентными, тогда как другие могут требовать явного участия программного обеспечения для поддержания согласованности и когерентности.
- Производительность
- Гетерогенная система может иметь процессоры, идентичные по архитектуре, но имеющие базовые микроархитектурные различия, которые приводят к различным уровням производительности и энергопотребления. Асимметрия возможностей в сочетании с непрозрачными моделями программирования и абстракциями операционной системы иногда может приводить к проблемам предсказуемости производительности, особенно при смешанных рабочих нагрузках.
- Инструменты разработки
- Различные типы процессоров обычно требуют различных инструментов (редакторов, компиляторов и т. д.) для разработчиков программного обеспечения, что усложняет задачу разделения приложения между ними. [13]
- Разделение данных
- Хотя разбиение данных на однородные платформы часто является тривиальной задачей, было показано, что для общего неоднородного случая проблема является NP-полной. [14] Было показано, что для небольшого количества разбиений существуют оптимальные разбиения, которые идеально балансируют нагрузку и минимизируют объем коммуникаций. [15]
Пример оборудования
Гетерогенное вычислительное оборудование можно найти в каждой области вычислений — от высокопроизводительных серверов и высокопроизводительных вычислительных машин до маломощных встраиваемых устройств, включая мобильные телефоны и планшеты.
- Высокопроизводительные вычисления
- Встроенные системы (DSP и мобильные платформы)
- Texas Instruments OMAP (медиа-сопроцессор)
- Analog Devices Blackfin (DSP и медиасопроцессоры)
- Qualcomm Snapdragon (ГП, ЦСП, обработка изображений, иногда сопроцессор ИИ; модем, датчики)
- Nvidia Tegra (ГП; Модем, Датчики)
- Samsung Exynos (ГП; Модем, Датчики)
- Серия Apple "A" (ЦП, ГП; Модем)
- Процессорные блоки Movidius Myriad Vision , в состав которых входят несколько симметричных процессоров, дополненных фиксированными функциональными блоками , и пара контроллеров на базе SPARC .
- SoC HiSilicon Kirin (графический процессор; модем, датчики)
- SoC MediaTek (ГП; модем, датчики)
- Cadence Design Systems Tensilica DSP
- Реконфигурируемые вычисления
- Нетворкинг
- Универсальные вычислительные, игровые и развлекательные устройства
- Процессоры Intel Sandy Bridge, Ivy Bridge и Haswell (интегрированный графический процессор, поддержка OpenCL начиная с Ivy Bridge)
- AMD Excavator и Ryzen APU (интегрированный графический процессор, поддержка OpenCL)
- IBM Cell , используемый в PlayStation 3 (векторный сопроцессор) [16]
- Emotion Engine , используемый в PlayStation 2 (векторные и медиа-сопроцессоры)
- Архитектура ЦП ARM big.LITTLE/DynamIQ (гетерогенная топология)
- Почти все поставщики ARM предлагают гетерогенные решения: ARM, Qualcomm, Nvidia, Apple, Samsung, HiSilicon, MediaTek и т. д.
Смотрите также
Ссылки
- ^ Шан, Амар (2006). Гетерогенная обработка: стратегия усиления закона Мура. Linux Journal.
- ^ "Hetergeneous System Architecture (HSA) Foundation". Архивировано из оригинала 2014-04-23 . Получено 2014-11-01 .
- ^ Венкат, Ашиш; Туллсен, Дин М. (2014). Использование разнообразия ISA: проектирование гетерогенного мультипроцессора ISA Chip. Труды 41-го ежегодного международного симпозиума по архитектуре компьютеров.
- ^ Ананд Лал Шимпи (2014-05-05). "AMD анонсирует проект SkyBridge: совместимые по выводам ARM и x86 SoC в 2015 году, поддержка Android". AnandTech . Получено 2017-06-11 .
В следующем году AMD выпустит маломощную 20-нм SoC на базе Cortex A57 с интегрированным графическим процессором Graphics Core Next.
- ^ "Energy Aware Scheduling". Документация ядра Linux .
- ^ Амадео, Рон (2023-10-24). «Qualcomm Snapdragon 8 Gen 3 обещает на 30 процентов более быстрый процессор». Ars Technica .
- ^ Миттал, Спарш (февраль 2015 г.). «Обзор методов проектирования и управления асимметричными многоядерными процессорами». ACM Computing Surveys . 48 (3): 1–38. doi :10.1145/2856125.
- ^ Кунцман, Д. М. (2011). Программирование гетерогенных систем . Международный симпозиум по параллельной и распределенной обработке. Семинары. doi :10.1109/IPDPS.2011.377.
- ^ Флакс, Брайан (2009). Внедрение гетерогенных процессоров в массовую практику (PDF) . Симпозиум по ускорителям приложений в высокопроизводительных вычислениях (SAAHPC).
- ^ K. Gai; L. Qiu; H. Zhao; M. Qiu (октябрь–декабрь 2020 г.). «Распределение мультимедийных данных с учетом затрат для гетерогенной памяти с использованием генетического алгоритма в облачных вычислениях». IEEE Transactions on Cloud Computing . 8 (4): 1212–1222. doi :10.1109/TCC.2016.2594172.
- ^ Агрон, Джейсон; Эндрюс, Дэвид (2009). Аппаратные микроядра для гетерогенных многоядерных систем . Семинары по параллельной обработке, 2009. Международная конференция по параллельной обработке (ICPPW). doi :10.1109/ICPPW.2009.21.
- ^ Ланг, Йоханнес (2020). Heterogenes Rechnen mit ARM и DSP Multiprozessor-Ein-Chip-Systemen (MSc.). Fachhochschule Форарльберг. дои : 10.25924/опус-4525.
- ^ Вонг, Уильям Г. (30 сентября 2002 г.). «Инструменты имеют значение в разработке программного обеспечения для смешанных процессоров». www.electronicdesign.com . Получено 09.08.2023 .
- ^ Бомон, Оливье; Буде, Винсент; Растелло, Фабрис; Роберт, Ив (август 2002 г.). «Разбиение квадрата на прямоугольники: NP-полнота и алгоритмы аппроксимации» (PDF) . Algorithmica . 34 (3): 217–239. CiteSeerX 10.1.1.3.4967 . doi :10.1007/s00453-002-0962-9. S2CID 9729067.
- ^ Бомон, Оливье; Беккер, Бретт; ДеФлумер, Эшли; Эйро-Дюбуа, Лионель; Ластовецкий, Алексей (июль 2018 г.). «Последние достижения в области матричного разбиения для параллельных вычислений на гетерогенных платформах» (PDF) . Труды IEEE по параллельным и распределенным вычислениям .
- ^ Gschwind, Michael (2005). Новая архитектура SIMD для гетерогенного чипа-мультипроцессора Cell (PDF) . Hot Chips: A Symposium on High Performance Chips. Архивировано из оригинала (PDF) 2020-06-18 . Получено 2014-10-28 .