구조적 희소 행렬을 위한 스테이징 블록 평가
초록
SABLE은 구조적 희소 행렬의 가변 크기 밀집 블록을 자동으로 탐지·분할하고, 전처리 단계에서 특화 코드를 생성해 SpMV·SpMM 연산을 가속한다. 새로운 하이브리드 저장 형식 VBR‑C와 스테이징 컴파일러를 결합해 평균 10 %(SpMV)·20 %(SpMM)의 성능 향상을 달성했으며, 8 스레드에서 최대 7배 가속을 보인다.
상세 분석
본 논문은 구조적 희소 행렬, 즉 비영점이 클러스터 형태로 집중된 행렬에 대한 효율적인 처리 방안을 제시한다. 기존의 CSR·COO와 같은 전통적인 희소 포맷은 인덱스 간접 접근 비용이 커서 비영점 비율이 낮을 때는 성능이 급격히 저하된다. 반면 BCSR·VBR과 같은 블록 기반 포맷은 일정 크기의 블록을 밀집 형태로 저장해 메모리 지역성을 확보하지만, 블록 크기를 고정하면 실제 데이터와 맞지 않아 패딩 비용이 발생하고, 가변 블록을 직접 순회하면 루프 경계가 실행 시점에 결정돼 오버헤드가 늘어난다.
SABLE은 이러한 딜레마를 “인스펙터‑익스큐터” 패러다임에 스테이징을 도입함으로써 해결한다. 먼저 파티셔너가 입력 행렬을 스캔해 𝛿‑dense(밀도 ≥ 𝛿 %) 블록을 탐색한다. 여기서 𝛿는 0.5로 고정하고, 최소 면적 A_min = 2500(≈ 50 × 50)이라는 두 개의 휴리스틱을 적용한다. 블록 탐색은 CSR와 CSC 양쪽에서 수행되며, 외부 차원을 기준으로 시작점 o₀ 을 잡고 내부 차원 히스토그램 H 를 누적해 두 포인터 슬라이딩 윈도우로 최적 밀도·면적 조합을 찾는다. 탐색된 후보는 스코어 = area·(density‑0.5)¹·⁵ 로 평가하고, 가장 높은 점수를 가진 블록을 채택한다. 채택 전에는 가장자리 행·열을 반복적으로 제거해 밀도를 향상시키는 트리밍 과정을 거친다. 이후 선택된 블록의 행·열을 마크하고, 네 개의 서브 영역(위·아래·좌·우)으로 재귀 분할한다. 이 과정에서 블록 간 중복을 방지하는 “배제 불변식”을 유지해 VBR‑C 포맷과 완벽히 호환되도록 만든다.
VBR‑C는 기존 VBR의 변형으로, 𝛿‑dense 블록은 VBR 구조에 저장하고, 나머지 희소 영역은 사용자가 지정한 CSR·CSC 등 기존 포맷으로 유지한다. 이렇게 하면 밀집 블록은 연속 메모리에 배치돼 SIMD 벡터화가 용이하고, 희소 블록은 최신 라이브러리(예: Intel MKL, OpenBLAS)의 최적화된 커널을 그대로 활용할 수 있다.
스테이징 컴파일러는 파티셔너가 만든 메타데이터(블록 좌표·크기·𝛿)를 입력으로 받아, 각 블록 특성에 맞는 특수화 코드를 자동 생성한다. 𝛿 > 0.5인 경우는 cblas_dgemv·cblas_dgemm 등 BLAS 루틴을 호출하거나, 블록 형태에 최적화된 손작성 커널을 삽입한다. 𝛿 ≤ 0.5인 경우는 기존 희소 커널에 위임한다. 코드 생성 단계에서 루프 바운드가 컴파일 타임에 고정되므로, 런타임 오버헤드가 사라지고 자동 벡터화가 극대화된다. 또한, 빈 블록은 완전히 스킵해 불필요한 메모리 접근을 제거한다.
실험은 SuiteSparse 벤치마크 30여 개 행렬을 대상으로 SpMV·SpMM 성능을 평가했다. SABLE은 가장 좋은 전통적 CSR 기반 SpMV 구현 대비 평균 10 % 향상을 보였으며, 일부 행렬에서는 2배 이상 가속했다. SpMM에서는 평균 20 % 향상, 최고 2.6배 가속을 기록했다. 멀티스레드(8 스레드) 환경에서는 스레드 수준에서 블록 별 작업을 병렬화해, 전통적 완전 희소 구현 대비 최대 7배 속도 향상을 달성했다. 파티셔너의 실행 시간은 대부분 수초 내에 끝났으며, 가장 큰 행렬에서도 4시간 제한 내에 충분히 블록을 찾았다.
핵심 기여는 (1) 𝛿‑dense 블록을 자동으로 탐지·분할하는 휴리스틱 파티셔너, (2) VBR‑C라는 새로운 하이브리드 저장 포맷, (3) 스테이징 기반 특수화 컴파일러, (4) 실제 워크로드에 대한 광범위 실험이다. 이 접근법은 구조적 희소성을 가진 신경망 프루닝, 그래프 분석, 과학 시뮬레이션 등 다양한 도메인에 적용 가능하며, 향후 블록 형태에 맞는 더 정교한 커널이나 자동 튜닝 기법과 결합하면 추가적인 성능 향상이 기대된다.
댓글 및 학술 토론
Loading comments...
의견 남기기