NVIDIA випустила нативний інструментарій CUDA Rust для розробки GPU-кернелів
NVIDIA представила нативну підтримку Rust для програмування графічних процесорів через два напрями: cuda-oxide для SIMT-кернелів та cutile-rs для тайлового програмування. Розробники отримали можливість писати GPU-код із контролем пам'яті на етапі компіляції.

Вплив: Високий
Чому це важливо
Тепер можна писати GPU-кернели безпосередньо мовою Rust без проміжних C++ обгорток, гарантуючи безпеку роботи з пам'яттю ще під час збірки.
TL;DR
- 01cutile-rs підтримує стабільний Rust 1.89+ з CUDA 13.3 для високорівневого тайлового програмування.
- 02cuda-oxide транслює SIMT-кернели Rust у PTX за допомогою Pliron IR та nightly rustc.
- 03Тип DisjointSlice та контракти запуску усувають стан гонки та помилки меж на етапі компіляції.
Ключові факти
- Вимоги cutile-rs
- Стабільний Rust 1.89+, CUDA 13.3
- Вимоги cuda-oxide
- Compute capability 8.0+, CUDA 12.x+, nightly rustc
- Впровадження в екосистемі
- crates.io, HuggingFace Grout, mistral.rs
Два підходи: SIMT та Tile
Реліз CUDA Rust пропонує дві різні моделі програмування:
1. cuda-oxide (SIMT): Спеціальний бекенд генерації коду для rustc, що транслює SIMT-кернели безпосередньо в PTX через Pliron IR та LLVM. Вимагає Linux, GPU з обчислювальною здатністю від 8.0, CUDA 12.x+ та фіксовану nightly-версію інструментарію. 2. cutile-rs (Tile): Доступний на crates.io і працює на стабільному Rust 1.89+ з CUDA 13.3 без модифікацій LLVM. Компілятор автоматично оптимізує розкладку пам'яті під конкретну архітектуру GPU.
Гарантії пам'яті під час компіляції
Замість передачі зрізу &mut [f32], яку валідатор запозичень Rust блокує через ризик паралельного доступу, cuda-oxide використовує тип DisjointSlice<T>. Він забезпечує кожному потоку ексклюзивний доступ лише до власного елемента. Атрибут #[launch_contract] перевіряє параметри запуску ще до передачі задачі на пристрій.
Початок роботи
Встановіть утиліту для збірки проектів на cuda-oxide:
cargo +nightly-2026-04-03 install --git https://github.com/NVlabs/cuda-oxide.git cargo-oxideДля діагностики залежностей та драйверів запустіть команду cargo oxide doctor.
Спробуй за 2 хвилини
cargo +nightly-2026-04-03 install --git https://github.com/NVlabs/cuda-oxide.git cargo-oxide
cargo oxide doctorbash
✓ Коли використовувати
- Під час розробки високошвидкісних рушіїв інференсу та кастомних механізмів уваги виключно на Rust.
- Коли потрібні гарантії компілятора щодо відсутності помилок виходу за межі пам'яті в потоках GPU.
✕ Коли НЕ варто
- Не використовуйте cuda-oxide у продакшені, де заборонено використовувати нефіксовані nightly-збірки компілятора.
- Не підходить для старих відеокарт NVIDIA з compute capability нижче 8.0 (до архітектури Ampere).
Що зробити сьогодні
- Виконайте cargo oxide doctor на робочій GPU-станції для перевірки підтримки CUDA 12+ та compute capability 8.0+.
- Протестуйте cutile-rs з crates.io, якщо ваш рушій інференсу побудовано на стабільній версії Rust 1.89+.
- Замініть небезпечні FFI-виклики C++ кернелів на перевірені типи DisjointSlice у Rust-сервісах.
Джерела