Гетерогенная системная архитектура

редактировать

Гетерогенная системная архитектура (HSA ) - это набор спецификаций от разных поставщиков, который позволяет интеграция центральных процессоров и графических процессоров на одной шине, с общей памятью и задачами. HSA разрабатывается HSA Foundation, которая включает (среди многих других) AMD и ARM. Заявленная цель платформы - уменьшить задержку связи между процессорами, графическими процессорами и другими вычислительными устройствами и сделать эти различные устройства более совместимыми с точки зрения программиста, освобождая программиста от задачи планирования перемещение данных между непересекающейся памятью устройств (как в настоящее время должно быть сделано с OpenCL или CUDA ).

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

Содержание
  • 1 Обоснование
  • 2 Обзор
    • 2.1 Промежуточный уровень HSA
    • 2.2 Модель памяти HSA
    • 2.3 Диспетчер HSA и среда выполнения
    • 2.4 Блок-схемы
  • 3 Поддержка программного обеспечения
  • 4 H поддержка ardware
    • 4.1 AMD
    • 4.2 ARM
  • 5 См. также
  • 6 Ссылки
  • 7 Внешние ссылки
Обоснование

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

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

Обзор

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

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

На данный момент спецификации HSA охватывают:

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

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

  • аналогично Промежуточное представление LLVM и SPIR (используется OpenCL и Vulkan )
  • , завершено до определенного набора инструкций Компилятор JIT
  • поздно принимает решение о том, какое ядро ​​(а) должно запускать задачу
  • явно параллельную
  • поддерживает исключения, виртуальные функции и другие высокоуровневые функции
  • отладка поддержка

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

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

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

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

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

Блок-схемы

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

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

Некоторые из специфических для HSA функций, реализованных в оборудовании, должны поддерживаться ядром операционной системы и конкретными драйверами устройств. Например, была объединена поддержка видеокарт AMD Radeon и AMD FirePro и APU на основе Graphics Core Next (GCN). в версию 3.19 основной ветки ядра Linux, выпущенную 8 февраля 2015 года. Программы не взаимодействуют напрямую с amdkfd, но ставят свои задания в очередь, используя среду выполнения HSA. Эта самая первая реализация, известная как amdkfd, ориентирована на APU «Kaveri» или «Berlin» и работает вместе с существующим графическим драйвером ядра Radeon.

Кроме того, amdkfd поддерживает гетерогенную организацию очередей (HQ), которая направлена ​​на упрощение распределения вычислительных заданий между несколькими CPU и GPU с точки зрения программиста. Поддержка управления гетерогенной памятью (HMM), подходящая только для графического оборудования с версией 2 IOMMU AMD, была принята в основной версии ядра Linux версии 4.14.

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

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

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

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

AMD

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

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

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

