Релиз ZLUDA 5 — инструментария для запуска CUDA-приложений на GPU AMD

Разработчик Анджей Яник (Andrzej Janik) опубликовал на GitHub обновлённую версию инструментария ZLUDA 5 для запуска CUDA‑приложений на GPU AMD. Исходный код проекта написан на Rust и распространяется под лицензиями MIT и Apache 2.0. Релиз ZLUDA 4 состоялся в конце 2024 года. Проект пока ограничивается работой на GPU AMD, но в дальнейшем будет адаптирован для GPU Intel.

Целью проекта ZLUDA является предоставление возможности запуска немодифицированных приложений CUDA на системах с GPU, отличных от GPU NVIDIA, с производительностью, близкой к производительности приложений, выполняемых без прослоек. Изначально проект представлял собой встроенную реализацию CUDA для работы через Intel OneAPI. В 2022 году AMD предложила разработчику финансирование для продолжения развития проекта в рамках работы по портированию инструмента для работы на графических процессорах AMD через платформу HIP/ROCm.

Решение ZLUDA позволяет разработчикам иметь доступ к поддержке CUDA для программного обеспечения, которое не оптимизировано специально для оборудования AMD. Они теперь могут использовать CUDA в качестве API рендеринга для Blender 4.0 или V‑Ray. Для Blender, в котором также доступен вычислительный рендер Radeon HIP, это означает, что графические процессоры Radeon могут работать быстрее через библиотеку ZLUDA, чем через HIP.

Ранее AMD прекратила поддержку проекта, а Яник решил опубликовать в открытом доступе свои наработки. В августе 2024 года Яник по требованию компании AMD убрал из открытого доступа часть кода открытого проекта ZLUDA. Он позволяет выполнять немодифицированные CUDA‑приложения на системах с GPU AMD через стек ROCm и runtime HIP (Heterogeneous‑computing Interface for Portability).

Основные улучшения и доработки в ZLUDA 5:

добавлена начальная поддержка запуска поверх ZLUDA фреймворков llm.c, Llama.cpp и PyTorch для выполнения больших языковых моделей с задействованием CUDA‑оптимизаций, применяемых для GPU Nvidia;

реализована начальная поддержка запуска приложений, использующих для повышения производительности библиотеки cuBLAS, cuBLASLt и nvml;

добавлена прослойка zluda_trace для трассировки приложений, использующих CUDA. При помощи zluda_trace можно диагностировать проблемы и выявлять недоработки в ZLUDA, мешающие нормальному выполнению приложения;

представлена утилита командной строки zoc (ZLUDA offline compiler), позволяющая компилировать файлы с инструкциями Nvidia PTX в промежуточное представление AMD RDNA (ранее данная функциональность была доступна в форме библиотечных функций);

в загрузчике модулей PTX реализован механизм кэширования выполняемых на GPU ядер. Кэширование позволяет избежать повторного выполнения ресурсоёмких операций компиляции инструкций PTX (Parallel Thread Execution) в машинный код для заданного GPU.

Источник: habr.com

0 0 голоса
Рейтинг новости
1
0
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии