Главная | IT | Проект ZLUDA продолжит развитие в форме универсальной реализации CUDA

Проект ZLUDA продолжит развитие в форме универсальной реализации CUDA

Andrzej-Janik

Анджей Яник (Andrzej Janik) представил план дальнейшей разработки проекта ZLUDA, развивающего открытую реализацию технологии CUDA. Если первый вариант ZLUDA был нацелен на создание реализации CUDA для GPU Intel, а второй – для GPU AMD, то представленный сейчас третий вариант будет сосредоточен на развитии универсальной реализации CUDA для любых GPU, отличных от GPU NVIDIA. Целью проекта ZLUDA заявлено предоставление на системах с GPU, отличными от NVIDIA, возможности запуска немодифицированных приложений CUDA с производительностью, близкой к производительности приложений, выполняемых без прослоек. Код проекта продолжает распространяться под лицензиями MIT и Apache 2.0.

Изначально проект ZLUDA развивался для GPU Intel, но в 2021 году данная компания посчитала предоставление возможности запуска CUDA-приложений на GPU Intel не представляющей интереса для бизнеса и не стала поддерживать развитие инициативы. В начале 2022 года разработчик уволился из Intel и заключил контракт с AMD на разработку слоя для совместимости с CUDA для GPU данной компании. Спустя два года компания AMD потеряла интерес к возможности запуска CUDA-приложений на GPU AMD.

В соответствии с условиями контракта и после получения разрешения на публикацию от представителя AMD в ходе переписки по электронной почте Анджей открыл код наработок, созданный во время работы на AMD и позволяющих выполнять CUDA-приложения поверх развиваемого компанией AMD стека ROCm и runtime HIP (Heterogeneous-computing Interface for Portability). Спустя 6 месяцев после публикации юристы AMD связались с Анджеем и дали понять, что ранее предоставленное в ходе переписки разрешение не имеет юридической силы. В итоге Анджей был вынужден убрать из открытого доступа код ZLUDA, созданный во время работы в AMD.

Новый вариант ZLUDA будет отталкиваться от кодовой базы, существовавшей до начала работы Анджея на AMD, не будет привязан к каким-то конкретным GPU и будет сосредоточен на выполнении приложений, использующих CUDA для ускорения задач, связанных с машинным обучением и искусственным интеллектом (ранее ZLUDA был ориентирован прежде всего на приложения для создания контента, такие как Arnold Render, Blender и 3DF Zephyr). Среди прочего планируется предоставить возможность работы фреймворков Llama.cpp, PyTorch и TensorFlow поверх ZLUDA с задействованием в них CUDA-оптимизаций, применяемых для GPU NVIDIA.

Первое время проект будет сфокусирован на работе на GPU AMD, но затем будет адаптирован для GPU Intel. Реализация для GPU AMD будет создана с чистого листа, будет поддерживать GPU, как минимум на базе архитектуры набора команд RDNA1, и будет использовать стек ROCm 6.1+ вместо стека ROCm 5, применявшегося в ранее созданной для AMD реализации. Паритета функциональности с прошлой реализацией, которую Анджей вынужден был убрать из открытого доступа, планируется достичь в третьем квартале 2025 года.

 

Источник