NVIDIA/raft
RAFT contains fundamental widely-used algorithms and primitives for machine learning and information retrieval. The algorithms are CUDA-accelerated and form building blocks for more easily writing high performance applications.
What it solves
RAFT는 머신러닝 및 데이터 마이닝을 위한 CUDA 가속 기본 알고리즘 및 프리미티브 컬렉션을 제공합니다. 핵심 연산을 반복 구현하는 문제를 재사용 가능한 빌딩 블록을 제공함으로써 해결하고, 개발 시간과 유지 보수 부담을 줄이며 고성능 애플리케이션을 위한 최적화를 집중시킵니다.
How it works
RAFT는 C++ 헤더 전용 템플릿 라이브러리로 구현되며, 컴파일 시간을 단축하고 런타임 API를 제공하기 위한 선택적 공유 라이브러리도 제공합니다. RAPIDS Memory Manager (RMM)를 활용해 메모리를 할당하고 mdspan 및 mdarray를 사용해 다차원 데이터를 표현합니다. 이러한 도구들을 다양한 환경에서 사용할 수 있도록 두 개의 Python 라이브러리를 제공합니다: 런타임 API에 대한 경량 래퍼인 pylibraft와 Dask를 통한 다노드·다 GPU 분산 알고리즘 인프라인 raft-dask입니다.
Who it’s for
데이터 소스 제공자와 애플리케이션 개발자를 위해 설계되었으며, 워크플로우를 가속화하기 위한 저수준 프리미티브가 필요한 경우에 적합합니다. 탐색 및 실험을 수행하는 데이터 과학자를 위한 것은 아닙니다.
Highlights
- Broad Algorithmic Support: 밀집 및 희소 선형 대수, 솔버, 통계, 데이터 포맷 변환을 위한 가속 함수들을 포함합니다.
- Interoperability:
pylibraft는__cuda_array_interface__를 지원하여 CuPy, PyTorch, JAX, TensorFlow 및 RAPIDS cuDF와 제로 카피 통합이 가능합니다. - Distributed Computing: Dask를 사용해 다수 노드와 다수 GPU에 걸친 분산 GPU 알고리즘 구축 인프라를 제공합니다.
- Flexible C++ Design: 헤더 전용 템플릿 아키텍처로 C++ 프로젝트에 쉽게 통합할 수 있습니다.