GPU 가속 옵션을 제공하는 C++ 라이브러리로, Python 바인딩을 통해 dense vector의 유사도 검색과 클러스터링을 효율적으로 수행합니다.
NVIDIA/raft
NVIDIA GPU에서 머신러닝, 선형대수, 정보 검색을 위한 재사용 가능한 프리미티브를 제공하는 CUDA 가속 C++ 헤더 전용 라이브러리 및 Python 래퍼입니다.
- 스타
- 1,052
- 포크
- 256
- 열린 이슈
- 446
- 마지막 커밋
- 어제
어떤 프로젝트인가요?
RAFT는 머신러닝과 정보 검색을 위한 기본 알고리즘과 프리미티브를 제공하는 라이브러리로, 고성능 GPU 애플리케이션의 구성 요소로 활용할 수 있는 CUDA 가속 구현을 갖추고 있습니다. 밀집 및 희소 선형대수, 솔버, 통계와 샘플링, 거리 계산, 데이터 형식 변환을 지원하며, 여러 노드와 GPU 간 통신 인프라도 포함합니다.
RAFT는 C++ 헤더 전용 템플릿 라이브러리이며, 자주 사용하는 템플릿 유형의 컴파일 시간을 줄이고 CUDA 컴파일러 없이 호출할 수 있는 호스트 런타임 API를 제공하는 선택적 공유 라이브러리도 지원합니다. 메모리는 CCCL 또는 NVIDIA RMM 리소스로 관리하며, 입력에는 mdspan 뷰와 이를 소유하는 mdarray 계층을 사용합니다. Python 사용자는 런타임 API를 래핑하고 __cuda_array_interface__를 지원하는 모든 객체를 받는 pylibraft 패키지와, Dask 클러스터에서 분산 GPU 알고리즘을 실행하는 raft-dask를 사용할 수 있습니다.
RAFT는 탐색적 분석을 수행하는 데이터 과학자보다 라이브러리와 애플리케이션을 개발하는 개발자를 대상으로 합니다. 패키지는 Conda로 배포되며, 실험적인 형태로 CUDA 12 및 13용 pip 패키지도 제공됩니다.
핵심 기능
- 01컴파일 시간을 줄여 주는 선택적 공유 라이브러리를 지원하는 C++ 헤더 전용 템플릿 라이브러리입니다.
- 02CUDA 컴파일러 없이 호출할 수 있는 호스트 런타임 API를 제공합니다.
- 03밀집 및 희소 선형대수, 솔버, 통계 프리미티브를 제공합니다.
- 04pylibraft를 통한 Python 래퍼로 CuPy, PyTorch, Numba, cuDF와 연동합니다.
- 05Dask 클러스터에서 raft-dask를 통해 여러 노드와 GPU 간 통신을 지원합니다.
활용 사례
- 더 큰 시스템 안에 GPU 가속 벡터 검색 또는 최근접 이웃 구성 요소를 구축합니다.
- 검증된 선형대수 및 리덕션 프리미티브를 재사용해 커스텀 CUDA 알고리즘을 작성합니다.
- Dask를 사용해 여러 노드에서 분산 GPU 알고리즘을 실행합니다.
- CUDA 코드를 작성하지 않고 Python에서 GPU 프리미티브를 호출합니다.
빠른 시작
- 1
conda로 RAFT 설치(CUDA 13)
mamba install -c rapidsai -c conda-forge raft-dask pylibraft cuda-version=13.3 - 2
또는 pip로 pylibraft 설치(CUDA 12)
pip install pylibraft-cu12
사용 전 알아둘 점
- CUDA를 지원하는 NVIDIA GPU가 필요하며, CPU만 있는 머신에서는 사용할 수 없습니다.
- 데이터 과학에서 직접 사용하기보다는 저수준 프리미티브를 위한 용도입니다.
- pip 패키지는 실험 단계이며 C++ 헤더가 포함되어 있지 않습니다.
포함된 컬렉션
토픽
자주 묻는 질문
- raft은(는) 무엇인가요?
- NVIDIA GPU에서 머신러닝, 선형대수, 정보 검색을 위한 재사용 가능한 프리미티브를 제공하는 CUDA 가속 C++ 헤더 전용 라이브러리 및 Python 래퍼입니다. RAFT는 머신러닝과 정보 검색을 위한 기본 알고리즘과 프리미티브를 제공하는 라이브러리로, 고성능 GPU 애플리케이션의 구성 요소로 활용할 수 있는 CUDA 가속 구현을 갖추고 있습니다. 밀집 및 희소 선형대수, 솔버, 통계와 샘플링, 거리 계산, 데이터 형식 변환을 지원하며, 여러 노드와 GPU 간 통신 인프라도 포함합니다.
- raft은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- raft은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- raft은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. raft의 마지막 커밋은 2026년 11월 6일입니다.
- raft은(는) 어디에 사용할 수 있나요?
- 더 큰 시스템 안에 GPU 가속 벡터 검색 또는 최근접 이웃 구성 요소를 구축합니다. 검증된 선형대수 및 리덕션 프리미티브를 재사용해 커스텀 CUDA 알고리즘을 작성합니다. Dask를 사용해 여러 노드에서 분산 GPU 알고리즘을 실행합니다. CUDA 코드를 작성하지 않고 Python에서 GPU 프리미티브를 호출합니다.
- raft는 어떻게 설치하나요?
- conda로 RAFT 설치(CUDA 13): mamba install -c rapidsai -c conda-forge raft-dask pylibraft cuda-version=13.3 또는 pip로 pylibraft 설치(CUDA 12): pip install pylibraft-cu12
- raft은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/NVIDIA/raft
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
NVIDIA GPU에서 고성능 GEMM 및 관련 선형대수 커널을 작성하기 위한 CUDA C++ 템플릿 라이브러리이자 Python DSL입니다.
NVIDIA GPU 또는 멀티스레드 CPU에서 실행되는 NumPy 스타일 텐서 표현식과 선택적 커널 퓨전을 지원하는 C++20 헤더 전용 라이브러리입니다.
수치 계산과 딥러닝을 위한 Nim 기반의 빠르고 사용하기 편한 N차원 텐서 라이브러리로, CPU, CUDA, OpenCL 백엔드를 지원합니다.
고차원 임베딩 벡터를 CPU에서 빠르게 클러스터링하는 scikit-learn 스타일 API의 Python 라이브러리입니다.
그래프 및 트리 인덱스를 사용해 고차원 벡터에서 빠른 근사 최근접 이웃 검색을 수행하는 C++ 라이브러리이자 명령줄 도구입니다.