NVIDIA CUDA, известная платформа для параллельных вычислений, теперь может быть использована на видеокартах AMD благодаря проекту ZLUDA. Это значительное достижение позволяет запускать приложения, разработанные для CUDA, на графических процессорах AMD, расширяя возможности для разработчиков и пользователей.
Проект ZLUDA реализует поддержку официального CUDA Driver API и использует обратный инжиниринг для интеграции недокументированных частей API CUDA. В основе ZLUDA лежит концепция замены вызовов функций CUDA на аналогичные функции, предоставляемые в HIP runtime от AMD. Например, функция cuDeviceGetAttribute() заменяется на hipDeviceGetAttribute(). Такой подход позволяет использовать существующие библиотеки NVIDIA, такие как cuBLAS и cuSPARSE, на платформе AMD с помощью транслирующих библиотек.
Первый запуск CUDA-приложений под управлением ZLUDA может занять больше времени из-за необходимости компиляции GPU-кода. Однако, после первого запуска, скомпилированный код сохраняется в кэше, что значительно ускоряет последующие запуски. В процессе выполнения производительность приложений близка к нативной.
Этот шаг стал возможным благодаря HIP SDK, выпущенному AMD. HIP SDK является частью экосистемы ROCm, которая обеспечивает поддержку высокопроизводительных вычислений на видеокартах AMD. Для использования данной технологии необходимо установить соответствующие драйверы: Radeon Software 21.12.1 или Radeon PRO Software 21.Q4 для Windows и ROCm 5.3 для Linux.
Таким образом, разработчики и исследователи теперь имеют возможность использовать мощные инструменты CUDA на видеокартах AMD, что открывает новые горизонты для высокопроизводительных вычислений и научных исследований.