이기종 시스템 아키텍처

Heterogeneous System Architecture

이기종 시스템 아키텍처(HSA)는 여러 벤더의 사양을 조합한 것으로, 같은 버스상의 중앙 처리 장치와 그래픽 프로세서를 공유 메모리[1]태스크와 통합할 수 있습니다.HSAAMDARM을 포함한 HSA Foundation에 의해 개발되고 있습니다.이 플랫폼의 목표, 그리고 이러한 다양한 장치가 프로그래머의 perspective,[2]에서 호환이 가능하도록 만들거나 이중 코어 CPUGPUs과 다른 컴퓨팅 장치 사이에 의사 전달 지연을 줄이기 위해:3[3]데이터의 장치의 차갑기억(현재 OpenCL 또는 CUDA야 합니다)사이의 움직이는 계획의 일의 프로그래머가 생각한다.[4]

CUDA 및 OpenCL 및 기타 대부분의 고급 프로그래밍 언어는 HSA를 사용하여 실행 [5]성능을 향상시킬 수 있습니다.이기종 컴퓨팅은 태블릿, 스마트폰, 기타 모바일 기기 및 비디오 게임 [6]콘솔과 같은 시스템 온 칩 기기에 널리 사용됩니다.HSA를 통해 프로그램은 별도의 메모리나 스케줄링 [7]없이 부동소수점 계산에 그래픽 프로세서를 사용할 수 있습니다.

근거

HSA의 이면에는 계산을 GPU에 오프로드할 때 프로그래머의 부담을 경감하는 것이 있습니다.원래는 AMD에 의해서만 행해져 FSA라고 불리고 있었습니다만, 이 아이디어는 GPU 이외의 처리 유닛(예를 들면, 다른 제조원의 DSP)에도 포함되게 되었습니다.

최신 GPU는 단일 명령, 다중 데이터(SIMD) 및 단일 명령, 다중 스레드(SIMT) 실행에 매우 적합하지만 최신 CPU는 여전히 분기 등에 최적화되어 있습니다.

개요

원래 Cell Broadband Engine같은 임베디드 시스템에 의해 도입된 시스템 메모리를 여러 시스템 행위자 간에 직접 공유함으로써 이기종 컴퓨팅이 더욱 주류를 이루게 됩니다.이기종 컴퓨팅이란 중앙처리장치(CPU), 그래픽처리장치(GPU), 디지털신호처리장치(DSP), 또는 모든 종류의 애플리케이션 고유의 집적회로(ASIC) 등 여러 개의 처리장치를 포함하는 시스템을 말합니다.시스템 아키텍처에서는 그래픽 프로세서 등의 액셀러레이터가 시스템의 CPU와 같은 처리 레벨로 동작합니다.

주요 기능 중 HSA는 컴퓨팅 디바이스를 위한 통합 가상 주소 공간을 정의합니다.GPU에는 메인(CPU) 메모리와는 별도로 독자적인 메모리가 있습니다.HSA에서는 디바이스가 포인터를 공유함으로써 데이터를 교환할 수 있도록 이들 디바이스가 페이지 테이블을 공유해야 합니다.이는 커스텀 메모리 관리 [2]: 6–7 유닛에서 지원됩니다.HSA는 CPU와 액셀러레이터 모두에서 ISA에 의존하지 않고 높은 수준의 프로그래밍 언어를 지원하는 것을 목적으로 하고 있습니다.

지금까지의 HSA 사양은 다음과 같습니다.

HSA 중간층

병렬 프로그램용 가상 명령어 세트인 HSAIL(Hetterific System Architeric System Architecture Intermediate Language)

  • LLVM Intermediate Representation Spir(OpenCL 및 Vulkan에서 사용)와 유사합니다[according to whom?].
  • JIT 컴파일러에 의한 특정 명령어 세트 완료
  • 어떤 핵심이 작업을 수행해야 하는지에 대한 결정을 늦게 결정하다
  • 명백하게 평행한
  • 는 예외, 가상 기능 및 기타 고급 기능을 지원합니다.
  • 디버깅 지원

HSA 메모리 모델

  • C++11, OpenCL, Java 호환됩니다.NET 메모리 모델
  • 완만한 일관성
  • 관리 대상 언어(Java 등)와 관리 대상 언어(C )를 모두 지원하도록 설계되어 있습니다.
  • 는, Fortran, C++, C++ AMP, Java등의 다양한 이종 제품용의 서드 파티제의 컴파일러의 개발을 용이하게 합니다.

HSA 디스패처 및 런타임

  • 이기종 태스크 큐잉을 가능하게 하는 설계: 코어 단위의 작업 큐, 큐로의 작업 분산, 작업 도용을 통한 로드 밸런싱
  • 모든 핵심이 다른 모든 작업을 스케줄 할 수 있으며, 그 자체도 포함).
  • 핵심 작업 스케줄 작업의 오버헤드의 대폭적인 삭감

모바일 디바이스는 HSA의 어플리케이션 영역 중 하나로 전력 효율이 [6]향상됩니다.

블록 다이어그램

다음 그림은 HSA에서의 CPU-GPU 조정과 기존 아키텍처에서의 조정을 비교한 것입니다.

소프트웨어 지원

AMD GPU에는 HSA의 일부로 사용하는 특정 추가 기능 유닛이 포함되어 있습니다.Linux의 경우 커널 드라이버amdkfd는 필요한 [9][10]지원을 제공합니다.

하드웨어에 실장되어 있다HSA 고유의 기능의 일부는 운영체제커널과 특정 디바이스 드라이버에 의해 지원되어야 합니다.예를 들어 AMD Radeon 및 AMD FirePro 그래픽 카드 및 Graphics Core Next(GCN) 기반 APU 지원은 2015년 [10]2월 8일에 출시된 Linux 커널 메인라인 버전 3.19로 통합되었습니다.프로그램은 amdkfd와 직접 상호 작용하지 않지만 HSA [11]런타임을 사용하여 작업을 대기열에 넣습니다.amdkfd로 알려진 이 첫 번째 구현은 "Kaveri" 또는 "Berlin" APU에 중점을 두고 기존 Radeon 커널 그래픽 드라이버와 함께 작동합니다.

또한 amdkfd이기종 큐잉(HQ)을 지원합니다.이는 프로그래머의 관점에서 여러 CPU 및 GPU 간의 컴퓨팅 작업 분산을 단순화하는 것을 목적으로 합니다.AMD의 IOMMU 버전2를 탑재한 그래픽 하드웨어에만 적합한 이기종 메모리 관리(HM)는 Linux 커널 메인라인 버전 4.14에서 [12]지원되었습니다.

HSA 플랫폼 통합 지원은 2015년 [13]예정된 OpenJDK의 "Sumatra" 릴리즈에 대해 발표되었습니다.

AMD APP SDK는 병렬 컴퓨팅을 대상으로 하는 AMD의 독자 소프트웨어 개발 키트이며 Microsoft Windows 및 Linux에서 사용할 수 있습니다.Bolt는 이종 [14]컴퓨팅용으로 최적화된 C++ 템플릿 라이브러리입니다.

GPUOpen에는 HSA와 관련된 몇 가지 다른 소프트웨어 도구가 포함되어 있습니다.CodeXL 버전 2.0에는 HSA 프로파일러가 [15]포함되어 있습니다.

하드웨어 지원

AMD

2015년 2월 현재 AMD의 "Kaveri" A 시리즈 APU만 있습니다(cf."Kaveri" 데스크톱 프로세서 및 "Kaveri" 모바일 프로세서)와 Sony의 PlayStation 4는 내장 GPU가 AMD의 IOMMU 버전 2를 통해 메모리에 액세스할 수 있도록 했습니다.이전 APU(트리니티 및 리치랜드)에는 버전 2의 IOMMU 기능이 포함되었지만 [citation needed]외부 GPU를 통해 연결된 PCI를 통해서만 사용할 수 있습니다.

2015년 이후의 Carrizo 및 Bristol Ridge APU에는 통합 [citation needed]GPU용 버전2 IOMMU 기능도 포함되어 있습니다.

다음 표에 AMD의 APU 기능을 나타냅니다(참조 항목:AMD 액셀러레이션 처리 장치 목록).

플랫폼 고출력, 표준전력 및 저전력 저전력 및 초저전력
코드명 서버 기본의 토론토
마이크로 교토
데스크톱 성능 르누아르 세잔
메인스트림 라노 삼위일체 리치랜드 카베리 Kaveri 리프레시(고다바리프레시 카리조 브리스톨 능선 레이븐 리지 피카소
엔트리
기본의 카비니
모바일. 성능 르누아르 세잔 렘브란트
메인스트림 라노 삼위일체 리치랜드 카베리 카리조 브리스톨 능선 레이븐 리지 피카소
엔트리 달리
기본의 데스나, 온타리오, 자케이트 카비니 주, 테마시 비마, 멀린스 카리조 L 스토니리지
내장 삼위일체 흰머리 독수리 멀린 팔콘,
갈색 매
큰뿔올빼미 그레이 호크 온타리오, 자카테 카비니 스텝 이글, 크라운 이글
LX 패밀리
프레리 팔콘 밴딩 케스트렐
방출된 2011년 8월 2012년 10월 2013년 6월 2014년 1월 2015 2015년 6월 2016년 6월 2017년 10월 2019년 1월 2020년 3월 2021년 1월 2022년 1월 2011년 1월 2013년 5월 2014년 4월 2015년 5월 2016년 2월 2019년 4월
CPU 마이크로아키텍처 K10 스택드라이버 증기 롤러 굴착기 "엑스커베이터+"[16] 젠플러스 젠 2 젠3 Zen 3 이상 밥캣 재규어 푸마 푸마+[17] "엑스커베이터+"
ISA x86-64 x86-64
소켓 데스크 톱 하이엔드
메인스트림 AM4
엔트리 FM1 FM2 FM2+[a]
기본의 AM1
다른. FS1 FS1+, FP2 FP3 FP4 FP5 FP6 FP7 FT1 FT3 FT3b FP4 FP5
PCI Express 버전 2.0 3.0 4.0 2.0 3.0
Fab. (nm) GF32 SHP
(HKMGSOI)
GF 28SHP
(HKMG 벌크)
GF 14LPP
(FinFET 벌크)
GF 12LP
(FinFET 벌크)
TSMCN7
(FinFET 벌크)
TSMC N6
(FinFET 벌크)
TSMC N40
(표준)
TSMC N28
(HKMG 벌크)
GF 28SHP
(HKMG 벌크)
GF 14LPP
(FinFET 벌크)
다이 면적(mm2) 228 246 245 245 250 210[18] 156 180 210 75 (+28 FCH) 107 ? 125 149
최소 TDP(W) 35 17 12 10 15 4.5 4 3.95 10 6
최대 APU TDP(W) 100 95 65 45 18 25
최대 재고 APU 기준 클럭(GHz) 3 3.8 4.1 4.1 3.7 3.8 3.6 3.7 3.8 4.0 3.3 1.75 2.2 2 2.2 3.2 2.6
노드당[b] 최대 APU 수 1 1
APU당 최대 CPU[c] 코어 수 4 8 2 4 2
CPU 코어당 최대 스레드 수 1 2 1 2
i386, i486, i586, CMOV, NOL, i686, PAE, NX 비트, CMPXCHG16B, AMD-V, RVI, ABM 및 64 비트 LAHF/SAHF Yes Yes
IOMMU[d] Yes
BMI1, AES-NI, CLMULF16C Yes
움직임 Yes
AVIC, BMI2, RDRAND Yes
ADX, SHA, RDSEED, SMAP, SMEP, XSAVEC, XSAVES, XRSTors, CLFLUSHOPT 및 CLZERO Yes Yes
WBNOINVD, CLWB, RDPID, RDPRU 및 MCOMMIT Yes
코어당 FPU 수 1 0.5 1 1 0.5 1
FPU당 파이프 수 2 2
FPU 파이프 폭 128비트 256비트 80비트 128비트
CPU 명령 집합 SIMD 수준 SSE4a[e] AVX AVX2 SSE3 AVX AVX2
3DNow! Yes
FMA4, LWP, TBMXOP Yes Yes
FMA3 Yes Yes
코어당 L1 데이터 캐시(KiB) 64 16 32 32
L1 데이터 캐시 관련성(방법) 2 4 8 8
코어당 L1 명령 캐시 수 1 0.5 1 1 0.5 1
최대 APU 총 L1 명령 캐시(KiB) 256 128 192 256 64 128 96 128
L1 명령 캐시의 어소시에이티비티 2 3 4 8 2 3 4
코어당 L2 캐시 수 1 0.5 1 1 0.5 1
최대 APU 합계 L2 캐시(MiB) 4 2 4 1 2 1
L2 캐시 어소시에이티비티(웨이) 16 8 16 8
APU 총 L3 캐시(MiB) 4 8 16 4
APU L3 캐시 관련성(방법) 16 16
L3 캐시 스킴 피해자. 피해자.
최대 재고 DRAM 지원 DDR3-1866 DDR3-2133 DDR3-2133, DDR4-2400 DDR4-2400 DDR4-2933 DDR4-3200, LPDDR4-4266 DDR5-4800, LPDDR5-6400 DDR3L-1333 DDR3L-1600 DDR3L-1866 DDR3-1866, DDR4-2400 DDR4-2400
APU당 최대 DRAM 채널 수 2 1 2
APU당 최대 재고 DRAM 대역폭(GB/s) 29.866 34.132 38.400 46.932 68.256 102.400 10.666 12.800 14.933 19.200 38.400
GPU 마이크로아키텍처 테라스케일 2(VLIW5) 테라스케일3(VLIW4) GCN 제2세대 GCN 제3세대 GCN 제5세대[19] RDNA 제2세대 테라스케일 2(VLIW5) GCN 제2세대 GCN 제3세대[19] GCN 제5세대
GPU 명령 세트 TeraScale 명령 집합 GCN 명령 세트 RDNA 명령 세트 TeraScale 명령 집합 GCN 명령 세트
최대 재고 GPU 기본 클럭(MHz) 600 800 844 866 1108 1250 1400 2100 2400 538 600 ? 847 900 1200
GPU 기반[f] GPU 최대 재고 수 480 614.4 648.1 886.7 1134.5 1760 1971.2 2150.4 3686.4 86 ? ? ? 345.6 460.8
3차원[g] 엔진 최대 400:20:8 최대 384:24:6 최대 512:32:8 최대 704:44:16[20] 최대 512:32:8 768:48:8 80:8:4 128:8:4 최대 192:?: 최대 192:?:
IOMMUv1 IOMMUv2 IOMMUv1 ? IOMMUv2
비디오 디코더 UVD 3.0 UVD 4.2 UVD 6.0 VCN 1.0[21] VCN 2.1[22] VCN 2.2[22] VCN 3.1 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
AMD Fluid Motion No Yes No No Yes No
GPU 전력 절약 PowerPlay PowerTune PowerPlay PowerTune[23]
True Audio Yes[24] ? Yes
프리싱크 1
2
1
2
HDCP[h] ? 1.4 1.4
2.2
? 1.4 1.4
2.2
플레이레디[h] 3.0 미정 3.0 미정
지원되는 디스플레이[i] 2–3 2–4 3 3(표준)
4 (모바일, 내장)
4 2 3 4
/drm/radeon[j][26][27] Yes Yes
/drm/amdgpu[j][28] Yes[29] Yes[29]
  1. ^ FM2+ 굴착기 모델: A8-7680, A6-7480 및 Athlon X4 845.
  2. ^ PC는 하나의 노드입니다.
  3. ^ APU는 CPU와 GPU를 결합합니다.둘 다 코어가 있어요
  4. ^ 펌웨어 지원이 필요합니다.
  5. ^ SSE4는 없습니다.SSE3는 없습니다.
  6. ^ 단정도 성능은 FMA 연산에 기초하여 베이스(또는 부스트) 코어 클럭 속도에서 계산됩니다.
  7. ^ 유니파이드 셰이더: 텍스처 매핑 단위: 렌더 출력 단위
  8. ^ a b 보호된 비디오 콘텐츠를 재생하려면 카드, 운영 체제, 드라이버 및 응용 프로그램 지원도 필요합니다.이를 위해서는 호환되는 HDCP 디스플레이도 필요합니다.HDCP는 특정 오디오 형식의 출력에 필수적이며 멀티미디어 설정에 추가적인 제약을 가합니다.
  9. ^ 3개 이상의 디스플레이를 공급하려면 추가 패널이 기본 DisplayPort를 [25]지원해야 합니다.또는 액티브한 DisplayPort-to-DVI/HDMI/VGA 어댑터를 사용할 수 있습니다.
  10. ^ a b DRM(Direct Rendering Manager)은 Linux 커널의 컴포넌트입니다.이 표의 지원은 최신 버전을 나타냅니다.

ARM의 Bifrost 마이크로아키텍처는 Mali-G71에 [30]실장되어 있으며 HSA 1.1 하드웨어 사양에 완전히 준거하고 있습니다.2016년 6월 현재 ARM은 이 하드웨어 기능을 사용하는 소프트웨어 지원을 발표하지 않았습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Tarun Iyer (30 April 2013). "AMD Unveils its Heterogeneous Uniform Memory Access (hUMA) Technology". Tom's Hardware.
  2. ^ a b George Kyriazis (30 August 2012). Heterogeneous System Architecture: A Technical Review (PDF) (Report). AMD. Archived from the original (PDF) on 28 March 2014. Retrieved 26 May 2014.
  3. ^ "What is Heterogeneous System Architecture (HSA)?". AMD. Archived from the original on 21 June 2014. Retrieved 23 May 2014.
  4. ^ Joel Hruska (26 August 2013). "Setting HSAIL: AMD explains the future of CPU/GPU cooperation". ExtremeTech. Ziff Davis.
  5. ^ Linaro (21 March 2014). "LCE13: Heterogeneous System Architecture (HSA) on ARM". slideshare.net.
  6. ^ a b "Heterogeneous System Architecture: Purpose and Outlook". gpuscience.com. 9 November 2012. Archived from the original on 1 February 2014. Retrieved 24 May 2014.
  7. ^ "Heterogeneous system architecture: Multicore image processing using a mix of CPU and GPU elements". Embedded Computing Design. Retrieved 23 May 2014.
  8. ^ "Kaveri microarchitecture". SemiAccurate. 15 January 2014.
  9. ^ Michael Larabel (21 July 2014). "AMDKFD Driver Still Evolving For Open-Source HSA On Linux". Phoronix. Retrieved 21 January 2015.
  10. ^ a b "Linux kernel 3.19, Section 1.3. HSA driver for AMD GPU devices". kernelnewbies.org. 8 February 2015. Retrieved 12 February 2015.
  11. ^ "HSA-Runtime-Reference-Source/README.md at master". github.com. 14 November 2014. Retrieved 12 February 2015.
  12. ^ "Linux Kernel 4.14 Announced with Secure Memory Encryption and More". 13 November 2017.
  13. ^ Alex Woodie (26 August 2013). "HSA Foundation Aims to Boost Java's GPU Prowess". HPCwire.
  14. ^ "Bolt on github". GitHub. 11 January 2022.
  15. ^ AMD GPUOpen (19 April 2016). "CodeXL 2.0 includes HSA profiler".
  16. ^ "AMD Announces the 7th Generation APU: Excavator mk2 in Bristol Ridge and Stoney Ridge for Notebooks". 31 May 2016. Retrieved 3 January 2020.
  17. ^ "AMD Mobile "Carrizo" Family of APUs Designed to Deliver Significant Leap in Performance, Energy Efficiency in 2015" (Press release). 20 November 2014. Retrieved 16 February 2015.
  18. ^ "The Mobile CPU Comparison Guide Rev. 13.0 Page 5 : AMD Mobile CPU Full List". TechARP.com. Retrieved 13 December 2017.
  19. ^ a b "AMD VEGA10 and VEGA11 GPUs spotted in OpenCL driver". VideoCardz.com. Retrieved 6 June 2017.
  20. ^ Cutress, Ian (1 February 2018). "Zen Cores and Vega: Ryzen APUs for AM4 – AMD Tech Day at CES: 2018 Roadmap Revealed, with Ryzen APUs, Zen+ on 12nm, Vega on 7nm". Anandtech. Retrieved 7 February 2018.
  21. ^ Larabel, Michael (17 November 2017). "Radeon VCN Encode Support Lands in Mesa 17.4 Git". Phoronix. Retrieved 20 November 2017.
  22. ^ a b "AMD Ryzen 5000G 'Cezanne' APU Gets First High-Res Die Shots, 10.7 Billion Transistors In A 180mm2 Package". wccftech. 12 August 2021. Retrieved 25 August 2021.{{cite web}}: CS1 maint :url-status (링크)
  23. ^ Tony Chen; Jason Greaves, "AMD's Graphics Core Next (GCN) Architecture" (PDF), AMD, retrieved 13 August 2016
  24. ^ "A technical look at AMD's Kaveri architecture". Semi Accurate. Retrieved 6 July 2014.
  25. ^ "How do I connect three or More Monitors to an AMD Radeon™ HD 5000, HD 6000, and HD 7000 Series Graphics Card?". AMD. Retrieved 8 December 2014.
  26. ^ Airlie, David (26 November 2009). "DisplayPort supported by KMS driver mainlined into Linux kernel 2.6.33". Retrieved 16 January 2016.
  27. ^ "Radeon feature matrix". freedesktop.org. Retrieved 10 January 2016.
  28. ^ Deucher, Alexander (16 September 2015). "XDC2015: AMDGPU" (PDF). Retrieved 16 January 2016.
  29. ^ a b Michel Dänzer (17 November 2016). "[ANNOUNCE] xf86-video-amdgpu 1.2.0". lists.x.org.
  30. ^ "ARM Bifrost GPU Architecture". 30 May 2016.

외부 링크