NVIDIA CUDA можно использовать на ускорителях Intel, но пока лишь в Geekbench
Использование графических ускорителей для задач, выходящих за рамки простого рендеринга 3D-графики — та отрасль, которая принесла NVIDIA миллиарды в секторе центров обработки данных (а теперь — и в майнинге). Её собственная платформа CUDA и API с самого начала были эксклюзивными для видеокарт компании. Но теперь технология доступна и на ускорителях Intel.
Конечно, и раньше существовали инструменты для переноса приложений CUDA на широко поддерживаемые языки вроде OpenCL. Однако даже полуавтоматические инструменты, такие как HIPCL, требовали вмешательства разработчика. А вот новая библиотека ZLUDA обещает запускать приложения CUDA непосредственно на графических процессорах Intel без каких-либо изменений. ZLUDA использует Intel oneAPI Level Zero для трансляции или эмуляции команд CUDA.
Разработчики ZLUDA описывают своё детище как прямую замену CUDA на системах с графическими процессорами Intel, используемыми в процессорах Skylake и более поздних. Новейшая версия поддерживает как Windows, так и Linux с графикой 9-го поколения или более новой. По словам разработчиков, ZLUDA способна достигать почти той же производительности, как если бы код был скомпилирован напрямую. Но пока есть и большие ограничения: поддерживаемая функциональность существенно ограничена. По сути, в настоящее время библиотека реально работает только в Geekbench, а потенциальных пользователей предупреждают, что не следует полагаться на неё при разработке важного ПО.
Использование ZLUDA в Windows кажется достаточно простым. Для этого нужно загрузить последнюю сборку со страницы ZLUDA в GitHub. Скачанный архив включает в себя «оболочку» для запуска любого приложения с поддержкой CUDA и необходимую библиотеку. Затем следует просто запустить оболочку из командной строки с приложением в качестве аргумента (zluda_with — geekbench5 —compute CUDA). Впрочем, у журналистов Hot Hardware этот способ выдал ошибку.
В Linux автор ZLUDA смог прогнать тесты для Core i5-8700K, набрав 6333 балла с CUDA с использованием встроенной графики UHD 630 против 6482 баллов при исполнении через OpenCL. Это небольшое общее снижение производительности, но есть любопытные нюансы. Некоторые тесты Geekbench оказались значительно медленнее, но, например, тест Stereo Matching был примерно на 50 % быстрее с использованием ZLUDA, чем с OpenCL.
Другими словами, у создателей ZLUDA впереди ещё долгий путь — библиотека прошла только через выход второй крупной сборки. Тем не менее, это интересный проект. Видеокарты Intel DG1 уже выпущены для OEM-производителей, и кажется, что более быстрые DG2 не за горами. Хотя интегрированная графика служит интересным доказательством концепции, нет никаких сомнений в том, что дискретная графика Intel куда интереснее в перспективе для ZLUDA.