🟢 🔧 하드웨어 게시일: · 3 분 읽기 ·

AMD, MI355X occupancy 수학 설명 — 높은 점유율이 최고 처리량의 조건이 아니다

편집 일러스트: AMD CDNA4 MI355X GPU occupancy 수학 및 커널 코드 최적화

AMD ROCm 팀이 CDNA4 아키텍처에 대한 GPU occupancy 수동 계산 기술 가이드를 발표했습니다. 핵심 발견: MI355X의 행렬 바운드 커널은 불과 12% occupancy에서 최고 처리량을 달성합니다 — CUDA 생태계에서 온 실무자들에게 반직관적인 결과입니다.

🤖

이 기사는 AI가 1차 출처를 기반으로 생성했습니다.

AMD ROCm 팀이 CDNA4 아키텍처, 특히 MI355X 가속기에 대한 GPU occupancy 계산에 관한 포괄적인 기술 가이드를 발표했습니다. 이 텍스트는 프로덕션 추론 또는 학습을 위한 커스텀 커널을 최적화하는 GPU 커널 엔지니어를 대상으로 하며 — NVIDIA CUDA 생태계에서 온 실무자들에게 직접적으로 반직관적인 발견을 담고 있습니다.

Occupancy란 무엇이며 왜 수동으로 계산하나요?

GPU occupancy는 웨이브프론트(CUDA 용어: 워프)로 활발히 채워진 사용 가능한 리소스의 비율을 측정합니다. 높은 occupancy는 오랫동안 높은 처리량의 전제 조건으로 여겨졌습니다 — 더 많은 활성 웨이브프론트는 메모리 접근 지연을 숨길 기회가 더 많다는 것을 의미합니다.

가이드 저자들은 다른 입장을 취합니다: occupancy는 알려진 하드웨어 제한과 커널이 소비하는 리소스에서 완전히 도출 가능하므로, 프로파일링 도구의 불투명한 지표로 처리하지 않고 기본 원리에서 이해해야 합니다. 목표는 커널을 실행하기 전에 occupancy를 예측할 수 있는 엔지니어를 양성하는 것입니다.

네 가지 제한 요소와 CDNA4 아키텍처

MI355X는 2.4GHz로 클록킹된 8개 XCD 칩에 걸쳐 분산된 256개 Compute Unit으로 구성되며, 각 CU는 고유한 레지스터 파일을 가진 64레인 4개 SIMD 유닛을 포함합니다.

가이드는 occupancy 상한을 결정하는 네 가지 리소스를 식별합니다:

벡터 레지스터(VGPR) — CDNA4에서 레지스터 파일은 레인당 512개 항목이며, 레지스터는 일반 레지스터와 누산기 레지스터 사이에 공유됩니다. 이것은 누산기 레지스터(AccVGPR)가 별도의 풀이었던 CDNA3과 중요한 차이점입니다 — AMD는 이전 세대에서 지식을 전달하는 엔지니어들이 이 가정을 업데이트해야 한다고 강조합니다.

스칼라 레지스터(SGPR) — SIMD 유닛당 약 800개로 웨이브프론트 전체에 균일한 값에 사용됩니다.

로컬 공유 메모리(LDS) — CDNA4에서 Compute Unit당 64KB(CDNA3)에서 160KB로 증가했습니다.

워크그룹 슬롯 — CU당 동시 활성 워크그룹 수에 대한 하드웨어 제한입니다.

반직관적 발견: 낮은 occupancy에서 최고 처리량

가이드의 핵심 발견은 CUDA 최적화 경험에서 오는 직관에 직접적으로 반합니다. MI355X가 약 5 PFLOP/s를 달성하는 MXFP8 연산에 대한 AMD 마이크로벤치마크는 높은 명령어 수준 병렬성(ILP=8)을 가진 커널이 불과 12% occupancy에서 4.82 PFLOP/s를 유지함을 보여줍니다. 이 값은 96% occupancy에서도 ILP=2 커널이 달성하는 것을 능가합니다.

이유: CDNA4의 행렬 유닛은 소수의 활성 웨이브프론트만으로 파이프라인을 포화시킬 정도로 빠릅니다. 커널이 웨이브프론트 병렬성 대신 ILP를 통해 지연을 성공적으로 숨길 때, 높은 occupancy는 불필요할 뿐만 아니라 — 어떤 이점도 없이 레지스터 파일 제한으로 인해 불가능할 수 있습니다.

MXFP8 GEMM 예제: 동일한 커널, 두 세대

가이드에는 구체적인 예제가 포함됩니다: 128개 VGPR과 32KB LDS를 소비하는 256 스레드 타일의 MXFP8 GEMM 커널.

64KB LDS의 CDNA3: 커널은 LDS에 의해 제한되며 25% occupancy를 달성합니다 — 두 인스턴스만이 LDS를 공동으로 소모하기 때문에 CU당 동시에 활성화될 수 있습니다.

160KB LDS의 CDNA4: 동일한 커널이 더 이상 LDS에 의해 제한되지 않습니다. 이제 레지스터에 의해 제한되며 occupancy는 **50%**로 상승합니다 — CU당 4개 인스턴스. 동일한 소스 코드, 다른 제한 요소, 두 배 높은 점유율.

맥락: AMD, CUDA 대비 문서화 격차 줄이기

이 가이드는 ROCm 소프트웨어 문서를 개선하고 NVIDIA 생태계에서 전환하는 엔지니어들의 진입 장벽을 낮추려는 AMD의 더 넓은 노력의 일환입니다. CUDA는 수십 년 동안 심층 기술 문서에서 우위를 점했습니다 — 리소스 한계와 occupancy에 대한 그 영향과 같은 세부 사항은 NVIDIA 아키텍처에 대해 잘 문서화되어 있었지만, AMD GPU의 경우 실험적 조사나 내부 코드 통찰이 필요했습니다.

이러한 기본 원리 가이드는 정확히 그 공백을 목표로 합니다: 무엇을 찾는지 아는 엔지니어들이 이제 커널을 실행하지 않고도 분석적으로 occupancy를 도출할 수 있어 AMD 인프라에서 프로덕션 AI 모델의 반복적 최적화 사이클을 가속화할 수 있습니다.

자주 묻는 질문

MI355X에서 행렬 바운드 커널이 낮은 occupancy에서 최고 처리량을 달성하는 이유는 무엇인가요?
CDNA4의 행렬 유닛은 소수의 활성 웨이브프론트만으로도 파이프라인을 포화시킬 정도로 빠릅니다. 마이크로벤치마크는 ILP=8이 불과 12% occupancy에서 4.82 PFLOP/s를 유지함을 보여주며, 이는 96% occupancy에서의 ILP=2보다 높습니다.
MI355X의 occupancy를 제한하는 네 가지 요소는 무엇인가요?
네 가지 제한 요소는 벡터 레지스터(VGPR, 레인당 512개 항목, 일반 레지스터와 누산기 레지스터 공유), 스칼라 레지스터(SGPR, SIMD당 약 800개), 로컬 메모리(LDS, Compute Unit당 160KB), 워크그룹 슬롯 수입니다.
LDS 면에서 MI355X는 CDNA3과 어떻게 다른가요?
CDNA4 MI355X는 LDS를 Compute Unit당 64KB(CDNA3)에서 160KB로 증가시킵니다. CDNA3에서 25% occupancy로 LDS에 의해 제한되었던 동일한 MXFP8 GEMM 커널이 CDNA4에서 이제 레지스터에 의해 제한되어 50% occupancy를 달성합니다.