[] [
  • view
  • talk
]
CodenameServerBasicToronto
MicroKyoto
DesktopMainstreamCarrizo Bristol Ridge Raven Ridge Picasso Renoir
EntryLlano Trinity Richland Kaveri
БазовыйKabini
MobilePerformanceRenoir
MainstreamLlano Trinity Richland Kaveri Carrizo Bristol Ridge Рэйвен Ридж Пикассо
ЗаписьДали
БазовыйДесна, Онтарио, Закате Кабини, Темаш Бима, Маллинс Карризо-Л Стони Ридж
ВстроенныйТринити Белоголовый орлан Мерлин Сокол,. Бурый сокол Большая рогатая сова Онтарио, Закате Кабини Степной орел, Crowned Eagle,. Семейство LX Калифорнийский сокол Полосатая пустельга
ПлатформаВысокая, стандартная и низкая мощностьНизкая и сверхнизкая мощность
Выпущеноавг.2011окт 2012июн 2013янв 2014июн 2015Июн 2016октябрь 2017янв 2019март 2020янв 2011май 2013апр 2014май 2015февраль 2016апр 2019
CPU микроархитектура K10 Piledriver Steamroller Excavator "Экскаватор + "Zen Zen + Zen 2 Bobcat Jaguar Puma Puma + "Экскаватор + "Zen
ISA x86-64 x86-64
Socket DesktopHigh-endN / AN / A
MainstreamН / ДAM4
ЗаписьFM1 FM2 FM2 + Н / Д
БазовыйН / ДН / Д AAM1 Н / Д
ДругоеFS1 FS1 +, FP2 FP3 FT1 FT3 FT3b
PCI Express версия2.03.02.03.0
Fab. (nm )GF 32SHP. (HKMG SOI )GF 28SHP ​​. (HKMG навалом)GF 14LPP. (FinFET навалом)GF 12LP. (навалом FinFET)TSMC N7. (навалом FinFET)TSMC N40. (навалом)TSM C N28. (HKMG навалом)GF 28SHP. (HKMG bulk)GF 14LPP. (FinFET навалом)
Площадь штампа (мм)22824624524525021015675 (+ 28 FCH )107?125149
Min TDP (Вт)351712104,543,95106
Макс.APU TDP (W)10095651825
Макс.базовая частота базового APU (ГГц)33,84,14,13,73,83,63,73,81,752,222,23,23,3
Макс. Количество APU на узел11
Макс. ЦП ядер на APU48242
Макс. потоков на ядро ​​ЦП1212
Целочисленная структура3 + 32 + 24+24+2+11+1+1+12+24 + 2
i386, i486, i586, CMOV, NOPL, i686, PAE, NX bit, CMPXCHG16B, AMD-V, RVI, ABM и 64-битный LAHF / SAHFДа Да
IOMMU Н / ДДа
BMI1, AES-NI, CLMUL, и F16C Н / ДДа
MOVBEН / ДДа
AVIC, BMI2 и RDRAND Н / ДДа
ADX, SHA, RDSEED, SMAP, SMEP, XSAVEC, XSAVES, XRSTORS, CLFLUSHOPT и CLZEROН / ДДа Н / ДДа
WBNOINVD, CLWB, RDPID, RDPRU и MCOMMITН / ДДа Н / Д
FPU на core 10,5110,51
Количество каналов на FPU22
Ширина канала FPU128-бит256-бит80-бит128-битный
CPU набор команд SIMD levelSSE4a AVX AVX2 SSSE3 AVX AVX2
3DNow! 3DNow! + Н / ДН / Д
PREFETCH / PREFETCHW Да Да
FMA4, LWP, TBM и XOP N/AДа N/AN / AДа N / A
FMA3 Да Да
L1 кэш данных на ядро ​​(KiB)64163232
Кэш данных L1 ассоциативность (способы)2488
Кеши инструкций L1 на ядро ​​ 10,5110,51
Максимальный общий кэш инструкций L1 APU (КиБ)2561281922565126412896128
Кэш инструкций L1 ассоциативность (способы)2348234
кешей L2 на ядро ​​ 10,5110,51
Макс.общий кэш L2 APU (MiB)424121
кэш L2 ассоциативность (способы)168168
APU total L3 cache (MiB)N / A48N / A4
APU L3 cache ассоциативность (способы)1616
Схема кэша L3Жертва Н / ДЖертваЖертва
Максимальный запас DRAM поддержкаDDR3-1866 DDR3-2133 DDR3-2133, DDR4-2400 DDR4-2400 DDR4-2933 DDR4-3200, LPDDR4-4266 DDR3L-1333 DDR3L-1600 DDR3L-1866 DDR3-1866, DDR4-2400 DDR4-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-го поколения TeraScale 2 (VLIW5) GCN 2-го поколения GCN 3-го поколения GCN 5-го поколения
GPU набор команд TeraScale набор команднабор команд GCN TeraScale набор командНабор команд GCN
Максимальная базовая частота графического процессора (МГц)6008008448661108125014002100538600?8479001200
Макс. Базовая база графического процессора GFLOPS 480614,4648.1886,71134,517601971,22150,486???345,6460,8
3D-движокДо 400: 20: 8До 384: 24: 6До 512: 32: 8До 704: 44: 16До 512:?:?80: 8: 4128: 8: 4До 192:?:?До 192:?:?
IOMMUv1IOMMUv2 IOMMUv1?IOMMUv2
ВидеодекодерUVD 3.0 UVD 4.2 UVD 6.0 VCN 1.0 VCN 2.0 UVD 3.0 UVD 4.0 UVD 4.2 UVD 6.0 UVD 6.3 VCN 1.0
ВидеокодерН / ДVCE 1.0 VCE 2.0 VCE 3.1 Н / ДVCE 2.0 VCE 3.1
Энергосбережение графического процессораPowerPlay PowerTune PowerPlay PowerTune
TrueAudio Н / ПДа Н / ДДа
FreeSync 1. 21. 2
HDCP ?1.41.4. 2.2?1.41.4. 2.2
PlayReady Н / Д3.0 еще нетН / Д3.0 еще нет
Поддерживаемые дисплеи 2–32– 433 (настольный компьютер). 4 (мобильный, встроенный)4234
/ drm / radeonДа н / дДа н / д
/ drm / amdgpuн / дДа Да Н / ДДа Да

ARM

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

См. Также
Ссылки
Внешние ссылки
На Викискладе есть материалы, связанные с Архитектура гетерогенной системы.

Последняя правка сделана 2021-05-23 10:46:31
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте