Анджей Яник (Andrzej Janik) представи версия ZLUDA 5, отворена имплементация на технологията CUDA. Целта на проекта е да предостави възможност за стартиране на немодифицирани CUDA приложения на системи с GPU, различни от GPU NVIDIA, с производителност, близка до производителността на приложенията, изпълнявани без междинни слоеве. Кодът на проекта е написан на езика Rust и се разпространява под лицензите MIT и Apache 2.0.
ZLUDA 5 стана второто значимо издание на проекта, което беше създадено след почистването на кодовата база от кода, разработен по време на работата на Анджей в компанията AMD. От 2022 година Анджей работи в AMD върху създаването на слой за съвместимост между GPU AMD и CUDA, но през 2024 година проектът беше прекратен. В съответствие с условията на договора и след получаване на разрешение за публикуване от представител на AMD, Анджей отвори кода на разработките, създадени по време на работата в AMD и позволяващи изпълнението на CUDA приложения върху стека ROCm и runtime HIP (Heterogeneous-computing Interface for Portability).
Миналата година Анджей беше принуден да премахне кода от отворен достъп след писмо от юристи, които подчертаха, че разрешението, дадено по време на кореспонденция по имейл, няма юридическа сила. След това Анджей започна работа по нова версия на ZLUDA, основана на кодовата база, съществувала преди началото на работата на Анджей в AMD. В сегашния си вид разработката е съсредоточена върху изпълнението на приложения, използващи CUDA за ускорение на задачи, свързани с машинно обучение. Проектът засега е ограничен до работа на GPU AMD, но в бъдеще ще бъде адаптиран и за GPU Intel.
Ключови подобрения в новото издание:
- Добавена е начална поддръжка за стартиране на фреймуърките llm.c, Llama.cpp и PyTorch върху ZLUDA за изпълнение на големи езикови модели с CUDA оптимизации, използвани за GPU NVIDIA.
- Реализирана е начална поддръжка за стартиране на приложения, които използват библиотеки cuBLAS, cuBLASLt и nvml за повишаване на производителността.
- Добавен е слой zluda_trace за трасировка на приложения, използващи CUDA. С помощта на zluda_trace можете да диагностицирате проблеми и да откривате недоработки в ZLUDA, които пречат на нормалното функциониране на приложението.
- Представена командна утилита zoc (ZLUDA offline компилатор), която позволява компилирането на файлове с инструкции NVIDIA PTX в междинно представяне AMD RDNA (по-рано тази функционалност беше налична под формата на библиотечни функции).
- В загрузчика на модулите PTX е реализиран механизъм за кеширане на изпълняваните на GPU ядра. Кеширането позволява да се избегне повторното изпълнение на ресурсоемки операции по компилиране на инструкции PTX (Parallel Thread Execution) в машинен код за определен GPU.
Източник: opennet.ru
