Гетерогенная системная архитектура - Heterogeneous System Architecture

Гетерогенная системная архитектура (HSA) - это набор спецификаций от разных производителей, который позволяет интегрировать центральные процессоры и графические процессоры на одном автобусе, с общим объем памяти и задачи.[1] HSA разрабатывается Фонд HSA, который включает (среди многих других) AMD и РУКА. Заявленная цель платформы - уменьшить задержка связи между CPU, GPU и другими вычислительные устройства, и сделать эти различные устройства более совместимыми с точки зрения программиста,[2]:3[3] избавляя программиста от задачи планирования перемещения данных между непересекающимися ячейками памяти устройств (что в настоящее время должно быть сделано с OpenCL или же CUDA ).[4]

CUDA и OpenCL, а также большинство других достаточно продвинутых языков программирования могут использовать HSA для повышения производительности выполнения.[5] Гетерогенные вычисления широко используется в система на кристалле такие устройства, как таблетки, смартфоны, другие мобильные устройства и игровые приставки.[6] HSA позволяет программам использовать графический процессор для плавающая точка вычисления без отдельной памяти и расписания.[7]

Обоснование

Обоснование HSA состоит в том, чтобы облегчить нагрузку на программистов при переносе вычислений на GPU. Первоначально разработанная исключительно AMD и называвшаяся FSA, идея была расширена для охвата других процессоров, помимо графических процессоров, например, других производителей. DSP, также.

Современные графические процессоры очень хорошо подходят для работы одна инструкция, несколько данных (SIMD) и одна инструкция, несколько потоков (SIMT), в то время как современные процессоры все еще оптимизируются для ветвления. и Т. Д.

Обзор

Первоначально представленный встроенные системы такой как Ячейка широкополосного доступа совместное использование системной памяти напрямую между несколькими участниками системы делает гетерогенные вычисления более распространенными. Сами по себе гетерогенные вычисления относятся к системам, которые содержат несколько процессоров: центральные процессоры (Процессоры), графические процессоры (Графические процессоры), цифровые сигнальные процессоры (DSP) или любого типа специализированные интегральные схемы (ASIC). Архитектура системы позволяет использовать любой ускоритель, например графический процессор, чтобы работать на том же уровне обработки, что и ЦП системы.

Среди своих основных характеристик HSA определяет унифицированный виртуальное адресное пространство для вычислительных устройств: там, где графические процессоры традиционно имеют собственную память, отдельную от основной (ЦП) памяти, HSA требует, чтобы эти устройства совместно использовали таблицы страниц чтобы устройства могли обмениваться данными путем совместного использования указатели. Это должно поддерживаться заказным блоки управления памятью.[2]:6–7 Для обеспечения возможности взаимодействия, а также для облегчения различных аспектов программирования, HSA предназначен для ЭТО -агностика как для процессоров, так и для ускорителей, а также для поддержки языков программирования высокого уровня.

Пока что спецификации HSA охватывают:

Промежуточный уровень HSA

Промежуточный уровень HSA (HSAIL), a набор виртуальных инструкций для параллельных программ

Модель памяти HSA

  • совместим с C ++ 11, OpenCL, Ява и .СЕТЬ модели памяти
  • расслабленная последовательность
  • разработан для поддержки как управляемых языков (например, Java), так и неуправляемых языков (например, C )
  • значительно упростит разработку сторонних компиляторов для широкого спектра разнородных продуктов, запрограммированных на Фортран, C ++, C ++ AMP, Java и др.

Диспетчер HSA и время выполнения

  • разработан для обеспечения гетерогенной организации очереди задач: рабочая очередь на ядро, распределение работы по очередям, балансировка нагрузки путем кражи работы
  • любое ядро ​​может планировать работу для любого другого, включая себя
  • значительное сокращение накладных расходов на планирование работы ядра

Мобильные устройства являются одной из областей применения HSA, в которой он обеспечивает повышенную энергоэффективность.[6]

Блок-схемы

На приведенных ниже блок-схемах представлены общие иллюстрации того, как работает HSA, и его сравнение с традиционными архитектурами.

Поддержка программного обеспечения

