[논문 리뷰] SpArch: Efficient Architecture for Sparse Matrix Multiplication
SpArch는 스트리밍 기반 머지, 압축 행렬 표현, 허프만 트리 스케줄러, 행 프리패칭기 등을 사용하여 희소 행렬-행렬 곱셈(SpGEMM)에서 입력 및 출력 데이터 재사용을 종합적으로 최적화하는 도메인 특화 가속기이다. 이는 20개의 실세계 벤치마크에서 최신 기술 대비 DRAM 액세스를 2.8배 감소시키며, 최대 1285배의 성능 향상과 62배의 에너지 효율 향상을 달성한다.
Generalized Sparse Matrix-Matrix Multiplication (SpGEMM) is a ubiquitous task in various engineering and scientific applications. However, inner product based SpGENN introduces redundant input fetches for mismatched nonzero operands, while outer product based approach suffers from poor output locality due to numerous partial product matrices. Inefficiency in the reuse of either inputs or outputs data leads to extensive and expensive DRAM access. To address this problem, this paper proposes an efficient sparse matrix multiplication accelerator architecture, SpArch, which jointly optimizes the data locality for both input and output matrices. We first design a highly parallelized streaming-based merger to pipeline the multiply and merge stage of partial matrices so that partial matrices are merged on chip immediately after produced. We then propose a condensed matrix representation that reduces the number of partial matrices by three orders of magnitude and thus reduces DRAM access by 5.4x. We further develop a Huffman tree scheduler to improve the scalability of the merger for larger sparse matrices, which reduces the DRAM access by another 1.8x. We also resolve the increased input matrix read induced by the new representation using a row prefetcher with near-optimal buffer replacement policy, further reducing the DRAM access by 1.5x. Evaluated on 20 benchmarks, SpArch reduces the total DRAM access by 2.8x over previous state-of-the-art. On average, SpArch achieves 4x, 19x, 18x, 17x, 1285x speedup and 6x, 164x, 435x, 307x, 62x energy savings over OuterSPACE, MKL, cuSPARSE, CUSP, and ARM Armadillo, respectively.
연구 동기 및 목표
- 희소 행렬의 비정규적인 액세스 패턴과 낮은 데이터 국소성으로 인해 발생하는 SpGEMM의 메모리 월 문제를 해결한다.
- 과도한 부분 행렬 저장으로 인해 출력 재사용이 열악한 외적 기반 SpGEMM의 한계를 극복한다.
- 입력 및 출력 데이터 재사용을 종합적으로 최적화하여 DRAM 대역폭을 감소시키고 성능 및 에너지 효율을 향상시킨다.
- 최소한의 메모리 오버헤드로 대규모 희소 행렬을 지원하는 확장 가능한 하드웨어 최적화 아키텍처를 설계한다.
제안 방법
- 승차형으로 구동되는 고도로 병렬화된 머지기 설계로, 곱셈 및 머지 단계를 파이프라인화하여 부분 행렬 생성 직후에 칩 내에서 머지할 수 있도록 한다.
- 첫 번째 입력 행렬을 비어 있지 않은 요소를 더 두꺼운 열로 묶도록 재구성하는 압축 행렬 표현 방식을 도입하여 부분 행렬 수를 세 자리 수 감소시킨다.
- 더러운 부분 행렬을 먼저 머지함으로써 총 DRAM 액세스를 최소화하는 최적의 머지 순서를 결정하기 위해 허프만 트리 스케줄러를 설계한다.
- 압축 표현으로 인한 입력 행렬 읽기 트래픽을 줄이기 위해 근사 최적의 버퍼 교체 정책을 가진 행 프리패칭기를 구현한다.
- 모든 구성 요소를 통합된 도메인 특화 아키텍처(SpArch)로 통합하여 SpGEMM 워크로드에 대해 고처리량과 낮은 메모리 대역폭을 달성한다.
- 두 번째 행렬은 CSR 형식을, 첫 번째 행렬은 압축된 열 액세스 방식을 사용하여 효율적인 스트리밍과 칩 내 데이터 재사용을 가능하게 한다.
실험 결과
연구 질문
- RQ1외적 기반 SpGEMM에서 입력 및 출력 데이터 재사용을 종합적으로 최적화하여 DRAM 대역폭을 어떻게 줄일 수 있는가?
- RQ2대규모 SpGEMM에서 부분 행렬 저장 및 DRAM 액세스를 최소화하는 데 가장 효과적인 표현 방식과 스케줄링 전략은 무엇인가?
- RQ3파이프라인화된 곱셈-머지 기반 스트리밍 머지기는 SpGEMM 가속기에서 메모리 병목 현상을 어떻게 줄일 수 있는가?
- RQ4압축 행렬 표현은 입력 액세스를 증가시키지 않으면서 부분 행렬 수를 얼마나 줄일 수 있는가?
- RQ5다양한 희소성 수준을 가진 SpGEMM 환경에서 허프만 트리 기반 스케줄러의 확장성과 메모리 액세스에 미치는 영향은 어떠한가?
주요 결과
- SpArch는 20개의 실세계 벤치마크에서 이전 최신 기술 대비 총 DRAM 액세스를 2.8배 감소시켰다.
- 아키텍처는 ARM Armadillo 대비 최대 1285배의 성능 향상과 MKL 대비 평균 19배의 성능 향상을 달성했다.
- 압축 행렬 표현은 부분 행렬 수를 세 자리 수 감소시켜 DRAM 액세스를 5.4배 감소시켰다.
- 허프만 트리 스케줄러는 부분적으로 병합된 결과의 중간 저장을 최소화하여 DRAM 액세스를 추가로 1.8배 감소시켰다.
- 행 프리패칭기는 입력 읽기 트래픽을 1.5배 감소시켜 압축 행렬 액세스 패턴에 대해 근사 최적의 버퍼 교체를 달성했다.
- SpArch는 OuterSPACE 대비 6배의 에너지 효율 향상을, CUSP 대비 최대 435배의 에너지 효율 향상을 테스트 워크로드에서 달성했다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.