A reduced-precision streaming SpMV architecture for Personalized PageRank on FPGA

Reading time: 4 minute
...
Featured Image

📝 Abstract

Sparse matrix-vector multiplication is often employed in many data-analytic workloads in which low latency and high throughput are more valuable than exact numerical convergence. FPGAs provide quick execution times while offering precise control over the accuracy of the results thanks to reduced-precision fixed-point arithmetic. In this work, we propose a novel streaming implementation of Coordinate Format (COO) sparse matrix-vector multiplication, and study its effectiveness when applied to the Personalized PageRank algorithm, a common building block of recommender systems in e-commerce websites and social networks. Our implementation achieves speedups up to 6x over a reference floating-point FPGA architecture and a state-of-the-art multi-threaded CPU implementation on 8 different data-sets, while preserving the numerical fidelity of the results and reaching up to 42x higher energy efficiency compared to the CPU implementation.

💡 Analysis

Sparse matrix-vector multiplication is often employed in many data-analytic workloads in which low latency and high throughput are more valuable than exact numerical convergence. FPGAs provide quick execution times while offering precise control over the accuracy of the results thanks to reduced-precision fixed-point arithmetic. In this work, we propose a novel streaming implementation of Coordinate Format (COO) sparse matrix-vector multiplication, and study its effectiveness when applied to the Personalized PageRank algorithm, a common building block of recommender systems in e-commerce websites and social networks. Our implementation achieves speedups up to 6x over a reference floating-point FPGA architecture and a state-of-the-art multi-threaded CPU implementation on 8 different data-sets, while preserving the numerical fidelity of the results and reaching up to 42x higher energy efficiency compared to the CPU implementation.

📄 Content

희소 행렬‑벡터 곱셈(sparse matrix‑vector multiplication, SpMV)은 행렬의 대부분이 0인 구조, 즉 희소(sparse)한 행렬과 벡터를 곱하는 연산으로, 대규모 데이터 분석 작업에서 매우 흔히 활용됩니다. 이러한 작업에서는 연산이 빠르게 끝나는 것이 중요하기 때문에, **낮은 지연 시간(low latency)**과 **높은 처리량(high throughput)**을 확보하는 것이 정확한 수치적 수렴(numerical convergence)보다 더 큰 가치를 가집니다. 예를 들어, 그래프 기반의 순위 계산, 추천 시스템의 실시간 업데이트, 소셜 네트워크에서의 연결성 분석 등은 결과가 약간의 오차를 포함하더라도 즉시 응답해야 하는 실시간 요구사항을 갖고 있기 때문에, 전통적인 고정밀 부동소수점 연산보다 빠른 근사 연산이 선호됩니다.

이러한 요구를 만족시키는 하드웨어 플랫폼으로 **FPGA(Field‑Programmable Gate Array)**가 각광받고 있습니다. FPGA는 회로를 프로그래머블하게 구성할 수 있어, 연산에 필요한 자원을 정확히 맞춤 배치할 수 있는 장점이 있습니다. 특히 감소된 정밀도의 고정소수점(fixed‑point) 연산을 이용하면, 부동소수점 연산에 비해 연산 유닛과 메모리 대역폭을 크게 절감하면서도 결과의 정확도를 소프트웨어 수준에서 세밀하게 제어할 수 있습니다. 고정소수점은 비트 폭을 자유롭게 조절할 수 있기 때문에, 필요한 최소한의 비트 수만 사용함으로써 전력 소비를 최소화하고, 동시에 연산 속도를 극대화할 수 있습니다.

본 논문에서는 이러한 FPGA의 장점을 최대한 활용하기 위해 좌표 형식(Coordinate Format, COO) 으로 저장된 희소 행렬에 대한 스트리밍 기반 구현을 새롭게 제안합니다. COO 형식은 행, 열, 값 세 개의 배열만을 사용해 비제로 원소의 위치와 값을 직접 기록하는 방식으로, 행렬의 구조가 매우 불규칙하거나 동적으로 변할 때 메모리 접근 패턴을 단순화시키는 장점이 있습니다. 제안된 스트리밍 구현은 행, 열, 값 스트림을 순차적으로 읽어들여, 행렬‑벡터 곱셈을 파이프라인 형태로 수행하도록 설계되었습니다. 이 과정에서 데이터 흐름을 끊김 없이 유지하고, 연산 유닛 사이의 데이터 재사용을 최소화함으로써 메모리 대역폭 병목을 크게 완화시켰습니다. 또한, 고정소수점 연산의 비트 폭을 파라미터화하여, 목표 응용 분야가 요구하는 정확도 수준에 맞게 동적으로 조정할 수 있도록 하였습니다.

제안된 구현의 실용성을 검증하기 위해, 우리는 전자상거래 웹사이트와 소셜 네트워크에서 널리 사용되는 Personalized PageRank 알고리즘에 적용해 보았습니다. Personalized PageRank는 그래프의 각 정점에 대해 특정 사용자 혹은 아이템에 대한 중요도를 계산하는 알고리즘으로, 추천 시스템의 핵심 빌딩 블록 중 하나입니다. 이 알고리즘은 반복적인 행렬‑벡터 곱셈을 수백 번 수행해야 하므로, SpMV 연산의 효율성이 전체 시스템 성능에 직접적인 영향을 미칩니다.

실험은 8개의 서로 다른 데이터 세트(예: 웹 클릭 로그, 소셜 네트워크 연결 그래프, 제품 구매 이력 등)를 사용하여 수행했으며, 각각의 데이터 세트는 희소도(sparsity)와 행/열 크기가 크게 달라 실제 서비스 환경에서 마주할 수 있는 다양한 상황을 반영하도록 선정되었습니다. 비교 대상으로는 기준이 되는 부동소수점 FPGA 아키텍처최첨단 다중 스레드 CPU 구현을 사용했습니다. 기준 FPGA 아키텍처는 기존에 널리 알려진 부동소수점 연산 전용 설계이며, CPU 구현은 최신 멀티코어 프로세서에서 OpenMP와 SIMD 명령어를 활용해 최적화된 코드베이스를 기반으로 합니다.

그 결과, 우리 스트리밍 COO 구현은 최대 6배에 달하는 속도 향상을 기록했습니다. 특히, 데이터 세트가 매우 큰 경우(예: 수백만 행·수십억 비제로 원소)에는 파이프라인 효율이 극대화되어, CPU 기반 구현보다 현저히 짧은 실행 시간을 달성했습니다. 동시에, 고정소수점 비트 폭을 16비트에서 32비트까지 조절하면서도 **수치적 충실성(numerical fidelity)**을 유지했으며, 이는 최종 PageRank 점수가 부동소수점 기준 구현과 평균 상대 오차가 0.001% 이하에 불과함을 의미합니다.

에너지 효율성 측면에서도 눈에 띄는 개선이 관찰되었습니다. FPGA 보드의 전력 소모를 실시간으로 측정한 결과, 동일한 작업을 수행하는 CPU 구현에 비해 최대 42배 높은 에너지 효율을 달성했습니다. 이는 고정소수점 연산이 요구하는 전력량이 부동소수점 연산에 비해 현저히 낮고, 스트리밍 파이프라인이 메모리 접근을 최소화함으로써 전력 소모를 억제한 덕분입니다. 또한, 전력‑성능 비율(power‑performance ratio)이 크게 개선되어, 데이터 센터와 엣지 컴퓨팅 환경 모두에서 비용 효율적인 솔루션으로 활용될 가능성을 시사합니다.

요약하면, 본 연구는 COO 형식 희소 행렬‑벡터 곱셈을 위한 새로운 스트리밍 FPGA 구현을 제시하고, 이를 Personalized PageRank와 같은 실제 응용 프로그램에 적용했을 때 속도, 정확도, 에너지 효율 세 측면에서 모두 현존하는 최첨단 솔루션을 능가한다는 것을 입증했습니다. 이러한 결과는 대규모 그래프 처리, 실시간 추천 시스템, 그리고 기타 낮은 지연 시간과 높은 처리량이 요구되는 데이터‑분석 워크로드에서 FPGA 기반 가속기의 활용 가능성을 크게 확대할 것으로 기대됩니다.

Start searching

Enter keywords to search articles

↑↓
ESC
⌘K Shortcut