Графические процессоры AMD содержат определенные дополнительные функциональные блоки, предназначенные для использования в рамках HSA. В Linux драйвер ядра amdkfd обеспечивает необходимую поддержку.[9][10]

Некоторые из специфических для HSA функций, реализованных в оборудовании, должны поддерживаться ядро операционной системы и конкретные драйверы устройств. Например, поддержка AMD Radeon и AMD FirePro видеокарты и ВСУ на основе Графическое ядро ​​Next (GCN) был объединен с версией 3.19 Основная линия ядра Linux, выпущенный 8 февраля 2015 года.[10] Программы не взаимодействуют напрямую с amdkfd, но ставят свои задания в очередь, используя среду выполнения HSA.[11] Эта самая первая реализация, известная как amdkfd, фокусируется на "Кавери" или "Berlin" APU и работает вместе с существующим графическим драйвером ядра Radeon.

Кроме того, amdkfd поддерживает неоднородная организация очередей (HQ), цель которого - упростить распределение вычислительных заданий между несколькими процессорами и графическими процессорами с точки зрения программиста. Поддержка для управление неоднородной памятью (ХМ), подходит только для графического оборудования с версией 2 AMD IOMMU, был принят в основную версию ядра Linux 4.14.[12]

Интегрированная поддержка платформ HSA была объявлена ​​для выпуска Sumatra. OpenJDK, срок погашения в 2015 году.[13]

AMD APP SDK это проприетарный комплект для разработки программного обеспечения AMD, предназначенный для параллельных вычислений, доступный для Microsoft Windows и Linux. Bolt - это библиотека шаблонов C ++, оптимизированная для гетерогенных вычислений.[14]

GPUOpen понимает пару других программных инструментов, связанных с HSA. CodeXL версия 2.0 включает профилировщик HSA.[15]

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

AMD

По состоянию на февраль 2015 г., только APU AMD "Kaveri" A-серии (см. Настольные процессоры "Кавери" и Мобильные процессоры "Кавери" ) и Sony PlayStation 4 позволил встроенный графический процессор для доступа к памяти через версию 2 IOMMU AMD. Ранние APU (Trinity и Richland) включали функциональность IOMMU версии 2, но только для использования внешним графическим процессором, подключенным через PCI Express.[нужна цитата ]

APU Carrizo и Bristol Ridge после 2015 года также включают функциональность IOMMU версии 2 для встроенного графического процессора.[нужна цитата ]

В следующей таблице показаны особенности AMD с ВСУ (смотрите также: Список ускоренных процессоров AMD ).

