희소 행렬-행렬 곱셈(SpMM)은 딥러닝 모델과 과학 컴퓨팅에서 필수적이다. 최근 GPU의 Tensor Core(TC)는 원래 혼합 정밀도를 사용하는 조밀 행렬 곱셈을 위해 설계되었으나, 그 중요성이 크게 부각되고 있다. 그러나 희소 행렬에서 0이 아닌 원소의 개수가 가변적이고 메모리 접근 패턴이 불규칙하기 때문에, SpMM에 TCs를 활용하는 것은 어렵다. 데이터 국소성(data locality)을 개선하기 위해 선행 연구에서는 곱셈 전에 희소 행렬을 재배열(reordering)하는 방법을 제안했지만, 이는 계산 오버헤드를 추가한다. 본 논문에서는 행렬 재배열 없이 CSR(Compressed Sparse Row) 형식을 사용하면서 TCs를 활용하는 Tensor Core-Adapted SpMM(TCA-SpMM)을 제안한다. TC 활용을 최적화하기 위해 SpMM 알고리즘의 내적(dot product) 연산을 블록드 행렬-행렬 곱셈(blocked matrix–matrix multiplication)으로 변환한다. 로드 불균형을 해결하고 데이터 이동을 최소화하는 것은 SpMM 커널을 최적화하는 데 핵심이다. 우리의 TCA-SpMM은 여러 행을 동시에 처리하기 위해 스레드 블록을 동적으로 할당하고, 데이터 이동을 줄이기 위해 공유 메모리를 효율적으로 사용한다. Deep Learning Matrix Collection 공개 데이터셋의 희소 행렬에 대한 성능 결과는 TCA-SpMM이 TCs를 최적화하여 구현된 최첨단 SpMM 구현 대비 최대 29.58×의 속도 향상을 달성함을 보여준다.
*본 초록은 AI를 통해 원문을 번역한 내용입니다. 정확한 내용은 하기 원문에서 확인해주세요.