Biblioteca C++ com bindings para Python que permite fazer busca por similaridade e clustering eficientes de vetores densos, com aceleração opcional por GPU.
NVIDIA/raft
Biblioteca C++ header-only acelerada por CUDA, com wrappers em Python de primitivas reutilizáveis para machine learning, álgebra linear e recuperação de informação em GPUs NVIDIA.
- Estrelas
- 1,052
- Forks
- 256
- Issues abertas
- 446
- Último commit
- há 24 horas
O que é?
RAFT é uma biblioteca de algoritmos e primitivas fundamentais para machine learning e recuperação de informação, com implementações aceleradas por CUDA que servem como blocos de construção para aplicações de alto desempenho em GPU. Ela abrange álgebra linear densa e esparsa, solvers, estatística e amostragem, cálculo de distâncias e conversões de formatos de dados, além de incluir uma infraestrutura de comunicação multi-node e multi-GPU.
RAFT é uma biblioteca de templates C++ header-only, com uma shared library opcional que pode reduzir o tempo de compilação para tipos de template comuns e expõe APIs de runtime que podem ser chamadas pelo host sem exigir um compilador CUDA. O gerenciamento de memória é feito por meio de recursos do CCCL ou NVIDIA RMM, e as entradas usam views mdspan com uma camada proprietária mdarray. Para usuários de Python, há o pacote pylibraft, que encapsula as APIs de runtime e aceita qualquer objeto compatível com __cuda_array_interface__, e o raft-dask, que disponibiliza algoritmos distribuídos para clusters Dask.
RAFT é voltada a desenvolvedores que criam bibliotecas e aplicações, e não a cientistas de dados que fazem análises exploratórias. Os pacotes são distribuídos pelo Conda e, em caráter experimental, pelo pip para CUDA 12 e 13.
Recursos principais
- 01Biblioteca de templates C++ header-only, com uma shared library opcional para reduzir o tempo de compilação.
- 02APIs de runtime que podem ser chamadas pelo host e não exigem um compilador CUDA.
- 03Primitivas de álgebra linear densa e esparsa, solvers e estatística.
- 04Wrappers em Python via pylibraft, interoperáveis com CuPy, PyTorch, Numba e cuDF.
- 05Comunicação multi-node e multi-GPU por meio do raft-dask em clusters Dask.
Casos de uso
- Criar componentes de busca vetorial ou de vizinhos mais próximos acelerados por GPU dentro de um sistema maior.
- Escrever algoritmos CUDA personalizados que reutilizam primitivas testadas de álgebra linear e redução.
- Executar algoritmos distribuídos em GPUs de vários nodes usando Dask.
- Chamar primitivas de GPU a partir de Python sem escrever código CUDA.
Início rápido
- 1
Instale o RAFT via conda (CUDA 13)
mamba install -c rapidsai -c conda-forge raft-dask pylibraft cuda-version=13.3 - 2
Ou instale o pylibraft via pip (CUDA 12)
pip install pylibraft-cu12
Antes de usar
- Requer uma GPU NVIDIA com CUDA; não pode ser usado em máquinas apenas com CPU.
- É voltado a primitivas de baixo nível, e não ao uso direto em ciência de dados.
- Os pacotes pip são experimentais e não incluem cabeçalhos C++.
Em coleções
Tópicos
Perguntas frequentes
- O que é raft?
- Biblioteca C++ header-only acelerada por CUDA, com wrappers em Python de primitivas reutilizáveis para machine learning, álgebra linear e recuperação de informação em GPUs NVIDIA. RAFT é uma biblioteca de algoritmos e primitivas fundamentais para machine learning e recuperação de informação, com implementações aceleradas por CUDA que servem como blocos de construção para aplicações de alto desempenho em GPU. Ela abrange álgebra linear densa e esparsa, solvers, estatística e amostragem, cálculo de distâncias e conversões de formatos de dados, além de incluir uma infraestrutura de comunicação multi-node e multi-GPU.
- raft é gratuito? Qual é a licença?
- raft é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- raft ainda é mantido?
- Manutenção ativa. O último commit de raft foi em 6 de nov. de 2026.
- Para que posso usar raft?
- Criar componentes de busca vetorial ou de vizinhos mais próximos acelerados por GPU dentro de um sistema maior. Escrever algoritmos CUDA personalizados que reutilizam primitivas testadas de álgebra linear e redução. Executar algoritmos distribuídos em GPUs de vários nodes usando Dask. Chamar primitivas de GPU a partir de Python sem escrever código CUDA.
- Como instalar raft?
- Instale o RAFT via conda (CUDA 13): mamba install -c rapidsai -c conda-forge raft-dask pylibraft cuda-version=13.3 Ou instale o pylibraft via pip (CUDA 12): pip install pylibraft-cu12
- Onde consigo raft?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/NVIDIA/raft
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Biblioteca de templates CUDA C++ e DSL em Python para criar kernels GEMM e de álgebra linear relacionados, de alto desempenho, em GPUs NVIDIA.
Biblioteca header-only em C++20 para expressões de tensor no estilo NumPy, executadas em GPUs NVIDIA ou CPUs multithread, com fusão opcional de kernels.
Uma biblioteca rápida e ergonômica de tensores N-dimensional em Nim, com backends para CPU, CUDA e OpenCL, voltada à computação numérica e ao deep learning.
Biblioteca Python para agrupar rapidamente, na CPU, grandes vetores de embeddings de alta dimensionalidade, com uma API no estilo scikit-learn.
Biblioteca C++ e ferramenta de linha de comando para busca aproximada e rápida de vizinhos mais próximos em vetores de alta dimensionalidade, usando índices de grafo e árvore.