gunrock/gunrock
Programmable CUDA/C++ GPU Graph Analytics
해결하는 문제
GPU에서의 그래프 분석은 저수준 병렬 처리와 메모리를 직접 관리해야 하기 때문에 전통적으로 구현이 어렵습니다. Gunrock은 정점(vertex)이나 간선(edge) 프론티어에 대한 연산에 집중하는 고수준의 데이터 중심 추상화를 제공하여 이 문제를 해결합니다. 덕분에 깊은 GPU 전문 지식 없이도 BFS나 PageRank와 같은 알고리즘을 빠르게 구현할 수 있습니다.
작동 방식
Gunrock은 벌크 동기/비동기 프로그래밍 모델을 기반으로 합니다. 정점이나 간선의 프론티어를 정의한 후 advance(프론티어로부터 탐색) 및 filter(요소 제거)와 같은 연산을 적용합니다. 이 라이브러리는 최적화된 GPU 프리미티브와 세밀한 로드 밸런싱을 제공하며, API를 통해 단일 GPU에서 노드 내 다중 GPU까지 확장할 수 있습니다.
대상 사용자
GPU에서 그래프 알고리즘을 구축하거나 실행해야 하는 개발자, 연구원, 엔지니어에게 적합합니다. 특히 저수준 CUDA를 처음부터 작성하지 않고도 성능과 표현력 사이의 균형을 원하는 사용자에게 유용합니다.
주요 특징
- NVIDIA CUDA 및 AMD ROCm/HIP 백엔드 모두 지원
- 사전 구축된 알고리즘 포함: BFS, SSSP, PageRank, Betweenness Centrality, Graph Coloring 등
- 작은 코드 크기: BFS 구현을 몇 개의 람다 표현식으로 작성 가능
- 단일 GPU에서 노드 내 다중 GPU까지 확장 가능
- pygunrock을 통한 Python 바인딩 제공
- Apache 2.0 라이선스
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트