CUDA Tile теперь доступен для BASIC!

1 просмотров Источник
CUDA Tile теперь доступен для BASIC!

CUDA 13.1 представила CUDA Tile — новое поколение парадигмы программирования на GPU, основанной на тайлах, которая делает тонкую параллельность более доступной и гибкой. Одним из его ключевых преимуществ является открытость языка: любой язык программирования может использовать CUDA Tile, что позволяет разработчикам внедрять ускорение на GPU в широкий спектр экосистем. В ответ на огромный спрос со стороны опытных разработчиков мы выпускаем cuTile BASIC для GPU, который приносит программирование CUDA Tile в этот долго игнорируемый язык.

Что такое cuTile BASIC? Это выражение модели программирования CUDA Tile на BASIC, построенное на основе спецификации CUDA Tile IR. Оно позволяет писать тайловые ядра на BASIC, используя модель, которая естественно подходит для языка, который предшествует многопоточному программированию. cuTile BASIC — это идеальное сочетание мощности GPU с антикварным шармом и синтаксической простотой языка BASIC — элегантного языка из более пикселизированной эпохи. Ручная нумерация строк вашего кода никогда не выглядела так хорошо и не работала так быстро!

Кому нужен cuTile BASIC? BASIC — один из старейших языков программирования и как таковой, он почитается целым поколением разработчиков, которые с ностальгией вспоминают звук модема с 300 бод. Для многих таких разработчиков BASIC стал их первым знакомством с компьютерным программированием. Теперь разработчики, у которых BASIC все еще в памяти, могут перенести устаревшие приложения на вычисления с ускорением GPU от NVIDIA впервые. Это открывает производительность и функциональность, о которых язык BASIC никогда не мог мечтать ранее, позволяя вашему Lunar Lander перемещаться по поверхности Луны быстрее, чем миссия Artemis.

Сначала установите cuTile BASIC с помощью PIP: pip install git+https://github.com/nvidia/cuda-tile.git@basic-experimental. Полные аппаратные и программные требования для запуска cuTile BASIC перечислены в конце этого поста (рекомендуется 64k ОЗУ или больше).

Если вы изучали CUDA C++, вы, вероятно, сталкивались с каноническим ядром сложения векторов. Ядро сложения векторов в CUDA C++ выглядит примерно так: __global__ void vecAdd(float* A, float* B, float* C, int vectorLength) {...}. Теперь давайте посмотрим на эквивалентный код, написанный на cuTile BASIC. Нам не нужно указывать, что делает каждый поток. Мы просто разбиваем данные на тайлы и указываем, какие математические операции должны происходить с этими тайлами. Все остальное обрабатывается за нас.

Теперь мы покажем, как запустить это ядро сложения векторов в BASIC. Простой рабочий процесс заключается в том, что сначала функция BASIC компилируется в cubin, а затем запускается на GPU. Если у вас установлены правильные версии CUDA Toolkit и Python и вы загрузили репозиторий cuTile BASIC с GitHub, вы можете выполнить следующую команду: $ python examples/vector_add.py. Если ваш вывод выглядит так же, поздравляем, вы только что запустили свою первую программу cuTile BASIC!

Похожие статьи