Компания Codeplay, работавшая над созданием открытой прослойки для запуска Intel oneAPI и Data Parallel C++ на графических процессорах NVIDIA, дополнила свой проект поддержкой Kronos SYCL.
SYCL — это бесплатная кроссплатформенная прослойка, позволяющая писать приложения для гетерогенных система, используя стандартный C++, что ускоряет и упрощает разработку таких приложений. Intel oneAPI, напомним, расширяет возможности SYCL.
Codeplay анонсировала экспериментальную поддержку SYCL для графических процессоров NVIDIA, причём без посредничества OpenCL. Вместо этого используется LLVM и бэк-энд NVPTX, работающий непосредственно с бинарными драйверами NVIDIA. По сути, используется CUDA, и проект носит соответствующее название, SYCL-for-CUDA.
С использованием этого проекта разработка программного обеспечения теперь может выглядеть следующим образом: для создания нужного приложения можно использовать Intel Data Parallel C++, либо, в случае уже имеющегося CUDA-приложения, портировать его «под SYCL». В последнем случае это позволяет запускать портированное приложение в средах без поддержки CUDA. Разработчики надеются, что Intel включит их наработки в массив кода компилятора Intel LLVM. Более подробную информацию можно найти в официальном блоге Codeplay.
Отдельно отметим рост популярности LLVM как основы для создания новых средств разработки для различных архитектур. На днях был представлен проект HPVM для параллельных гетерогенных вычислений, ранее Google представила MLIR для работы с ИИ-ускорителями, а этой весной в LLVM, наконец, появится официальная поддержка Fortran, что завершит перенос «большой тройки» HPC-языков в инфраструктуру компилятора.