Кодовое названиеСерверБазовыйТоронто
МикроКиото
Рабочий столОсновной потокКарризоБристольский хребетРэйвен РиджПикассоРенуар
ВходLlanoТроицаRichlandКавери
БазовыйКабини
МобильныйСпектакльРенуар
Основной потокLlanoТроицаRichlandКавериКарризоБристольский хребетРэйвен РиджПикассо
ВходДали
БазовыйДесна, Онтарио, СакатеКабини, ТемашБима, МаллинзКарризо-ЛStoney Ridge
ВстроенныйТроицаБелоголовый орланМерлин Сокол,
Коричневый сокол
Большая Рогатая СоваСерый ястребОнтарио, СакатеКабиниСтепной орел, Венценосный орел,
LX-Семья
Калифорнийский соколПолосатая пустельга
ПлатформаВысокая, стандартная и низкая мощностьНизкая и сверхнизкая мощность
ВышелАвгуст 2011 г.Октябрь 2012 г.Июн 2013Январь 2014 г.Июн 2015Июн 2016Октябрь 2017Янв 2019Март 2020 г.Январь 2011 г.Май 2013Апрель 2014 г.Май 2015 г.Февраль 2016 г.Апрель 2019
ЦПУ микроархитектураK10КоперКатокЭкскаватор"Экскаватор + "[16]ДзенДзен +Дзен 2РысьЯгуарПумаПума +[17]"Экскаватор + "Дзен
ЭТОx86-64x86-64
РазъемРабочий столВысокого классаНет данныхНет данных
Основной потокНет данныхAM4
ВходFM1FM2FM2 +[а]Нет данных
БазовыйНет данныхНет данныхAM1Нет данных
ДругойFS1FS1 +, FP2FP3FP4FP5FP6FT1FT3FT3bFP4FP5
PCI Express версия2.03.02.03.0
Fab. (нм )GF 32ШП
(HKMG ТАК ЧТО Я )
GF 28ШП
(HKMG навалом)
GF 14LPP
(FinFET масса)
GF 12LP
(FinFET оптом)
TSMC N7
(FinFET оптом)
TSMC N40
(масса)
TSMC N28
(HKMG навалом)
GF 28SHP
(HKMG навалом)
GF 14LPP
(FinFET масса)
Умереть площадь (мм2)228246245245250210[18]15675 (+ 28 FCH )107?125149
Мин. TDP (Вт)351712104.543.95106
Макс ВСУ TDP (Вт)10095651825
Максимальная базовая частота APU (ГГц)33.84.14.13.73.83.63.73.81.752.222.23.23.3
Максимальное количество APU на узел[b]11
Максимум ЦПУ[c] ядра на ВСУ48242
Максимум потоки на ядро ​​процессора1212
Целочисленная структура3+32+24+24+2+11+1+1+12+24+2
i386, i486, i586, CMOV, NOPL, i686, PAE, Бит NX, CMPXCHG16B, AMD-V, RVI, ПРО и 64-битный LAHF / SAHFдада
IOMMU[d]Нет данныхда
ИМТ1, AES-NI, CLMUL, и F16CНет данныхда
MOVBEНет данныхда
AVIC, ИМТ2 и RDRANDНет данныхда
ADX, SHA, RDSEED, SMAP, SMEP, XSAVEC, XSAVES, XRSTORS, CLFLUSHOPT и CLZEROНет данныхдаНет данныхда
WBNOINVD, CLWB, RDPID, RDPRU и MCOMMITНет данныхдаНет данных
FPUs на основной10.5110.51
Трубы на FPU22
Ширина трубы FPU128 бит256 бит80-битный128 бит
ЦПУ Набор инструкций SIMD уровеньSSE4a[e]AVXAVX2SSSE3AVXAVX2
3DNow!3DNow! +Нет данныхНет данных
PREFETCH / PREFETCHWдада
FMA4, LWP, TBM, и XOPНет данныхдаНет данныхНет данныхдаНет данных
FMA3дада
L1 кэш данных на ядро ​​(КиБ)64163232
Кэш данных L1 ассоциативность (способы)2488
Кешей инструкций L1 на основной10.5110.51
Максимальный общий кэш инструкций L1 APU (КиБ)2561281922565126412896128
Кэш инструкций L1 ассоциативность (способы)2348234
Кеши L2 на основной10.5110.51
Макс.общий кэш L2 APU (МиБ)424121
Кэш L2 ассоциативность (способы)168168
Всего ВСУ Кэш L3 (МиБ)Нет данных48Нет данных4
Кэш APU L3 ассоциативность (способы)1616
Схема кеш-памяти L3ЖертваНет данныхЖертваЖертва
Максимальный запас DRAM поддерживатьDDR3-1866DDR3-2133DDR3-2133, DDR4-2400DDR4-2400DDR4-2933DDR4-3200, LPDDR4-4266DDR3L-1333DDR3L-1600DDR3L-1866DDR3-1866, DDR4-2400DDR4-2400
Максимум DRAM каналов на APU212
Максимальный запас DRAM пропускная способность (ГБ / с) на APU29.86634.13238.40046.93268.25610.66612.80014.93319.20038.400
GPU микроархитектураTeraScale 2 (VLIW5)TeraScale 3 (VLIW4)GCN 2-го поколенияGCN 3-го поколенияGCN 5-го поколения[19]TeraScale 2 (VLIW5)GCN 2-го поколенияGCN 3-го поколения[19]GCN 5-го поколения
GPU Набор инструкцийTeraScale Набор инструкцийНабор инструкций GCNTeraScale Набор инструкцийНабор инструкций GCN
Максимальная базовая частота графического процессора (МГц)6008008448661108125014002100538600?8479001200
Максимальное количество базовых графических процессоров GFLOPS[f]480614.4648.1886.71134.517601971.22150.486???345.6460.8
3D двигатель[грамм]До 400: 20: 8До 384: 24: 6До 512: 32: 8До 704: 44: 16[20]До 512:?:?80:8:4128:8:4До 192:?:?До 192:?:?
IOMMUv1IOMMUv2IOMMUv1?IOMMUv2
Видео декодерУВД 3.0УВД 4.2УВД 6.0VCN 1.0[21]VCN 2.0[22]УВД 3.0УВД 4.0УВД 4.2УВД 6.0УВД 6.3VCN 1.0
Кодировщик видеоНет данныхVCE 1.0VCE 2.0VCE 3.1Нет данныхVCE 2.0VCE 3.1
Энергосбережение GPUPowerPlayPowerTunePowerPlayPowerTune[23]
TrueAudioНет данныхда[24]Нет данныхда
FreeSync1
2
1
2
HDCP[час]?1.41.4
2.2
?1.41.4
2.2
PlayReady[час]Нет данных3.0 еще нетНет данных3.0 еще нет
Поддерживаемые дисплеи[я]2–32–433 (рабочий стол)
4 (мобильный, встроенный)
4234
/ DRM / radeon[j][26][27]даНет данныхдаНет данных
/ drm / amdgpu[j][28]Нет данныхда[29]даНет данныхда[29]да
  1. ^ Модели APU: A8-7680, A6-7480. Только процессор: Athlon X4 845.
  2. ^ ПК будет одним узлом.
  3. ^ APU сочетает в себе процессор и графический процессор. У обоих есть ядра.
  4. ^ Требуется поддержка прошивки.
  5. ^ Нет SSE4. Нет SSSE3.
  6. ^ Одинарная точность производительность рассчитывается исходя из базовой (или ускоренной) тактовой частоты ядра на основе FMA операция.
  7. ^ Унифицированные шейдеры  : блоки наложения текстуры  : единицы вывода рендеринга
  8. ^ а б Для воспроизведения защищенного видеоконтента также требуется поддержка карты, операционной системы, драйверов и приложений. Для этого также необходим совместимый дисплей HDCP. HDCP является обязательным для вывода определенных аудиоформатов, что накладывает дополнительные ограничения на настройку мультимедиа.
  9. ^ Чтобы питать более двух дисплеев, дополнительные панели должны иметь собственный DisplayPort поддерживать.[25] В качестве альтернативы можно использовать активные адаптеры DisplayPort-to-DVI / HDMI / VGA.
  10. ^ а б DRM (Менеджер прямого рендеринга ) является компонентом ядра Linux. Поддержка в этой таблице относится к самой последней версии.

