[논문 리뷰] Serpens: A High Bandwidth Memory Based Accelerator for General-Purpose Sparse Matrix-Vector Multiplication
Serpens는 일반적인 희소 행렬-벡터 곱셈(SpMV)을 위한 HBM 기반 FPGA 가속기로, 메모리 중심 처리 엔진과 인덱스 결합 기법을 활용하여 메모리 접근과 URAM 활용도를 최적화한다. SuiteSparse 행렬에서 최대 60.55 GFLOP/s 성능을 기록하며 GraphLily 대비 3.79배 높은 처리량을 달성했고, K80 GPU 대비 6.25배 높은 에너지 효율성을 확보한다.
Sparse matrix-vector multiplication (SpMV) multiplies a sparse matrix with a dense vector. SpMV plays a crucial role in many applications, from graph analytics to deep learning. The random memory accesses of the sparse matrix make accelerator design challenging. However, high bandwidth memory (HBM) based FPGAs are a good fit for designing accelerators for SpMV. In this paper, we present Serpens, an HBM based accelerator for general-purpose SpMV.Serpens features (1) a general-purpose design, (2) memory-centric processing engines, and (3) index coalescing to support the efficient processing of arbitrary SpMVs. From the evaluation of twelve large-size matrices, Serpens is 1.91x and 1.76x better in terms of geomean throughput than the latest accelerators GraphLiLy and Sextans, respectively. We also evaluate 2,519 SuiteSparse matrices, and Serpens achieves 2.10x higher throughput than a K80 GPU. For the energy/bandwidth efficiency, Serpens is 1.71x/1.99x, 1.90x/2.69x, and 6.25x/4.06x better compared with GraphLily, Sextans, and K80, respectively. After scaling up to 24 HBM channels, Serpens achieves up to 60.55~GFLOP/s (30,204~MTEPS) and up to 3.79x over GraphLily. The code is available at https://github.com/UCLA-VAST/Serpens.
연구 동기 및 목표
- SpMV에서의 비정규적인 메모리 접근 패턴 문제를 해결하기 위해 메모리 최적화된 가속기 설계.
- GraphLily와 Sextans와 같은 기존 FPGA 가속기의 한계를 극복하여 SpMV에 완전히 맞춤화되지 않거나 메모리 대역폭를 효율적으로 활용하지 못하는 문제 해결.
- 재설계 없이도 임의의 희소 행렬에 대해 고성능 및 확장 가능성을 확보하여 데이터 센터 내 일반 목적의 구현을 가능하게 함.
- HBM과 현장 내 메모리(BRAM/URAM)의 활용도를 극대화하여 외부 메모리 지연을 줄이고 처리량 및 에너지 효율성 향상.
- 스parse 워크로드에 대해 높은 에너지 효율성과 낮은 대역폭 오버헤드를 유지하면서도 GPU에 경쟁 가능한 성능 확보.
제안 방법
- 희소 행렬을 스트리밍 방식, 출력 정적 방식으로 처리하는 메모리 중심 처리 엔진을 도입하여 외부 메모리 접근을 최소화.
- 비제로 인덱스를 효율적으로 현장 내 URAM에 팩킹하기 위해 인덱스 결합 기법을 구현하여 메모리 대역폭 활용도 향상 및 접근 지연 감소.
- 밀도 높은 입력 벡터를 세그먼트로 분할하고 결과를 현장 내 BRAM/URAM에 누적하여 고처리량, 저지연 계산을 구현.
- 사용자 정의 데이터 레이아웃과 프리프로세싱 파이프라인을 도입하여 희소 행렬 형식을 가속기 친화적인 저장 방식으로 변환하고, 임의의 SpMV 워크로드와 호환 가능.
- 최대 24개의 HBM 채널를 지원하는 HBM 기반 FPGA(U280)를 활용하고, TAPA 및 Autobridge 도구를 사용하여 대규모 설계에서의 배치 및 라우팅 혼잡 문제 해결.
- 다양한 희소 행렬에서 재설정 없이도 고성능을 유지할 수 있도록 확장 가능하고 재구성 가능한 아키텍처 설계.
실험 결과
연구 질문
- RQ1일반적인 SpMV에 대해 기존 GPU 및 FPGA 가속기 대비 HBM 기반 FPGA 가속기가 더 높은 처리량과 에너지 효율성을 달성할 수 있는가?
- RQ2SpMV 워크로드에서 인덱스 결합 기법이 URAM 활용도 향상과 메모리 접근 오버헤드 감소에 얼마나 효과적인가?
- RQ3메모리 중심 처리 엔진이 비정규적인 희소 데이터에서 외부 메모리 의존도를 얼마나 줄이고 성능 향상에 기여하는가?
- RQ4HBM 채널 수를 16개에서 24개로 늘였을 때 SpMV 가속에서 성능 및 확장성에 어떤 영향을 미치는가?
- RQ5사용자 정의 FPGA 가속기가 실세계의 다양한 희소 행렬에서 고성능 GPU인 K80에 비해 처리량과 에너지 효율성 면에서 뛰어난 성능을 낼 수 있는가?
주요 결과
- 12개의 큰 희소 행렬에서 Serpens는 GraphLily 대비 1.91배 높은 지오메트릭 평균 처리량, Sextans 대비 1.76배 높은 처리량 기록.
- 2,519개의 SuiteSparse 행렬에서 Serpens는 K80 GPU 대비 2.10배 높은 처리량과 6.25배 높은 에너지 효율성 확보.
- 24개의 HBM 채널을 사용할 경우 Serpens는 최고 성능 60.55 GFLOP/s와 30,204 MTEPS를 기록하여 GraphLily 대비 최대 3.79배의 속도 향상 달성.
- SuiteSparse 벤치마크 전체에서 Serpens는 대역폭 효율성 4.06배 향상 및 에너지 효율성 6.25배 향상 달성, K80 GPU 대비.
- BRAM 사용량이 더 높음에도 불구하고 SpMV에 특화된 최적화 덕분에 Serpens는 GraphLily 대비 LUT, FF, DSP, URAM 사용량을 줄임.
- 24채널 버전의 Serpens는 270 MHz 클럭 주파수를 유지하며 TAPA 및 Autobridge 도구를 활용해 성공적으로 배치 및 라우팅 혼잡 문제 해결.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.