Skip to main content
QUICK REVIEW

[논문 리뷰] Implementing Strassen's Algorithm with BLIS

Jianyu Huang, Tyler Smith|arXiv (Cornell University)|2016. 05. 03.
Parallel Computing and Optimization Techniques참고 문헌 14인용 수 6
한 줄 요약

이 논문은 BLIS 프레임워크 내에서 스트라센 행렬 곱셈 알고리즘의 새로운 고성능 구현을 제시하며, 외부 워크스페이스가 필요 없고 표준 BLAS 인터페이스를 수정하지 않아도 소형 행렬과 랭크-k 업데이트(일반적으로 LAPACK에서 발생함)에 있어서도 기존의 DGEMM를 능가하도록 한다. 이 방법은 최적화된 메모리 타일링과 재귀적 부분행렬 연산을 활용하여 데이터 이동 오버헤드를 줄이며, Intel Xeon Phi를 포함한 다중코어 및 멀티코어 아키텍처에서 뚜렷한 성능 향상을 이룬다.

ABSTRACT

We dispel with "street wisdom" regarding the practical implementation of Strassen's algorithm for matrix-matrix multiplication (DGEMM). Conventional wisdom: it is only practical for very large matrices. Our implementation is practical for small matrices. Conventional wisdom: the matrices being multiplied should be relatively square. Our implementation is practical for rank-k updates, where k is relatively small (a shape of importance for libraries like LAPACK). Conventional wisdom: it inherently requires substantial workspace. Our implementation requires no workspace beyond buffers already incorporated into conventional high-performance DGEMM implementations. Conventional wisdom: a Strassen DGEMM interface must pass in workspace. Our implementation requires no such workspace and can be plug-compatible with the standard DGEMM interface. Conventional wisdom: it is hard to demonstrate speedup on multi-core architectures. Our implementation demonstrates speedup over conventional DGEMM even on an Intel(R) Xeon Phi(TM) coprocessor utilizing 240 threads. We show how a distributed memory matrix-matrix multiplication also benefits from these advances.

연구 동기 및 목표

  • 스트라센 알고리즘이 소형 행렬과 비정방형 형태에 대해 실용적이지 않다는 기존의 통념을 도전하고 뒤집는 것.
  • 스트라센 기반 DGEMM가 표준 BLAS 인터페이스와 즉시 호환되도록 하여 명시적인 워크스페이스 인수의 필요성을 제거하는 것.
  • 추가 메모리 할당 없이도 현대의 다중코어 및 멀티코어 시스템(예: Intel Xeon Phi 포함)에서 고성능을 달성하는 것.
  • SUMMA 기반 구현과의 통합을 통해 스트라센 알고리즘의 이점을 분산 메모리 환경으로 확장하는 것.
  • 특히 랭크-k 업데이트에 적합한 경우, 스트라센 알고리즘이 고성능 선형대수 라이브러리(LAPACK 등)에서 효율적으로 사용될 수 있음을 보여주는 것.

제안 방법

  • 저자들은 BLIS 프레임워크의 마이크로 커널과 패킹 루틴을 수정하여, 부분행렬 분할을 이용한 재귀적 스트라센 스타일의 행렬 곱셈을 지원한다.
  • 2×2 블록 분할을 사용한 재귀적 분할정복 접근 방식을 적용하며, 부분행렬에 대해 스트라센의 일곱 곱셈 공식을 적용한다.
  • 임시 저장소를 최소화하기 위해 ABC 스트라센 변형을 사용하며, 고성능 DGEMM에서 이미 존재하는 버퍼만을 활용한다.
  • 기존의 멀티스레딩 및 캐시 블로킹 전략과 원활하게 통합되어, 일반적인 DGEMM에서 사용되는 방식과 유사하게 작동한다.
  • 메모리 계층 간의 데이터 이동 방식을 재구성함으로써 성능을 최적화하며, 추가 산술 연산과 메모리 트래픽의 영향을 줄인다.
  • 단일 수준 및 다중 수준 재귀를 모두 지원하며, 예측 가능한 비용 모델을 통해 성능을 최적화한다.

실험 결과

연구 질문

  • RQ1스트라센 알고리즘은 소형 행렬과 비정방형 형태(예: 랭크-k 업데이트에서 발생하는 형태)에 대해 실용적으로 적용될 수 있는가?
  • RQ2고성능 DGEMM에서 이미 사용 중인 것 외에 추가 워크스페이스가 필요 없이 스트라센 알고리즘을 구현할 수 있는가?
  • RQ3인터페이스 변경 없이도 스트라센 기반 곱셈이 다중코어 및 멀티코어 아키텍처(예: Intel Xeon Phi)에서 성능 향상을 달성할 수 있는가?
  • RQ4스트라센의 성능가 기존 DGEMM와 비교하여 LAPACK 및 ScaLAPACK에서 흔히 사용되는 다양한 행렬 형상에서 어떻게 나타나는가?
  • RQ5스칼라빌리티를 훼손하지 않고도 스트라센 알고리즘이 분산 메모리 병렬 구현(SUMMA 등)에 효율적으로 통합될 수 있는가?

주요 결과

  • ABC 스트라센 구현은 기존 DGEMM보다 소형 행렬(1600×1600)에서도 뛰어난 성능을 보이며, 스트라센 알고리즘이 큰 행렬에서만 유용하다는 기존의 믿음에 도전한다.
  • 작은 내부 차원(k=1024 등)을 가진 랭크-k 업데이트의 경우, ABC 스트라센 알고리즘이 기존 DGEMM보다 뛰어난 성능을 보이며, LAPACK 스타일의 계산에 이상적이다.
  • 고성능 DGEMM에서 이미 사용 중인 것 외에 추가 워크스페이스가 필요 없어, 표준 BLAS 인터페이스와 즉시 호환되는 통합이 가능하다.
  • 240개 스레드를 가진 Intel Xeon Phi에서 스트라센 구현은 기존 DGEMM보다 측정 가능한 성능 향상을 보이며, 멀티코어 시스템에서의 실용성을 입증한다.
  • SUMMA 기반 분산 메모리 환경에서 ABC 스트라센 알고리즘은 로컬 gemm 커널으로 사용할 경우, 랭크-k 업데이트에 유리한 행렬 형상에서 최고의 성능을 기록한다.
  • 예측 비용 모델은 다양한 행렬 크기와 재귀 수준에서의 성능을 정확하게 예측하여 설계 선택의 타당성을 검증하고 최적화를 가능하게 한다.

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

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

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

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