РУКА

Руки Bifrost микроархитектура, реализованная в Mali-G71,[30] полностью соответствует техническим характеристикам оборудования HSA 1.1. По состоянию на июнь 2016 г., ARM не объявила о поддержке программного обеспечения, которое использовало бы эту аппаратную функцию.

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

Рекомендации

  1. ^ Тарун Айер (30 апреля 2013 г.). «AMD представляет свою технологию гетерогенного равномерного доступа к памяти (hUMA)». Оборудование Тома.
  2. ^ а б Георгий Кириазис (30 августа 2012 г.). Архитектура гетерогенной системы: технический обзор (PDF) (Отчет). AMD. Архивировано из оригинал (PDF) 28 марта 2014 г.. Получено 26 мая 2014.
  3. ^ "Что такое архитектура гетерогенных систем (HSA)?". AMD. Архивировано из оригинал 21 июня 2014 г.. Получено 23 мая 2014.
  4. ^ Джоэл Хруска (26 августа 2013 г.). «Установка HSAIL: AMD объясняет будущее сотрудничества CPU / GPU». ExtremeTech. Зифф Дэвис.
  5. ^ Линаро. «LCE13: Архитектура гетерогенной системы (HSA) на ARM». slideshare.net.
  6. ^ а б «Архитектура гетерогенных систем: назначение и перспективы». gpuscience.com. 9 ноября 2012. Архивировано с оригинал 1 февраля 2014 г.. Получено 24 мая 2014.
  7. ^ «Гетерогенная системная архитектура: многоядерная обработка изображений с использованием сочетания элементов CPU и GPU». Проектирование встроенных вычислений. Получено 23 мая 2014.
  8. ^ «Микроархитектура Кавери». Полуточный. 15 января 2014 г.
  9. ^ Майкл Ларабель (21 июля 2014 г.). «Драйвер AMDKFD все еще развивается для HSA с открытым исходным кодом в Linux». Фороникс. Получено 21 января 2015.
  10. ^ а б «Ядро Linux 3.19, раздел 1.3. Драйвер HSA для устройств AMD GPU». kernelnewbies.org. 8 февраля 2015 г.. Получено 12 февраля 2015.
  11. ^ "HSA-Runtime-Reference-Source / README.md на главном сервере". github.com. 14 ноября 2014 г.. Получено 12 февраля 2015.
  12. ^ «Анонсировано ядро ​​Linux 4.14 с безопасным шифрованием памяти и др.». 13 ноября 2017.
  13. ^ Алекс Вуди (26 августа 2013). «Фонд HSA стремится повысить производительность графических процессоров Java». HPCwire.
  14. ^ "Болт на гитхабе".
  15. ^ AMD GPUOpen (19 апреля 2016 г.). «CodeXL 2.0 включает профилировщик HSA».
  16. ^ «AMD представляет APU 7-го поколения: Excavator mk2 в Бристоль-Ридж и Стони-Ридж для ноутбуков». 31 мая 2016. Получено 3 января 2020.
  17. ^ Семейство гибридных процессоров AMD Mobile Carrizo, призванных обеспечить значительный скачок в производительности и энергоэффективности в 2015 году » (Пресс-релиз). 20 ноября 2014 г.. Получено 16 февраля 2015.
  18. ^ «Руководство по сравнению мобильных процессоров, версия 13.0, стр. 5: Полный список мобильных процессоров AMD». TechARP.com. Получено 13 декабря 2017.
  19. ^ а б «Графические процессоры AMD VEGA10 и VEGA11 обнаружены в драйвере OpenCL». VideoCardz.com. Получено 6 июн 2017.
  20. ^ Катресс, Ян (1 февраля 2018 г.). «Ядра Zen и Vega: APU Ryzen для AM4 - AMD Tech Day на CES: Обнародована дорожная карта 2018, с APU Ryzen, Zen + на 12-нм, Vega на 7-нм». Анандтех. Получено 7 февраля 2018.
  21. ^ Ларабель, Майкл (17 ноября 2017 г.). «Поддержка кодирования Radeon VCN появляется в Mesa 17.4 Git». Фороникс. Получено 20 ноября 2017.
  22. ^ Лю, Лев (4 сентября 2020 г.). "Добавить поддержку Renoir VCN decode". Получено 11 сентября 2020. Имеет тот же блок VCN2.x, что и Navi1x
  23. ^ Тони Чен; Джейсон Гривз, «Архитектура AMD Graphics Core Next (GCN)» (PDF), AMD, получено 13 августа 2016
  24. ^ «Технический взгляд на архитектуру AMD Kaveri». Полуточный. Получено 6 июля 2014.
  25. ^ «Как подключить три или более монитора к графической карте AMD Radeon ™ HD 5000, HD 6000 и HD 7000?». AMD. Получено 8 декабря 2014.
  26. ^ Эйрли, Дэвид (26 ноября 2009 г.). «DisplayPort поддерживается драйвером KMS, встроенным в ядро ​​Linux 2.6.33». Получено 16 января 2016.
  27. ^ "Матрица функций Radeon". freedesktop.org. Получено 10 января 2016.
  28. ^ Дойче, Александр (16 сентября 2015 г.). "XDC2015: AMDGPU" (PDF). Получено 16 января 2016.
  29. ^ а б Мишель Дэнзер (17 ноября 2016 г.). "[ОБЪЯВЛЕНИЕ] xf86-video-amdgpu 1.2.0". lists.x.org.
  30. ^ «Архитектура графического процессора ARM Bifrost». 30 мая 2016 г.

внешняя ссылка