AMD Zen 3 단일 코어에서 FP32 행렬 곱셈 85.3 GFLOPS 달성

85.3 GFlops: Optimizing FP32 Matrix Multiplication on a Single AMD Zen 3 Core

AMD Zen 3 마이크로아키텍처의 단일 코어에서 FP32 행렬 곱셈(GEMM)을 최적화한 연구로, AVX2/FMA intrinsics을 사용해 28가지 구성을 테스트했습니다. 최고 성능 모델 MX24는 85.30 GFLOPS를 기록, 이론적 피크(134.4 GFLOPS)의 63.5%에 도달했으며, AMD AOCL 및 OpenBLAS와 같은 최적화된 라이브러리와 동등한 성능을 보였습니다. 캐시 블로킹, 레지스터 블로킹, FMA 체이닝, 패킹 전략 등 다양한 기법의 영향을 분석했으며, 특히 B-패킹과 4-라인 레지스터 블로킹이 핵심 요소로 작용했습니다.

Zen 3의 하드웨어 프리페처가 스트리밍 패턴에 이미 효율적이기 때문에, _mm_prefetch를 사용한 소프트웨어 프리페칭은 오히려 성능을 약 8% 저하시켰습니다.