Адрес: ул. Б. Очаковская 32 Москва Россия
Наши официальные канал и чат в telegram
Поднимем Devuan на вершину Distrowatch! Просто перейдите по ссылке один раз в день.

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

Новости собранные из разных RSS источников
Аватара пользователя
root:#
Site Admin
Сообщения: 2360
Зарегистрирован: Вт ноя 08, 2022 3:27 pm
Благодарил (а): 60 раз
Поблагодарили: 28 раз

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

Сообщение root:# »

NVIDIA представила CUDA Rust для разработки GPU-ядер на языке Rust
Компания NVIDIA объявила о развитии инструментария CUDA Rust, позволяющего использовать язык Rust для разработки ядер, выполняемых на стороне GPU. Инструментарий обеспечивает безопасность работы с памятью на этапе компиляции и предотвращает возникновение состояний гонки. В следующем году CUDA Rust планируют довести до уровня, пригодного для разработки рабочих проектов, аналогичного инструментариям CUDA C++ и CUDA Python. Инструментарий CUDA Rust поддерживает две модели разработки параллельно исполняемых ядер - SIMT (Single Instruction, Multiple Threads) и Tale. Модель SIMT позволяет на низком уровне определять логику одного потока, запускать тысячи таких потоков и управлять ими. Модель Tile предлагает более высокий уровень абстракции, в котором вместо явного управления отдельными потоками определяются алгоритмы действия с блоками данных (tile), а все манипуляции с потоками, синхронизацию доступа, управление памятью и распределение данных по тензорным ядрам берёт на себя компилятор Tile IR. Для разработки на языке Rust с использованием модели SIMT развивается компилятор cuda-oxide, позволяющий компилировать код на языке Rust, использующий штатную систему типов и модель владения Rust, напрямую в инструкции для выполнения в виртуальной машине CUDA PTX (Parallel Thread Execution). Ядра для GPU создаются на обычном Rust, но выполняются в окружении no_std и могут использовать только функции из библиотеки libcore и специализированные Rust-абстракции, без доступа к стандартной библиотеке Rust (libstd). В CUDA-ядрах на Rust допускается применение защиты через систему типов (safe), использование блоков unsafe и обращение к низкоуровневым аппаратным инструкциям. Для обеспечения безопасности предлагается тип DisjointSlice, гарантирующий, что каждый поток получает эксклюзивный доступ только к своим данным. Код cuda-oxide распространяется под лицензией Apache 2.0. Для применения модели Tail предлагается библиотека cutile-rs, позволяющая использовать идеоматический язык Rust для создания кода, компилируемого напрямую в CUDA-ядра. Cutile-rs применяет предлагаемые в Rust строгие правила владения и заимствования к коду, выполняемому на GPU. Ядро оформляется как однопоточная программа, работающая с блоком данных, а компилятор сам разбивает вычисления на потоки и обеспечивает их синхронизацию. Потокам предоставляется совместный доступ к неизменяемым тензорам, а для безопасного доступа к изменяемым тензорам применяется их разделение на непересекающиеся блоки. Код cutile-rs распространяется под лицензией Apache 2.0.
Источник: https://www.opennet.ru/opennews/art.shtml?num=66295