NVIDIA начала развивать поддержку Rust для разработки программ, которые работают напрямую на видеокартах компании.
Новый инструмент CUDA Rust позволит создавать GPU-ядра на этом языке и компилировать их сразу в формат PTX, который понимают чипы NVIDIA.
Раньше Rust уже использовали вокруг ИИ-систем — для драйверов, серверных компонентов и инструментов запуска моделей. Но сами вычислительные ядра для GPU в основном писали на CUDA C++. Теперь NVIDIA хочет добавить Rust в этот важный участок разработки.
При этом компания продолжит развивать CUDA C++ и CUDA Python. CUDA Rust станет отдельным направлением, которое будет улучшаться в ближайшие годы.
Читают прямо сейчас:
Обзор языка программирования Rust — как устроена система типов и управление памятью в Rust и почему NVIDIA выбрала его для безопасной GPU-разработки
Процессоры Apple M1: что такое архитектура RISC и CISC — как устроены параллельные вычисления и почему модель SIMT на тысячах потоков GPU так отличается от CPU-разработки
Как обучают нейросети: методы и алгоритмы — какие именно GPU-ядра пишут для ИИ-систем и зачем NVIDIA открывает Rust-доступ к этому слою
Новый подход к разработке ИИ-систем
NVIDIA предлагает два способа писать GPU-код на Rust.
Первый — привычная модель SIMT, которая используется в CUDA C++. Разработчик описывает работу одного потока, а видеокарта запускает тысячи таких потоков одновременно. Этот вариант дает больше контроля над производительностью и памятью.
Второй — более новый подход Tile. Здесь программист работает не с отдельными потоками, а с блоками данных. Распределением нагрузки занимается сам компилятор, поэтому разработчику не нужно вручную управлять каждым элементом.
NVIDIA считает, что для новых проектов лучше начинать с Tile, а SIMT оставлять для случаев, когда нужен максимальный контроль.
Первые инструменты уже появились
Для Rust-разработчиков доступны два экспериментальных проекта.
cuda-oxide позволяет писать GPU-код в стиле CUDA C++. Он объединяет код для процессора и видеокарты в одном файле и использует систему типов Rust, чтобы заранее находить ошибки при работе с памятью.
cutile-rs работает с новой моделью Tile. Его преимущество — более высокий уровень абстракции: разработчику не нужно напрямую управлять потоками и общей памятью, что упрощает создание безопасного GPU-кода.
Оба проекта пока находятся на ранней стадии. cuda-oxide доступен как альфа-версия, а cutile-rs уже используется в некоторых проектах, включая инструменты вокруг Hugging Face Grout и mistral.rs.
Большая скидка — 16% на все курсы Практикума
Если вы читаете эту новость, тогда вы точно разбираетесь в технологиях. Стать лучше и зарабатывать больше можно после курсов Практикума — по искусственному интеллекту, анализу данных и программированию.
До 17 сентября на все курсы действует скидка 16%, она применится автоматически при оплате!
В Практикуме есть программы для начинающих и специалистов с опытом, которые хотят обновить знания или освоить новое направление.
