Skip to main content
QUICK REVIEW

[논문 리뷰] A matrix math facility for Power ISA(TM) processors

José E. Moreira, Kit Barton|arXiv (Cornell University)|2021. 04. 07.
Parallel Computing and Optimization Techniques참고 문헌 12인용 수 6
한 줄 요약

이 논문은 IBM의 POWER10 프로세서에서 행렬 연산을 가속화하기 위한 새로운 명령어 세트인 Matrix-Multiply Assist(MMA) 기능을 Power ISA™ 버전 3.1에 도입한다. 32비트, 64비트 및 bfloat16 정밀도로 작은 행렬에 대해 512비트 누적 레지스터를 사용해 랭크-k 업데이트를 수행함으로써, MMA 기능은 POWER9 대비 코어당 4배 높은 성능을 달성하며 전력 소모는 8% 증가에 그쳐 높은 에너지 효율성 향상을 이룬다.

ABSTRACT

Power ISA(TM) Version 3.1 has introduced a new family of matrix math instructions, collectively known as the Matrix-Multiply Assist (MMA) facility. The instructions in this facility implement numerical linear algebra operations on small matrices and are meant to accelerate computation-intensive kernels, such as matrix multiplication, convolution and discrete Fourier transform. These instructions have led to a power- and area-efficient implementation of a high throughput math engine in the future POWER10 processor. Performance per core is 4 times better, at constant frequency, than the previous generation POWER9 processor. We also advocate the use of compiler built-ins as the preferred way of leveraging these instructions, which we illustrate through case studies covering matrix multiplication and convolution.

연구 동기 및 목표

  • POWER10에서 BLAS3 워크로드의 성능 격차를 해소하기 위해, 고성능 조밀한 선형 대수 연산이 필요한 비즈니스 분석 및 머신러닝 워크로드를 대상으로 한다.
  • 아키텍처 레지스터 파일을 확장하거나 새로운 컴파일러 툴체인을 요구하지 않고도 행렬 곱셈, 컨볼루션 및 기타 커널을 가속화하는 하드웨어-소프트웨어 공동 설계 솔루션을 설계한다.
  • 컴파일러 내장 기능을 통해 신규 MMA 명령어를 효율적으로 활용함으로써, 백워드 컴 patibility와 유지보수성을 확보하면서도 높은 성능을 달성한다.
  • MMA 기능이 POWER9 및 이전의 벡터 전용 명령어 세트에 비해 상당한 성능 향상과 에너지 효율성 향상을 제공함을 입증한다.

제안 방법

  • MMA 기능은 입력으로 사용되는 64×128비트 벡터-스칼라 레지스터와 분리된 8개의 새로운 512비트 누적 레지스터를 도입하여 랭크-k 행렬 업데이트의 중간 결과를 저장한다.
  • 매트릭스 매스 엔진(MME) 기능 유닛은 다른 Power ISA 명령어와 병행하여 MMA 명령어를 실행함으로써 일반 계산과 완전히 겹치도록 한다.
  • MMA 명령어는 32비트 부동소수점 수치의 4×4 행렬 등 작은 행렬을 대상으로 하며, 입력으로 벡터 레지스터를 사용하고 출력으로 누적 레지스터를 사용함으로써 GEMM 및 컨볼루션 커널의 효율적 계산을 가능하게 한다.
  • 설계는 전력 가로막힌 MME 유닛을 사용하며, 초기에는 누적 레지스터를 비아키텍처 상태로 유지함으로써 향후 백워드 컴 patible 방식으로 전체 아키텍처 상태로 승격 가능하도록 한다.
  • GCC 및 LLVM에 컴파일러 내장 기능을 도입하여 고수준 코드 생성을 가능하게 하며, 수동 어셈블리 코드 작성 없이도 세밀한 제어를 가능하게 하면서도 성능을 유지한다.
  • 구현은 사전 실리콘 커널 모델을 사용한 시뮬레이션을 통해 검증되었으며, DGEMM 및 HPL 워크로드를 대상으로 성능과 전력 소모를 측정하였다.

실험 결과

연구 질문

  • RQ1기존의 레거시 ISA 환경에서 전력 제약 조건 하에 새로운 명령어 세트 확장이 조밀한 선형 대수 커널의 성능을 어떻게 향상시킬 수 있는가?
  • RQ2특수화된 매트릭스 매스 엔진이 레지스터 파일 확장을 요구하지 않으며 새로운 컴파일러 기술도 필요로 하지 않으면서도 머신러닝 및 분석 워크로드의 성능을 얼마나 향상시킬 수 있는가?
  • RQ3실제 프로세서 코어에서 전통적인 벡터 전용 접근 방식에 비해 MMA 명령어를 사용할 경우 성능 및 전력 효율성 향상은 어느 정도인가?
  • RQ4컴파일러 내장 기능이 코드 유지보수성과 성능을 확보하면서도 MMA 기능의 능력을 효과적으로 노출시킬 수 있는가?
  • RQ5생산 워크로드에서 다양한 정밀도 형식(32비트, 64비트, bfloat16)에 대해 MMA 기능이 어떻게 확장 가능한가?

주요 결과

  • POWER10 프로세서는 동일한 클럭 주파수에서 POWER9 대비 코어당 행렬 곱셈 커널에서 4배 높은 성능을 달성한다.
  • MMA 기능은 POWER10에서 VSX 전용 코드 대비 2.5배 높은 성능을 제공하며 전력 소모는 8% 증가에 그쳐 강력한 에너지 효율성을 보인다.
  • POWER9와 비교할 때, MMA 기능이 탑재된 POWER10 코어는 24% 적은 전력 소비로 5배 높은 성능을 달성하여 계산당 에너지 소비가 거의 7배 감소한다.
  • MMA 명령어는 이미 OpenBLAS 및 Eigen에 통합되어 있으며, 더블, 싱글 및 bfloat16 정밀도를 지원함으로써 고성능 선형 대수 라이브러리에서 즉각적인 활용이 가능하다.
  • 컴파일러 내장 기능을 통해 최소한의 오버헤드로 효율적인 코드 생성이 가능하며, 유지보수성과 성능을 확보하는 솔루션으로 손쉬운 수동 어셈블리 코드 대체가 가능하다.
  • MMA 기능은 컨볼루션 및 이산 푸리에 변환 커널의 효율적 구현을 가능하게 하며, 스텐실 및 신호 처리 워크로드에 광범위하게 활용될 잠재력이 있다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.