- Сообщения
- 1.026
- Реакции
- 1.534
Разработчик опубликовал (
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
) на GitHub исходный код инструментария ZLUDA для запуска CUDA-приложений на GPU AMD. Изначально проект представлял собой встроенную реализацию CUDA для работы через Intel OneAPI. В 2022 году AMD предложила разработчику финансирование для продолжения развития проекта в рамках работы по портированию инструмента для работы на графических процессорах AMD через платформу HIP/ROCmПрофильные эксперты из Phoronix протестировали проект ZLUDA и подтвердили, что библиотека с поддержкой CUDA работает на ROCm без каких-либо необходимых модификаций.
Поддержка официального CUDA Driver API и изученной при помощи обратного инжиниринга части недокументированного API CUDA реализована в ZLUDA через замену вызовов функций на аналогичные функции, предоставляемые в HIP runtime, который во многом походит на CUDA. Например, функция cuDeviceGetAttribute() заменяется на hipDeviceGetAttribute(). Похожим образом обеспечивается и совместимость с библиотеками Nvidia, такими как NVML, cuBLAS и cuSPARSE; для подобных библиотек в ZLUDA предоставляются транслирующие библиотеки с тем же именем и тем же набором функций, построенные в виде надстроек над похожими библиотеками AMD. GPU-код приложений, скомпилированный в представление PTX (Parallel Thread Execution), транслируется специальным компилятором в промежуточное представление LLVM IR, на основе которого генерируется бинарный код для GPU AMD.
