NVIDIA представила CUDA Rust — два способа писать GPU-ядра на Rust

08.09.2026

NVIDIA анонсировала инструментарий CUDA Rust для разработки ядер, выполняемых на GPU, на языке Rust. Предложены два инструмента, соответствующие двум моделям разработки параллельно исполняемых ядер.

Модель SIMT и компилятор cuda-oxide

Модель SIMT — это та, в которой пишут в CUDA C++ или numba-cuda: указывается, что делает один поток, и запускаются тысячи таких потоков.

Для неё развивается компилятор cuda-oxide, позволяющий компилировать код на Rust с использованием штатной системы типов и модели владения напрямую в инструкции для выполнения в виртуальной машине CUDA PTX. Ядра для GPU создаются на обычном Rust, но выполняются в окружении без стандартной библиотеки и могут использовать только функции из библиотеки libcore и специализированные абстракции.

В CUDA-ядрах на Rust допускается применение защиты через систему типов, использование блоков unsafe и обращение к низкоуровневым аппаратным инструкциям. Для обеспечения безопасности предлагается тип, гарантирующий, что каждый поток получает эксклюзивный доступ только к своим данным.

Модель Tile и библиотека cutile-rs

Модель Tile — более новая, доступная также в C++ и Python. Для неё предлагается библиотека cutile-rs, позволяющая использовать идиоматический язык Rust для создания кода, компилируемого напрямую в CUDA-ядра.

cutile-rs применяет строгие правила владения и заимствования к коду, выполняемому на GPU. Ядро оформляется как однопоточная программа, работающая с блоком данных, а компилятор сам разбивает вычисления на потоки и обеспечивает их синхронизацию. Потокам предоставляется совместный доступ к неизменяемым тензорам, а для безопасного доступа к изменяемым тензорам применяется их разделение на непересекающиеся блоки.

Положение дел

Оба инструмента обеспечивают безопасность работы с памятью на этапе компиляции и предотвращают возникновение состояний гонки. Код cutile-rs распространяется под лицензией Apache 2.0.

Библиотека cutile-rs уже опубликована в реестре библиотек и используется в HuggingFace Grout и mistral.rs, в то время как cuda-oxide находится на ранней стадии разработки. В следующем году CUDA Rust планируют довести до уровня, пригодного для разработки рабочих проектов, аналогичного инструментариям CUDA C++ и CUDA Python.

Оригинал

NVIDIA CUDA Rust closes that gap. GPU kernels can be written in Rust, compiled natively to PTX, rather than a wrapper around code from somewhere else. There are two tracks to use Rust, matching the two tracks CUDA itself has. SIMT is the model you already write in CUDA C++ or numba-cuda. You indicate what one thread does, and launch thousands of them. Tile is a newer programming model, which is also available in C++ and Python.

Упоминаний: 1 · Просмотров: 4