Закрывая пробел в экосистеме
NVIDIA анонсировала CUDA Rust — инициативу по превращению Rust в язык первого класса для написания GPU-ядер. Ранее Rust мог запускать CUDA-ядра, но само тело ядра часто писалось на C++. Новые проекты от NVlabs — cuda-oxide (для модели SIMT) и cutile-rs (для модели Tile) — позволяют писать ядра нативно на Rust, используя правила владения (ownership) для отлова ошибок алиасирования на этапе компиляции.
Два пути: SIMT против Tile
Решение повторяет две существующие модели программирования CUDA. SIMT (Single Instruction, Multiple Threads) требует описания поведения одного потока, тогда как Tile описывает обработку блока данных, оставляя маппинг потоков и память на усмотрение компилятора. NVIDIA рекомендует использовать Tile по умолчанию, оставляя SIMT для случаев, где нужен явный контроль.
| Характеристика | cuda-oxide (SIMT) | cutile-rs (Tile) |
|---|---|---|
| Статус | Ранний альфа | Опубликован на crates.io |
| Требования к Rust | Пинный nightly (nightly-2026-04-03) | Stable Rust 1.89+ |
| Требования к CUDA | CUDA 12.x+ | CUDA 13.3 |
| Компиляция | Rust MIR → Pliron IR → LLVM IR → PTX | JIT-компиляция через CUDA Tile IR |
| Уровень абстракции | Потоковый (thread-level) | Тайловый (tile-level) |
| Безопасность памяти | DisjointSlice, проверка границ | Владение тензорами, исключение shared memory |
Почему это важно для разработчиков
Системный слой ИИ (драйверы, движки вывода) уже активно мигрирует на Rust. Например, драйвер Nova Linux и ядро NVIDIA Dynamo написаны на Rust. CUDA Rust устраняет последнее слабое звено — сами ядра. cutile-rs уже интегрирован в движок вывода Grout от Hugging Face и проект mistral.rs, что доказывает его практическую ценность.
Гарантии безопасности
Главное преимущество — отлов ошибок до запуска. В SIMT-режиме тип DisjointSlice<f32> гарантирует, что каждый поток имеет эксклюзивный доступ к своему элементу, а выход за границы возвращает Option, а не панику. В Tile-режиме компилятор запрещает использование перемещенных значений (например, error[E0382]: use of moved value: z), обеспечивая более строгие гарантии владения данными.
Статус готовности
Оба проекта находятся в стадии альфа-тестирования и не рекомендуются для продакшена на данный момент. Для работы cuda-oxide требуется Linux, GPU с вычислительной способностью 8.0+ и специфичный nightly-тулчейн. cutile-rs проще в настройке, но требует CUDA 13.3. NVIDIA планирует обеспечить межъязыковое взаимодействие, чтобы выбор Rust не изолировал разработчиков от C++ и Python.
Источник: MarkTechPost ↗
