Анджей Яник представи план за бъдещото развитие на проекта 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 година.
Източник: opennet.ru
