Skip to main content
QUICK REVIEW

[논문 리뷰] Automating the Last-Mile for High Performance Dense Linear Algebra

Richard Veras, Tze Meng Low|arXiv (Cornell University)|2016. 11. 24.
Parallel Computing and Optimization Techniques참고 문헌 18인용 수 6
한 줄 요약

이 논문은 고밀도 선형 대수 연산을 위한 고성능 SIMD 마이크로커널을 자동으로 생성하기 위해 분석적이고 모델 기반의 접근 방식을 제안한다. 주로 Gemm 커널의 핵심 외적 곱셈 연산에 초점을 맞추며, 명령어 수준의 병렬성과 레지스터 사용을 모델링함으로써 경험적 튜닝 없이도 경쟁 가능한 성능을 달성한다. 다양한 아키텍처에서 OpenBLAS 성능의 95–100%를 달성하면서도 TLB 효율성도 유지한다.

ABSTRACT

High performance dense linear algebra (DLA) libraries often rely on a general matrix multiply (Gemm) kernel that is implemented using assembly or with vector intrinsics. In particular, the real-valued Gemm kernels provide the overwhelming fraction of performance for the complex-valued Gemm kernels, along with the entire level-3 BLAS and many of the real and complex LAPACK routines. Thus,achieving high performance for the Gemm kernel translates into a high performance linear algebra stack above this kernel. However, it is a monumental task for a domain expert to manually implement the kernel for every library-supported architecture. This leads to the belief that the craft of a Gemm kernel is more dark art than science. It is this premise that drives the popularity of autotuning with code generation in the domain of DLA. This paper, instead, focuses on an analytical approach to code generation of the Gemm kernel for different architecture, in order to shed light on the details or voo-doo required for implementing a high performance Gemm kernel. We distill the implementation of the kernel into an even smaller kernel, an outer-product, and analytically determine how available SIMD instructions can be used to compute the outer-product efficiently. We codify this approach into a system to automatically generate a high performance SIMD implementation of the Gemm kernel. Experimental results demonstrate that our approach yields generated kernels with performance that is competitive with kernels implemented manually or using empirical search.

연구 동기 및 목표

  • 기존에 전문가 수준의 어셈블리어 수준 튜닝이 필요한 '어둠의 예술'로 여겨졌던 아키텍처별로 최적화된 Gemm 마이크로커널을 수동으로 구현하는 데서 오는 '마지막 마일' 과제를 해결하기 위해.
  • 경험적 자동 튜닝에서 분석적 모델링으로의 전환을 통해, 특히 외적 곱셈 연산과 명령어 수준 병렬성에 중점을 두어 마이크로커널 성능을 분석적으로 모델링하기 위해.
  • 레지스터 스플링을 방지하여 더 큰 Gemm 알고리즘에서 TLB 미스 회피 전략을 유지하면서도 고성능을 유도하는 마이크로커널을 생성하기 위해.
  • 분석적 모델링이 전문가가 최적화한 구현체(예: OpenBLAS 내 구현)와 경쟁 가능한 마이크로커널을 다양한 아키텍처에서 생성할 수 있음을 입증하기 위해.

제안 방법

  • 마이크로커널을 원자적인 '유닛 업데이트'로 분해하여 외적 곱셈 연산을 나타내며, 분석적 모델을 사용해 성능을 분석한다.
  • SIMD 명령어가 피피프/디코딩 및 실행 단계의 병목 현상을 최소화하도록 스케줄링될 수 있도록 명령어 수준 병렬성을 모델링한다.
  • 소프트웨어 피이핑에서 N-업데이트 오버랩을 다양하게 조절하여 레지스터 압박과 스플링을 분석적으로 평가하며, PAPI를 통해 성능 및 TLB 미스를 측정한다.
  • 정적 스케줄링 모델을 사용해 각 마이크로커널 버전의 실행 시간을 추정하고, 경험적 탐색 없이 최적의 구성 요건을 선택한다.
  • 생성된 마이크로커널은 GotoBLAS/BLIS 알고리즘에 통합되어 데이터 이동 효율성과 최소한의 TLB 미스를 보장한다.
  • 이 방법은 마이크로커널이 더 큰 Gemm 스택 내에서 성능 특성, 특히 TLB 동작을 해치지 않도록 하며, 전체 시스템 성능에 영향을 주지 않는다.

실험 결과

연구 질문

  • RQ1경험적 튜닝에 의존하지 않고도 분석적 모델이 SIMD 최적화 Gemm 마이크로커널의 성능을 정확하게 예측할 수 있는가?
  • RQ2마이크로커널 내 레지스터 스플링이 GotoBLAS/BLIS 프레임워크 내에서 TLB 미스 비율과 전체 Gemm 성능에 어떤 영향을 미치는가?
  • RQ3외적 곱셈 연산에 최적화된 명령어 스케줄링 전략은 SIMD 유닛의 활용도를 극대화하고 파이프라인 병목 현상을 최소화하는가?
  • RQ4모델 기반 코드 생성 시스템이 전문가가 최적화한 구현체(예: OpenBLAS 내 구현)와 경쟁 가능한 마이크로커널을 생성할 수 있는가?

주요 결과

  • 분석적 모델은 광범위한 검색이나 자동 튜닝 없이도 고성능 마이크로커널 구성 요건을 성공적으로 식별한다.
  • 생성된 마이크로커널은 다양한 아키텍처에서 OpenBLAS 성능의 95–100%를 달성하여 전문가가 최적화한 커널과 경쟁 가능한 성능을 보여준다.
  • 레지스터 스플링은 메모리 지연 외에도 TLB 미스를 증가시켜 알고리즘의 TLB 효율성 설계를 해치므로 전체 Gemm 성능에 심각한 영향을 미친다.
  • 비균일한 N-업데이트 크기로 인해 더 큰 명령어 클러스터가 발생하여 피치/디코딩 단계에서 병목 현상이 발생하고 성능이 저하된다.
  • 모델 기반 접근 방식은 GotoBLAS/BLIS 알고리즘의 TLB 미스 회피 성질을 유지하며, 이는 종단 간 성능에 있어 핵심적인 요소이다.
  • Xeon Phi와 같은 SMP 시스템에서 병렬화할 경우 생성된 마이크로커널은 OpenBLAS와 유사한 스케일링 성능을 보이며, 양호한 이식성과 성능 이식성(성능 이식성)을 입증한다.

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

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

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

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