Core Concepts
FlowWalker는 메모리 효율적이고 고성능의 GPU 기반 동적 그래프 랜덤 워크 프레임워크로, 효율적인 병렬 샘플링 방법과 동적 스케줄링 전략을 통해 GPU 병렬 처리를 최대한 활용하고 메모리 사용을 최소화한다.
Abstract
이 논문은 FlowWalker, 메모리 효율적이고 고성능의 GPU 기반 동적 그래프 랜덤 워크 프레임워크를 소개한다.
FlowWalker는 다음과 같은 특징을 가진다:
샘플러 중심 계산 모델: 랜덤 워크 애플리케이션을 이산적인 샘플링 작업의 집합으로 추상화하고, GPU 스레드를 체계적으로 샘플러로 구성하여 효율적으로 처리한다.
효율적인 병렬 샘플링 방법: 저장소 샘플링 기법을 GPU에 맞게 최적화하여 메모리 사용을 O(1)로 줄였다. 이를 통해 많은 수의 샘플링 작업을 동시에 실행할 수 있다.
동적 스케줄링 메커니즘: 다단계 작업 풀을 사용하여 작업을 샘플러에 효과적으로 할당하고 부하 균형을 달성한다.
이러한 설계를 통해 FlowWalker는 메모리 효율성과 성능을 모두 높일 수 있다. 실험 결과, FlowWalker는 기존 CPU, GPU, FPGA 기반 랜덤 워크 프레임워크 대비 최대 752.2배, 72.1배, 16.4배의 성능 향상을 보였다. 또한 ByteDance의 친구 추천 GNN 학습 파이프라인에서 랜덤 워크 시간을 35%에서 3%로 크게 단축했다.
Stats
추천 그래프 스냅샷(2.71억 엣지, 2.27억 정점)에서 랜덤 워크 수행 시간이 3.5시간 소요되어 전체 학습 시간의 35%를 차지했다.
FlowWalker는 기존 CPU, GPU, FPGA 기반 랜덤 워크 프레임워크 대비 최대 752.2배, 72.1배, 16.4배의 성능 향상을 보였다.
ByteDance의 친구 추천 GNN 학습 파이프라인에서 FlowWalker를 사용하여 랜덤 워크 시간을 35%에서 3%로 단축했다.
Quotes
"FlowWalker stands as the sole GPU-based solution that able to support all of the four algorithms above; FlowWalker consistently completes all test cases within a time frame of 2.2 hours, achieving up to 752.2× speedup over competitors."
"FlowWalker has negligible memory cost by getting rid of auxiliary data structures."