The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

NVIDIA опубликовала CUDA-oxide, компилятор из Rust в CUDA

12.05.2026 09:46 (MSK)

Компания NVIDIA опубликовала первый выпуск инструментария CUDA-oxide, позволяющего создавать на языке Rust параллельно исполняемые в GPU ядра CUDA SIMT (Single Instruction, Multiple Threads). Проект позволяет компилировать код на языке Rust, использующий штатную систему типов и модель владения Rust, напрямую в инструкции для выполнения в виртуальной машине CUDA PTX (Parallel Thread Execution) без применения промежуточных предметно-ориентированных языков (DSL) и обвязок. Код инструментария написан на языке Rust и распространяется под лицензией Apache 2.0. Первый выпуск позиционируется как начальная альфа-версия.

Инструментарий включает в себя:

  • Бэкенд генерации кода для компилятора rustc, позволяющий компилировать функции с атрибутом "#[kernel]" в параллельно исполняемые на GPU ядра в представлении CUDA PTX. При компиляции используется штатная для rustc цепочка преобразований на базе фреймворка Pliron: Rust -> MIR -> Pliron IR -> LLVM IR -> PTX.
  • Унифицированная система сборки компонентов, выполняемых на хост-системе и на GPU, которая сводится к выполнению команд "cargo oxide build" и "cargo oxide run".
  • Набор Rust-абстракций, который можно использовать в ядрах на стороне GPU. Например, доступны функции для индексации, использования разделяемой памяти и барьеров, атомарных операций, синхронизации групп потоков, TMA (Tensor Memory Accelerator). Возможен вызов обвязок над низкоуровневыми инструкциями, специфичными для архитектуры Blackwell (например, расширенные матричные операции).
  • Crate-пакеты с выполняемыми на стороне хоста компонентами CUDA runtime, позволяющими управлять памятью, запускать ядра на GPU и взаимодействовать с выполняемыми на GPU функциями в асинхронном режиме.
  • Коллекция примеров ядер, демонстрирующих такие возможности, как работа с векторами, умножение матриц (GEMM), атомарные операции, асинхронное выполнение, интеграция с библиотекой MathDx, применение дженериков и замыканий, взаимодействия с CUDA-ядрами на C++/CCCL.

Ядра для GPU создаются на обычном Rust (не диалект), но выполняются в окружении no_std и могут использовать только функции из библиотеки libcore и ранее отмеченные специализированные Rust-абстракции, без доступа к стандартной библиотеке Rust (libstd). Поддерживаются примитивные типы (u8..u64, f32, f64, bool), структуры, перечисления, кортежи, массивы ([T; N]) и слайсы (&[T]), операторы match / if / if let, циклы for и while, итераторы (.iter(), .enumerate()), замыкания и дженерики. Не поддерживаются типы String, Vec и Box, макросы format!, panic! и println!, Trait-объекты и реализуемые через обращение к операционной системе функции стандартной библиотеки (работа с файлами, ввод/вывод, сетевые операции).

