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)를 활용해 메모리를 할당하고 mdspanmdarray를 사용해 다차원 데이터를 표현합니다. 이러한 도구들을 다양한 환경에서 사용할 수 있도록 두 개의 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++ 프로젝트에 쉽게 통합할 수 있습니다.