Core Concepts
iSpLib은 그래프 신경망 학습 및 추론을 가속화하기 위해 자동 튜닝된 희소 연산을 제공하는 PyTorch 기반 C++ 라이브러리입니다. 이를 통해 기존 PyTorch 및 PyTorch Geometric 구현 대비 최대 27배 빠른 학습 속도를 달성할 수 있습니다.
Abstract
iSpLib은 그래프 신경망의 핵심 연산인 희소-밀집 행렬 곱셈(SpMM)과 샘플링된 밀집-밀집 행렬 곱셈(SDDMM)을 자동으로 최적화하는 라이브러리입니다. 주요 특징은 다음과 같습니다:
범용성: GCN, GraphSAGE, GIN 등 다양한 그래프 신경망 모델을 지원하며, SpMM, SDDMM 등의 기본 연산을 제공합니다. 사용자 정의 연산도 가능합니다.
빠른 학습 및 추론: 병렬화, 스레드 스케줄링, 루프 언롤링, 레지스터 블로킹, 역전파 중 중간 행렬 캐싱 등의 최적화를 통해 기존 라이브러리 대비 큰 성능 향상을 달성합니다.
하드웨어 독립성: 자동 튜닝 기능을 통해 Intel, AMD, ARM 등 다양한 CPU 환경에서 일관된 성능을 제공합니다.
사용자 친화성: PyTorch 및 PyTorch Geometric 라이브러리와 쉽게 통합되어, 사용자는 단 2줄의 코드로 iSpLib의 최적화된 연산을 활용할 수 있습니다.
실험 결과, iSpLib은 GCN, GraphSAGE, GIN 등 다양한 그래프 신경망 모델에서 기존 PyTorch 및 PyTorch Geometric 구현 대비 최대 27배의 학습 속도 향상을 보였습니다. 이는 정확도 저하 없이 달성된 것으로, iSpLib이 그래프 신경망 연구 및 실용화에 기여할 것으로 기대됩니다.
Stats
GCN 모델에서 Reddit 데이터셋 사용 시 iSpLib이 PyTorch 2.1.0 대비 93배 빠른 학습 속도를 보였습니다.
GCN 모델에서 Amazon Products 데이터셋 사용 시 iSpLib이 PyTorch 2.1.0 대비 53.54배 빠른 학습 속도를 보였습니다.
GraphSAGE-SUM 모델에서 Reddit2 데이터셋 사용 시 iSpLib이 PyTorch 2.1.0 대비 31.92배 빠른 학습 속도를 보였습니다.
GIN 모델에서 Reddit2 데이터셋 사용 시 iSpLib이 PyTorch 2.1.0 대비 50.91배 빠른 학습 속도를 보였습니다.
Quotes
"iSpLib은 PyTorch 기반 그래프 신경망 구현에 쉽게 통합될 수 있으며, 단 2줄의 코드로 최적화된 연산을 활용할 수 있습니다."
"iSpLib은 다양한 CPU 환경에서 일관된 성능을 제공하며, 자동 튜닝 기능을 통해 하드웨어 의존성을 낮추었습니다."