TECH 으로 돌아가기
TECH HACKER NEWS 오늘 2분 읽기 33 READS

단일 코어로 85 GFLOPS: 행렬 곱셈 극한 최적화의 비밀

AMD Zen 3 코어 하나로 FP32 행렬 곱셈에서 85.3 GFLOPS를 달성한 사례다. 나이브한 3중 루프 구현은 코어 이론 성능의 몇 퍼센트밖에 못 쓴다. 저자는 단계별 최적화로 이론 최대치에 근접했다. 핵심은 세 가지다. 첫째, AVX2와 FMA 명령어로 SIMD 벡터화해 한 사이클에 여러 부동소수점 연산을 처리한다. 둘째, 캐시 블로킹(타일링)으로 데이터를 L1/L2 캐시 크기에 맞게 쪼개 메모리 대역폭 병목을 없앤다. 셋째, 레지스터 블로킹과 루프 언롤링으로 레지스터 재사용을 극대화하고 파이프라인 스톨을 줄인다. BLAS 같은 라이브러리가 왜 빠른지, 그 내부 원리를 직접 구현하며 보여준다. GPU만 성능의 답은 아니며, CPU 마이크로아키텍처와 메모리 계층을 이해하면 하드웨어를 한계까지 짜낼 수 있다는 점이 인상적이다. 성능에 민감한 코드를 다루는 개발자라면 캐시 지역성과 벡터화가 실측 성능을 수십 배 가른다는 교훈을 얻을 수 있다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://github.com/houslast3/85.30-GFLOPS-Single-Core-FP32-M...
SHARE
처리 중...