Nvidia отказалась от проприетарной лицензии на промежуточное представление CUDA Tile и выложила проект с открытым исходным кодом.
Ранее в этом месяце, с выходом CUDA 13.1, компания объявила о модели программирования CUDA Tile как о «самом масштабном и всеобъемлющем обновлении платформы с момента её создания два десятилетия назад». Промежуточное представление (IR) для CUDA Tile стало открытым.
Промежуточное представление CUDA Tile основано на MLIR (многоуровневого промежуточного представления), что может способствовать поддержке промежуточного представления CUDA Tile в средах, отличных от Nvidia. Так, AMD использует MLIR в различной степени в своей среде ИИ и вычислений, IREE от Google играет здесь важную роль у разных производителей, а у Intel есть диалект MLIR для своего оборудования и т. д.
Существуют также различные фреймворки IR, такие как ONNX-MLIR, MLIRE-AIE, Torch-MLIR и другие. Использование MLIR в CUDA Tile IR может в конечном итоге обеспечить совместимость программного обеспечения с другими графическими процессорами и ускорителями. По крайней мере, открытый исходный код CUDA Tile IR в конечном итоге поможет таким проектам, как ZLUDA.
Код CUDA Tile состоит из диалекта Tile MLIR, привязок API Python, представления байт-кода и набора тестов на соответствие.
«CUDA Tile IR — это промежуточное представление и компиляторная инфраструктура на основе MLIR для оптимизации ядер CUDA, ориентированная на шаблоны вычислений на основе тайлов и оптимизации для тензорных ядер Nvidia. Проект предоставляет комплексную экосистему для выражения и оптимизации вычислений на основе тайлов для графических процессоров Nvidia, упрощая разработку высокопроизводительных ядер CUDA за счет абстракций для распространённых шаблонов тайлинга, управления иерархией памяти и оптимизаций, специфичных для графических процессоров», — отметили в компании.
Открытый исходный код распространяется под лицензией Apache 2.0.
В начале года разработчики Rust GPU рассказали о перезапуске проекта Rust CUDA. С его помощью можно использовать ядра CUDA в Rust и выполнять код непосредственно на графических ускорителях Nvidia с NVVM IR.
