프로젝트 소개

AetherGraph는 수십억 규모로 변화하는 그래프에서 GNN 학습을 위한 고성능 그래프 샘플링 및 피처 서빙 라이브러리입니다. Rust 코어와 Python 바인딩을 결합하여 GPU 메모리 한도를 초과하는 대규모 그래프를 효율적으로 처리할 수 있습니다. **주요 기능:** - **세 가지 그래프 모드:** 정적 CSR 그래프(NVMe에서 메모리 매핑), 동적 C-tree 그래프(단일 작성자 수집, 잠금 없는 리더), 이종 그래프(타입 지정 샘플링을 갖춘 다중 관계) - **고성능:** io_uring 비동기 NVMe 읽기, NVMe 패스스루, 압축 그래프 파일(Elias-Fano + StreamVByte), 반정밀도 피처(f16/bf16), 캐시 지역성을 위한 Rabbit Order 정점 재정렬 - **실시간 피처:** CPU를 우회하는 GPUDirect RDMA 서빙(<5us)으로 실시간 피처 업데이트 - **PyTorch Geometric 통합:** 표준 Data/HeteroData 출력을 사용하는 NeighborLoader의 드롭인 대체 - **분산 학습:** 복제된 토폴로지(각 워커에 로컬 그래프)를 사용하는 Ray Data 통합 - **스토리지 유연성:** 아웃오브코어 페이징, 프로세스 간 공유 피처 메모리, 압축 형식, 계층형 캐싱 - **자유 스레드 CPython 지원:** Rust 잠금을 사용하는 No-GIL 빌드 **성능 벤치마크:** PyG의 C++ 커널보다 1.2-1.5배 빠른 샘플링, 동적 그래프 작업은 초당 9M 삽입 및 초당 38M 읽기 달성. **설치:** `pip install aethergraph`와 선택적 PyG 통합. 플랫폼별 기능(io_uring, RDMA, GPUDirect 등)은 런타임에 자연스럽게 성능이 저하됩니다. **라이선스:** MIT OR Apache-2.0