Skip to main content
QUICK REVIEW

[논문 리뷰] On the Performance Prediction of BLAS-based Tensor Contractions

Elmar Peise, Diego Fabregat‐Traver|arXiv (Cornell University)|2014. 09. 30.
Parallel Computing and Optimization Techniques참고 문헌 8인용 수 4
한 줄 요약

이 논문은 BLAS 기반 텐서 커크리션에 대한 성능 예측 프레임워크를 제시하며, 실행하지 않고도 수백 가지 가능한 분해 방식 중에서 가장 빠른 알고리즘을 정확하게 식별할 수 있도록 한다. 캐시 조건을 모의하고 저수준 BLAS 커널을 독립적으로 측정함으로써 높은 정확도로 성능을 예측하며, 특히 세분화된 BLAS 호출을 포함한 알고리즘의 경우 직접 알고리즘 실행 대비 최대 10^6×의 속도 향상을 달성한다.

ABSTRACT

Tensor operations are surging as the computational building blocks for a variety of scientific simulations and the development of high-performance kernels for such operations is known to be a challenging task. While for operations on one- and two-dimensional tensors there exist standardized interfaces and highly-optimized libraries (BLAS), for higher dimensional tensors neither standards nor highly-tuned implementations exist yet. In this paper, we consider contractions between two tensors of arbitrary dimensionality and take on the challenge of generating high-performance implementations by resorting to sequences of BLAS kernels. The approach consists in breaking the contraction down into operations that only involve matrices or vectors. Since in general there are many alternative ways of decomposing a contraction, we are able to methodically derive a large family of algorithms. The main contribution of this paper is a systematic methodology to accurately identify the fastest algorithms in the bunch, without executing them. The goal is instead accomplished with the help of a set of cache-aware micro-benchmarks for the underlying BLAS kernels. The predictions we construct from such benchmarks allow us to reliably single out the best-performing algorithms in a tiny fraction of the time taken by the direct execution of the algorithms.

연구 동기 및 목표

  • 텐서 커크리션에 대해 BLAS 기반 분해 방식 수백 가지 중에서 가장 빠른 알고리즘을 선택하는 데 도전하는 것.
  • 전체 알고리즘을 실행하지 않고도 텐서 커크리션의 성능을 정확하게 예측할 수 있도록 하는 것.
  • 고차원 텐서에서 캐시 동작 방식의 다양성과 차원 비대칭성으로 인한 성능 변동성을 극복하는 것.
  • 고성능 계산 워크로드에서 최적 알고리즘을 자동으로 선택할 수 있는 확장 가능한 방법을 제공하는 것.
  • 특히 BLAS-1 및 BLAS-2 커널이 지배하는 과학 계산 환경에서 텐서 커크리션의 효율적 실행을 지원하는 것.

제안 방법

  • 텐서 커크리션을 gemm, gemv, ger, axpy, dot 등의 BLAS 커널 시퀀스로 분해함으로써 다양한 알고리즘 변종을 생성한다.
  • 메모리 및 캐시 조건을 통제한 상태에서 개별 BLAS 연산을 고립하고 측정하는 마이크로 벤치마크를 사용한다.
  • 실제 실행 환경을 반영하기 위해 캐시 상태와 프리패치어 동작 방식을 마이크로 벤치마크에서 모의 및 복제한다.
  • 마이크로 벤치마크 측정 시간에서부터 모든 알고리즘 변종의 총 실행 시간을 추정하는 성능 예측을 수행한다.
  • 대체 워크로드를 기반으로 한 저수준 커널 프로파일링에 의존하여 전체 알고리즘 실행을 피하는 프레임워크를 구현한다.
  • 다양한 텐서 커크리션, 특히 소형 차원과 10개의 코어를 사용한 다중 스레드 실행을 포함한 시나리오에서 검증한다.

실험 결과

연구 질문

  • RQ1동일한 텐서 커크리션에 대해 BLAS 커널을 사용할 때 다양한 알고리즘 분해가 미치는 성능 영향은 무엇인가?
  • RQ2전체 알고리즘을 실행하지 않고도 BLAS 기반 텐서 커크리션의 성능을 정확하게 예측할 수 있는가?
  • RQ3차원 비대칭성이 있는 텐서 커크리션에서 BLAS 커널 선택(예: gemm 대비 axpy)이 성능에 미치는 영향은 어떠한가?
  • RQ4저수준 커널의 마이크로 벤치마킹이 복잡한 고수준 텐서 연산의 성능을 얼마나 정확하게 예측할 수 있는가?
  • RQ5예측 오버헤드는 실제 알고리즘을 실행하고 측정하는 데 소요되는 시간과 비교해 얼마나 되는가?

주요 결과

  • 마이크로 벤치마크 기반 예측 프레임워크는 성능 차이가 3배 이상일지라도 수십 가지 대안 중에서 가장 빠른 알고리즘을 정확히 식별한다.
  • Cabc = AijaBjbic 커크리션의 경우, i′c-gemm 및 i′b-gemm 알고리즘은 60 flops/cycle을 달성하지만, 가장 느린 jb′-gemm는 단지 20 flops/cycle에 그친다. 이는 뚜렷한 성능 격차를 보여준다.
  • 예측 방법은 직접 알고리즘 실행 대비 최대 10^6×의 속도 향상을 달성하며, 특히 세분화된 연산을 포함한 BLAS-1 기반 알고리즘에서 두드러진다.
  • 소형 차원과 10개 코어를 사용한 다중 스레드 실행을 포함한 다양한 시나리오에서 높은 정확도를 유지한다.
  • a = b = c = 1,000일 때 예측은 gemm 기반 알고리즘 실행 대비 여전히 10^3× 빠르며, BLAS-1 기반 알고리즘의 경우 최대 10^6× 빠르다.
  • 전체 실행에 소요되는 시간의 미미한 비율 내에서 성능 그룹을 신뢰성 있게 분리하고 최적 알고리즘을 식별한다.

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

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

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

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