Инструменты8 сентября 2026 г., 23:17 МСК🤖 Auto

NVIDIA представила CUDA Rust: два пути для безопасных GPU-ядер

NVIDIA выпустила cuda-oxide и cutile-rs, позволяя писать GPU-ядра на Rust с проверкой безопасности на этапе компиляции. cutile-rs уже используется в Hugging Face Grout.

Баннер новости 7042

Закрывая пробел в экосистеме

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 ↗