Встраиваемый в Python язык программирования, который JIT-компилирует численные ядра для запуска на CPU и GPU, включая CUDA, Vulkan и Metal.
NVIDIA/cuda-rust
Платформа NVIDIA для CUDA на Rust: runtime-крейты для хоста и модели SIMT и Tile для написания GPU-ядер на Rust.
- Звёзды
- 4,007
- Форки
- 364
- Открытые issues
- 234
- Последний коммит
- 14 часов назад
Что это?
CUDA Rust позволяет разработчикам на Rust работать с GPU NVIDIA. В проект входят host-side-крейты для CUDA driver API — они охватывают контексты, потоки, буферы устройств, события и ленивые, комбинируемые async-операции, — а также две модели программирования ядер на устройстве.
Компонент cuda-oxide предназначен для традиционной модели SIMT, в которой код пишется для отдельных потоков, а потоками, блоками и shared memory разработчик управляет самостоятельно. Он реализован как пользовательский backend генерации кода для rustc и заранее компилирует Rust в PTX. Компонент cutile-rs предназначен для модели Tile: ядра работают с целыми тайлами многомерных тензоров, а компилятор распределяет вычисления с учётом архитектуры. Это proc-macro-плагин, который компилирует код с помощью JIT при первом запуске.
Обе модели распространяют правила владения Rust на границу запуска GPU-ядра: перед запуском изменяемые буферы делятся на непересекающиеся части, а неизменяемые буферы используются совместно. Проект позиционируется как раннее исследование, поэтому некоторые возможности могут быть не реализованы, а API — меняться.
Ключевые возможности
- 01Rust-привязки к driver API на стороне хоста: контексты, потоки, буферы устройств и события.
- 02Модель ядер SIMT с явными индексами потоков и блоков и предварительной компиляцией в PTX.
- 03Модель ядер Tile, работающая с тайлами тензоров и компилирующаяся с помощью JIT при первом запуске.
- 04Правила заимствования в стиле системы владения применяются к буферам устройств при запуске ядер.
- 05Ядра обеих моделей могут работать в одном потоке с общими буферами устройств.
Сценарии использования
- Написание собственных GPU-ядер на Rust, когда нужен точный контроль над потоками, варпами и shared memory.
- Представление плотных тензорных или численных вычислений в виде операций над тайлами с передачей планирования компилятору.
- Создание async-конвейеров для GPU с комбинируемыми операциями над устройством на основе общих runtime-крейтов.
В подборках
Темы
Частые вопросы
- Что такое cuda-rust?
- Платформа NVIDIA для CUDA на Rust: runtime-крейты для хоста и модели SIMT и Tile для написания GPU-ядер на Rust. CUDA Rust позволяет разработчикам на Rust работать с GPU NVIDIA. В проект входят host-side-крейты для CUDA driver API — они охватывают контексты, потоки, буферы устройств, события и ленивые, комбинируемые async-операции, — а также две модели программирования ядер на устройстве.
- cuda-rust можно использовать бесплатно? Какая у него лицензия?
- cuda-rust распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- cuda-rust всё ещё поддерживается?
- Активно поддерживается. Последний коммит в cuda-rust — 7 нояб. 2026 г..
- Для чего можно использовать cuda-rust?
- Написание собственных GPU-ядер на Rust, когда нужен точный контроль над потоками, варпами и shared memory. Представление плотных тензорных или численных вычислений в виде операций над тайлами с передачей планирования компилятору. Создание async-конвейеров для GPU с комбинируемыми операциями над устройством на основе общих runtime-крейтов.
- Где скачать cuda-rust?
- Исходный код и инструкции по установке — на GitHub: https://github.com/NVIDIA/cuda-rust
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Header-only библиотека C++ для написания параллельных программ на основе графов задач с поддержкой многопоточности на CPU и вычислений на GPU через CUDA.
Профилировщик Python, показывающий загрузку CPU и GPU, а также потребление памяти для каждой строки кода; может предлагать оптимизации с помощью ИИ.
C++-сервер для инференса LLM на потребительских GPU и смешанных системах AMD/NVIDIA со спекулятивным декодированием, спекулятивным prefill и кастомными ядрами.
Библиотека массивов, совместимая с NumPy и SciPy, для запуска существующего Python-кода на GPU NVIDIA CUDA или AMD ROCm.
Библиотека шаблонов CUDA C++ и DSL для Python для написания высокопроизводительных GEMM-ядер и других ядер линейной алгебры на GPU NVIDIA.