NVIDIA расширяет CUDA поддержкой Rust. Компания представила два новых подхода, которые позволяют разработчикам писать GPU-ядра напрямую на Rust, а не полагаться на код, написанный на CUDA C++ или другом языке.
До сих пор приложения на Rust могли запускать CUDA-ядра, но код самих ядер обычно писали на другом языке. Новый проект CUDA Rust закрывает этот пробел: Rust-ядра компилируются напрямую в PTX, промежуточное представление, которое используют GPU NVIDIA.
Компания развивает два отдельных направления: cuda-oxide и cutile-rs. Оба рассчитаны на разработчиков на Rust, но опираются на разные модели программирования GPU.
Первый, cuda-oxide, использует традиционную модель SIMT, знакомую по CUDA C++. Разработчики напрямую работают с потоками, блоками, индексацией и памятью, а проект предоставляет собственный бэкенд генерации кода для rustc, который проводит код Rust-ядра через Rust MIR, Pliron, LLVM IR и в итоге в PTX.
Второй подход, cutile-rs, работает на более высоком уровне абстракции и использует модель программирования CUDA Tile от NVIDIA. Вместо описания того, что должен делать каждый отдельный поток GPU, разработчики оперируют блоками данных (tile), а компилятор берёт на себя детали, например распределение этих блоков по физическим потокам GPU.
Проект также задействует разбиение тензоров на части и правила владения из Rust. Каждый блок получает эксклюзивный доступ к своей записываемой части тензора, поэтому часть ошибок алиасинга и гонок отклоняется ещё на этапе компиляции, а не во время выполнения на GPU.
В NVIDIA отмечают, что эти две модели дополняют друг друга, а не конкурируют. Tile предлагается как предпочтительная отправная точка там, где разработчику не нужен прямой контроль над распределением потоков и поведением памяти, а SIMT остаётся доступным для задач, где такой низкоуровневый контроль важен.
Компания также планирует совместимость CUDA Rust, CUDA C++ и CUDA Python. Разработчики со временем смогут комбинировать разные фронтенды CUDA, а не привязывать приложение целиком к одному языку.
NVIDIA предупреждает, что функциональность пока неполная и API будут меняться по мере разработки. Компания планирует развивать и дорабатывать CUDA Rust вплоть до 2027 года и дальше.
Подробности приводятся в анонсе NVIDIA.






Пока нет комментариев. Будьте первым!