Доступно три уровня обеспечения безопасности CUDA-ядер на Rust: защита через систему типов (safe), использование блоков unsafe и обращение к низкоуровневым аппаратным инструкциям. Производительность созданной на CUDA-oxide реализации матричного умножения (GEMM SoL) на GPU B200 достигает 868 триллионов операций в секунду, что составляет 58% от производительности оптимизированной библиотеки cuBLAS.



  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Атака GPUBreach, позволяющая получить root-доступ через выполнение CUDA-кода на GPU NVIDIA
  3. OpenNews: Для Mesa предложен драйвер cluda, позволяющий реализовать OpenCL поверх NVIDIA CUDA
  4. OpenNews: Выпуск ZLUDA 5, универсальной открытой реализации технологии CUDA
  5. OpenNews: Проект LibreCUDA для запуска кода CUDA на GPU NVIDIA без проприетарного Runtime
  6. OpenNews: NVIDIA препятствует разработке транслирующих прослоек для запуска CUDA на других платформах
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65426-cuda-oxide
Ключевые слова: cuda-oxide, cuda, rust, nvidia
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (17) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:11, 12/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Нанейрослопили коноплятор на коленке за неделю.
     
     
  • 2.3, Данные в так называемом поле Name (?), 10:15, 12/05/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А нужен ли канпилятор Rust, когда с помощью нейросетей можно легко править дыры создаваемые на Си? Робожаба подскажет: "тута ты память освобождённую освободил, а тута залез в соседний массив".
     
     
  • 3.4, Nuzhny007 (?), 10:35, 12/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если рассчитывать на то, что нейросети тоже будут писать код, то Rust для них лучше: больше ограничений - меньше галлюцинаций.
     
     
  • 4.6, Аноним (6), 10:42, 12/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а зачем нейросетям писать на человеческих языках, если их можно обучит напрямую в инструкциях процессора писать?
     
  • 4.12, Аноним (12), 11:01, 12/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Больше ограничений - больше unwrap().
     
  • 4.13, Аноним (13), 11:04, 12/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Нейросети не умеют писать код, не распространяйте этот тynизм.
    Для нейросети любой ЯП - это просто набор иероглифов, бессмысленный ASCII. В сеть закладывают какие-то цепочки символов и чем-то это называют. Никакого ПОНИМАНИЯ ЗАДАЧИ у нейросети нет. Поэтому писать код??? Увы, не в этом столетии. Максимум - чуть более "интеллектуальный" intellisense. Да и то вопрос, что лучше - тупо статистическая выборка или "необъяснимый вывод" нейрослопа.
     
     
  • 5.15, Аноним (15), 11:10, 12/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    пользователь тоже не понимает когда кнопки жмет, но работать ему это не мешает, раки на дне реки тоже гидродинамику не понимают, но это им не мешает..
     

  • 1.2, Аноним (2), 10:11, 12/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Памать скоро ещё сильнее подорожает.
     
  • 1.5, AS (??), 10:41, 12/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    эээ т.е. если ядро на расте перепишут то оно из видяхи работать будет сразу? и материнка не нужна будет? а флешки тогда куда втыкать?
     
     
  • 2.7, Аноним (6), 10:46, 12/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    новые беспроводные флешки нужно просто прикладывать к GPU
     
  • 2.8, мяв (?), 10:54, 12/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    я вот тоже хотела пошутить про conduwuit в гпу.
    но нет, это только для того, для чего куда используется обычно. просто типа пишешь на расте и дергаешь "сискалы" куды, насколько понимаю
     

  • 1.9, Аноним (9), 10:58, 12/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > NVIDIA опубликовала CUDA-oxide, компилятор из Rust в CUDA

    Очередной удар по воинам против Раста. 😢

    "- Почему такой софт до сих пор пишут не на rust?"
    "- потому что на раст нету компилятора в гпу код, а на cpu это все юзлесс затычка"

    https://www.opennet.ru/openforum/vsluhforumID3/140006.html#3

     
     
  • 2.11, Аноним (13), 11:01, 12/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Очередной dead-born проект только для того, чтобы через 5 лет обнаружить, что поддерживать это г__но больше некому и СНОВА ПЕРЕПИСЫВАТЬ.
     
     
  • 3.16, q (ok), 11:13, 12/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Любой проект - очередной. Неочередным был лишь самый первый проект в истории человечества. Наверняка что-то связанное с изобретением палки-копалки. Любой следующий проект (изобретение колеса и так далее) - всего лишь "очередной". Переписывать софт будут всегда, потому что меняются требования, развивается экосистема. День, когда перестанут переписывать софт, наверняка будет днем, когда упадет 10-километровый метеорит или что-то такое. В остальное время переписывание софта - это естественно и правильно.
     
  • 2.18, Аноним (18), 11:18, 12/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Тебе настолько важно мнение анонимов из интернетов, что ты не поленился и привел ссылку?
     

  • 1.10, Аноним (13), 11:00, 12/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хорошая попытка, раст-аманы, но нет. Нормальные прогеры давно распробовали ваш к_а_л и у них нет никакого желания возиться в этой грязи.
     
  • 1.14, Аноним (12), 11:06, 12/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Поддерживаются примитивные типы (u8..u64, f32, f64, bool), структуры, перечисления, кортежи, массивы ([T; N]) и слайсы (&[T]), операторы match / if / if let, циклы for и while, итераторы (.iter(), .enumerate()), замыкания и дженерики

    Зачем это нужно, если всё это уже отлично работает на Си?

     
  • 1.17, Soltek (?), 11:15, 12/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Херня какая то от нвидиа
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру