Библиотека на C++ с привязками для Python для быстрого поиска похожих объектов и кластеризации плотных векторов, с опциональным ускорением на GPU.
NVIDIA/raft
Header-only библиотека C++ с ускорением на CUDA и Python-обёртками для переиспользуемых примитивов машинного обучения, линейной алгебры и информационного поиска на GPU NVIDIA.
- Звёзды
- 1,052
- Форки
- 256
- Открытые issues
- 446
- Последний коммит
- вчера
Что это?
RAFT — библиотека базовых алгоритмов и примитивов для машинного обучения и информационного поиска. Её реализации с ускорением на CUDA служат строительными блоками для высокопроизводительных приложений на GPU. Библиотека охватывает плотную и разреженную линейную алгебру, решатели, статистику и выборку, вычисление расстояний и преобразование форматов данных, а также включает инфраструктуру для обмена данными между несколькими узлами и GPU.
RAFT — шаблонная библиотека C++ без исходных файлов реализации; при желании можно подключить shared library, которая сокращает время компиляции для распространённых типов шаблонов и предоставляет runtime API, вызываемые с CPU без компилятора CUDA. Управление памятью осуществляется через ресурсы CCCL или NVIDIA RMM, а для входных данных используются представления mdspan с владеющим данными слоем mdarray. Для пользователей Python доступны пакет pylibraft, оборачивающий runtime API и поддерживающий любые объекты с интерфейсом __cuda_array_interface__, и raft-dask для распределённых алгоритмов на GPU в кластерах Dask.
RAFT предназначена для разработчиков библиотек и приложений, а не для специалистов по данным, проводящих исследовательский анализ. Пакеты распространяются через Conda, а в экспериментальном режиме — также через pip для CUDA 12 и 13.
Ключевые возможности
- 01Шаблонная библиотека C++ без исходных файлов реализации с дополнительной shared library для ускорения компиляции.
- 02Runtime API, вызываемые с CPU и не требующие компилятора CUDA.
- 03Примитивы для плотной и разреженной линейной алгебры, решателей и статистики.
- 04Python-обёртки pylibraft, совместимые с CuPy, PyTorch, Numba и cuDF.
- 05Обмен данными между несколькими узлами и GPU через raft-dask в кластерах Dask.
Сценарии использования
- Создание компонентов для поиска векторов или ближайших соседей с ускорением на GPU в составе более крупной системы.
- Разработка собственных алгоритмов CUDA с повторным использованием проверенных примитивов линейной алгебры и редукции.
- Запуск распределённых алгоритмов на GPU на нескольких узлах с помощью Dask.
- Вызов GPU-примитивов из Python без написания кода CUDA.
Быстрый старт
- 1
Установите RAFT через conda (CUDA 13)
mamba install -c rapidsai -c conda-forge raft-dask pylibraft cuda-version=13.3 - 2
Или установите pylibraft через pip (CUDA 12)
pip install pylibraft-cu12
Что важно знать
- Требуется графический процессор NVIDIA с CUDA; на машинах только с CPU использовать нельзя.
- Предназначен для низкоуровневых примитивов, а не для непосредственного использования в науке о данных.
- Пакеты pip экспериментальные и не включают заголовочные файлы C++.
В подборках
Темы
Частые вопросы
- Что такое raft?
- Header-only библиотека C++ с ускорением на CUDA и Python-обёртками для переиспользуемых примитивов машинного обучения, линейной алгебры и информационного поиска на GPU NVIDIA. RAFT — библиотека базовых алгоритмов и примитивов для машинного обучения и информационного поиска. Её реализации с ускорением на CUDA служат строительными блоками для высокопроизводительных приложений на GPU. Библиотека охватывает плотную и разреженную линейную алгебру, решатели, статистику и выборку, вычисление расстояний и преобразование форматов данных, а также включает инфраструктуру для обмена данными между несколькими узлами и GPU.
- raft можно использовать бесплатно? Какая у него лицензия?
- raft распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- raft всё ещё поддерживается?
- Активно поддерживается. Последний коммит в raft — 6 нояб. 2026 г..
- Для чего можно использовать raft?
- Создание компонентов для поиска векторов или ближайших соседей с ускорением на GPU в составе более крупной системы. Разработка собственных алгоритмов CUDA с повторным использованием проверенных примитивов линейной алгебры и редукции. Запуск распределённых алгоритмов на GPU на нескольких узлах с помощью Dask. Вызов GPU-примитивов из Python без написания кода CUDA.
- Как установить raft?
- Установите RAFT через conda (CUDA 13): mamba install -c rapidsai -c conda-forge raft-dask pylibraft cuda-version=13.3 Или установите pylibraft через pip (CUDA 12): pip install pylibraft-cu12
- Где скачать raft?
- Исходный код и инструкции по установке — на GitHub: https://github.com/NVIDIA/raft
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Библиотека шаблонов CUDA C++ и DSL для Python для написания высокопроизводительных GEMM-ядер и других ядер линейной алгебры на GPU NVIDIA.
Header-only библиотека на C++20 для тензорных выражений в стиле NumPy, работающих на GPU NVIDIA или многопоточных CPU, с поддержкой слияния ядер.
Быстрая и удобная библиотека N-мерных тензоров на Nim с бэкендами для CPU, CUDA и OpenCL, предназначенная для численных вычислений и глубокого обучения.
Библиотека Python для быстрого CPU-кластеризации больших высокоразмерных embedding-векторов с API в стиле scikit-learn.
Библиотека на C++ и CLI для быстрого приближённого поиска ближайших соседей среди векторов высокой размерности с помощью графовых и древовидных индексов.