Skip to main content
QUICK REVIEW

[논문 리뷰] Synergistic CPU-FPGA Acceleration of Sparse Linear Algebra

Mohammadreza Soltaniyeh, Richard P. Martin|arXiv (Cornell University)|2020. 04. 29.
Parallel Computing and Optimization Techniques참고 문헌 52인용 수 5
한 줄 요약

이 논문은 REAP를 제안하며, 이는 최적화된 데이터 재구성을 CPU에 위임하고 FPGA에 구조화된 버블을 스트리밍하여 고-throughput 계산을 수행함으로써 희소 선형 대수를 가속화하는 공동 설계 프레임워크이다. 스케줄링과 계산을 분리하기 위해 새로운 중간 표현(RIR)을 사용함으로써 REAP는 최신 CPU 라이브러리 대비 SpGEMM에서 3.2배, 코レス키 분해에서 1.85배의 성능 향상을 달성하였으며, FPGA와 CPU의 FPU 수가 동일한 경우에도 성능 향상을 이룬다.

ABSTRACT

This paper describes REAP, a software-hardware approach that enables high performance sparse linear algebra computations on a cooperative CPU-FPGA platform. REAP carefully separates the task of organizing the matrix elements from the computation phase. It uses the CPU to provide a first-pass re-organization of the matrix elements, allowing the FPGA to focus on the computation. We introduce a new intermediate representation that allows the CPU to communicate the sparse data and the scheduling decisions to the FPGA. The computation is optimized on the FPGA for effective resource utilization with pipelining. REAP improves the performance of Sparse General Matrix Multiplication (SpGEMM) and Sparse Cholesky Factorization by 3.2X and 1.85X compared to widely used sparse libraries for them on the CPU, respectively.

연구 동기 및 목표

  • 간접 메모리 액세스와 비정규적인 데이터 패턴으로 인한 희소 선형 대수의 성능 저하 문제를 해결한다.
  • FPGA가 희소 데이터를 처리하는 데 한계를 가진다는 점을 감안해, 복잡한 데이터 재구성을 CPU에 위임함으로써 이를 극복한다.
  • 희소 행렬을 스트리밍 가능한 버블 기반 형식으로 변환함으로써 FPGA에서 고-throughput, 파이프라인화된 계산을 가능하게 한다.
  • FPGA에서 메모리 대역폭을 최대한 활용함으로써, 다중 코어 CPU와 동일한 FPU 수를 가진 상태에서도 뛰어난 성능을 달성한다.
  • 표준화된 중간 표현(RIR)을 사용하여 다양한 희소 커널(예: SpGEMM 및 코レス키 분해)에 적용 가능한 일반적이고 이식 가능한 프레임워크를 개발한다.

제안 방법

  • 희소 행렬 데이터를 메타데이터와 동일한 특성(예: 행 또는 열)을 공유하는 요소를 포함하는 이산적 버블로 표현하는 새로운 중간 표현인 REAP 중간 표현(RIR)을 도입한다.
  • CPU를 사용해 표준 형식(CSR, COO)에서 오는 입력 행렬을 RIR 버블로 재구성함으로써 스케줄링과 데이터 마샬링을 수행하여 FPGA에서 순차적 메모리 액세스를 가능하게 한다.
  • RIR 버블을 시스톨릭 방식으로 파이프라인화하여 처리하는 FPGA 파이프라인을 설계함으로써, 풍부한 DSP 유닛과 片내 메모리를 활용해 고-throughput 부동소수점 연산을 실현한다.
  • 다양한 계산 패턴과 부분 결과 누적 기능을 수용하기 위해 RIR 버블을 일반화함으로써 SpGEMM과 코レス키 분해 모두를 지원한다.
  • 코レス키 분해에서 파이프라인 스케줄링을 향상시키고 공백 시간을 줄이기 위해 메타데이터 전용 버블을 도입한다.
  • CPU와 FPGA 작업 부담을 분리함으로써 실행을 겹치고 플랫폼 전반의 자원 활용도를 극대화한다.

실험 결과

연구 질문

  • RQ1FPGA와 CPU의 FPU 수가 동일한 경우, 공동 설계된 CPU-FPGA 아키텍처가 다중 코어 CPU보다 희소 선형 대수 워크로드에서 성능 면에서 뛰어나게 되는가?
  • RQ2희소 데이터를 스트리밍 가능한 버블 기반 중간 표현으로 재구성하면 FPGA의 메모리 대역폭 활용도와 전체 성능 향상에 상당한 기여를 하는가?
  • RQ3CPU 기반 사전 처리가 희소 행렬 계산에서 FPGA의 공백 시간을 얼마나 줄이고 처리량을 향상시키는가?
  • RQ4일반적인 중간 표현(RIR)이 SpGEMM 및 코レス키 분해와 같은 다양한 희소 커널을 효과적으로 가속화하는 데 사용될 수 있는가?
  • RQ5특히 FPGA의 메모리 대역폭이 높은 상황에서, CPU에서의 데이터 재구성으로 얻는 성능 이득가 비용을 상쇄할 수 있는가?

주요 결과

  • REAP는 FPGA와 CPU의 FPU 수가 동일한 상황에서도, Intel MKL의 단일 코어 SpGEMM 구현 대비 기하평균 3.2배의 성능 향상을 달성한다.
  • 희소 코レス키 분해의 경우, 단일 CPU 코어에서의 CHOLMOD 대비 기하평균 1.85배의 성능 향상을 달성하였으며, 이는 커널의 복잡성에도 불구하고 뚜렷한 성능 향상을 보여준다.
  • CPU가 다수의 코어를 갖추고 있고 FPGA의 FPU 수가 유사한 경우에도 REAP의 성능 우월성은 유지되며, 이는 데이터 스트리밍과 대역폭 활용이 핵심임을 시사한다.
  • CPU가 RIR 버블로 데이터 재구성을 수행함으로써 FPGA에서 정규적이고 고대역폭의 메모리 액세스 패턴을 실현할 수 있었으며, 이는 성능 향상의 주요 원인로 작용하여 사전 처리 비용을 초월한다.
  • 코レス키 분해에서 메타데이터 전용 버블의 사용은 더 나은 스케줄링과 파이프라인 정지 시간 감소를 가능하게 하여 성능 향상을 추가로 향상시킨다.
  • 결과적으로, 순수한 메모리 대역폭만으로는 높은 성능을 달성할 수 없으며, 효과적인 데이터 구조화와 CPU 사전 처리를 통한 스트리밍이 FPGA의 희소 선형 대수 잠재력을 해방하는 데 필수적임을 보여준다.

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

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

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

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