Biblioteca de C++ con bindings para Python para buscar similitudes y agrupar vectores densos de forma eficiente, con aceleración opcional mediante GPU.
NVIDIA/raft
Biblioteca header-only de C++ acelerada con CUDA y wrappers de Python para primitivas reutilizables de machine learning, álgebra lineal y recuperación de información en GPUs NVIDIA.
- Estrellas
- 1,052
- Forks
- 256
- Issues abiertos
- 446
- Último commit
- hace 13 horas
¿Qué es?
RAFT es una biblioteca de algoritmos y primitivas fundamentales para machine learning y recuperación de información, con implementaciones aceleradas con CUDA pensadas como componentes básicos para aplicaciones de GPU de alto rendimiento. Incluye álgebra lineal densa y dispersa, solvers, estadísticas y muestreo, cálculos de distancias y conversiones de formatos de datos, además de infraestructura de comunicación multinodo y multi-GPU.
RAFT es una biblioteca de plantillas de C++ header-only, con una biblioteca compartida opcional que puede reducir los tiempos de compilación para tipos de plantillas comunes y expone APIs de runtime invocables desde el host que no necesitan un compilador de CUDA. La memoria se gestiona mediante recursos de CCCL o NVIDIA RMM, y las entradas usan vistas mdspan con una capa propietaria mdarray. Los usuarios de Python disponen del paquete pylibraft, que envuelve las APIs de runtime y acepta cualquier objeto compatible con __cuda_array_interface__, y de raft-dask, que permite crear algoritmos distribuidos para GPU en clústeres de Dask.
RAFT está dirigido a desarrolladores que crean bibliotecas y aplicaciones, no a científicos de datos que realizan análisis exploratorios. Los paquetes se distribuyen mediante Conda y, de forma experimental, mediante pip para CUDA 12 y 13.
Funciones clave
- 01Biblioteca de plantillas de C++ header-only con una biblioteca compartida opcional para acelerar la compilación.
- 02APIs de runtime invocables desde el host que no requieren un compilador de CUDA.
- 03Primitivas de álgebra lineal densa y dispersa, solvers y estadísticas.
- 04Wrappers de Python mediante pylibraft, interoperables con CuPy, PyTorch, Numba y cuDF.
- 05Comunicación multinodo y multi-GPU mediante raft-dask en clústeres de Dask.
Casos de uso
- Crear componentes de búsqueda vectorial o de vecinos más cercanos acelerados con GPU dentro de un sistema más grande.
- Escribir algoritmos CUDA personalizados que reutilicen primitivas probadas de álgebra lineal y reducción.
- Ejecutar algoritmos distribuidos para GPU en varios nodos con Dask.
- Invocar primitivas de GPU desde Python sin escribir código CUDA.
Inicio rápido
- 1
Instala RAFT mediante conda (CUDA 13)
mamba install -c rapidsai -c conda-forge raft-dask pylibraft cuda-version=13.3 - 2
O instala pylibraft mediante pip (CUDA 12)
pip install pylibraft-cu12
Antes de usarlo
- Requiere una GPU NVIDIA con CUDA; no se puede usar en máquinas que solo tengan CPU.
- Está pensado para primitivas de bajo nivel, no para su uso directo en ciencia de datos.
- Los paquetes de pip son experimentales y no incluyen encabezados de C++.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es raft?
- Biblioteca header-only de C++ acelerada con CUDA y wrappers de Python para primitivas reutilizables de machine learning, álgebra lineal y recuperación de información en GPUs NVIDIA. RAFT es una biblioteca de algoritmos y primitivas fundamentales para machine learning y recuperación de información, con implementaciones aceleradas con CUDA pensadas como componentes básicos para aplicaciones de GPU de alto rendimiento. Incluye álgebra lineal densa y dispersa, solvers, estadísticas y muestreo, cálculos de distancias y conversiones de formatos de datos, además de infraestructura de comunicación multinodo y multi-GPU.
- ¿raft es gratuito? ¿Qué licencia tiene?
- raft es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿raft sigue mantenido?
- Mantenimiento activo. El último commit de raft fue el 6 nov 2026.
- ¿Para qué puedo usar raft?
- Crear componentes de búsqueda vectorial o de vecinos más cercanos acelerados con GPU dentro de un sistema más grande. Escribir algoritmos CUDA personalizados que reutilicen primitivas probadas de álgebra lineal y reducción. Ejecutar algoritmos distribuidos para GPU en varios nodos con Dask. Invocar primitivas de GPU desde Python sin escribir código CUDA.
- ¿Cómo se instala raft?
- Instala RAFT mediante conda (CUDA 13): mamba install -c rapidsai -c conda-forge raft-dask pylibraft cuda-version=13.3 O instala pylibraft mediante pip (CUDA 12): pip install pylibraft-cu12
- ¿Dónde consigo raft?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/NVIDIA/raft
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Biblioteca de plantillas de CUDA C++ y DSL de Python para escribir kernels GEMM y de álgebra lineal de alto rendimiento en GPU NVIDIA.
Una biblioteca header-only de C++20 para expresiones de tensores al estilo NumPy que se ejecutan en GPU NVIDIA o en CPU multinúcleo, con fusión de kernels opcional.
Una biblioteca rápida y ergonómica de tensores N-dimensionales en Nim, con backends para CPU, CUDA y OpenCL, orientada al cálculo numérico y al deep learning.
Una biblioteca de Python para agrupar rápidamente en CPU grandes vectores de embeddings de alta dimensionalidad, con una API al estilo de scikit-learn.
Biblioteca de C++ y herramienta de línea de comandos para buscar rápidamente vecinos más cercanos aproximados en vectores de alta dimensión mediante índices de grafos y árboles.