Andrzej Janik przedstawił plan dalszego rozwoju projektu ZLUDA, który rozwija otwartą realizację technologii CUDA. Pierwsza wersja ZLUDA miała na celu stworzenie realizacji CUDA dla GPU Intel, druga - dla GPU AMD, a obecnie przedstawiona trzecia wersja będzie skoncentrowana na rozwoju uniwersalnej realizacji CUDA dla wszelkich GPU innych niż GPU NVIDIA. Celem projektu ZLUDA jest umożliwienie na systemach z GPU innymi niż NVIDIA uruchamiania niemodyfikowanych aplikacji CUDA z wydajnością bliską wydajności aplikacji uruchamianych bez pośredników. Kod projektu jest nadal rozpowszechniany na licencjach MIT i Apache 2.0.
W początkowym etapie projekt ZLUDA rozwijał się dla GPU Intel, jednak w 2021 roku ta firma uznała, że możliwość uruchamiania aplikacji CUDA na GPU Intel nie jest interesująca biznesowo i nie wsparła dalszego rozwoju inicjatywy. Na początku 2022 roku programista odszedł z Intela i podpisał umowę z AMD na opracowanie warstwy zgodności z CUDA dla GPU tej firmy. Po dwóch latach firma AMD straciła zainteresowanie możliwością uruchamiania aplikacji CUDA na GPU AMD.
Zgodnie z warunkami umowy i po uzyskaniu zezwolenia na publikację od przedstawiciela AMD w trakcie korespondencji e-mailowej, Andrzej udostępnił kod opracowań stworzony podczas pracy w AMD, który pozwalał na uruchamianie aplikacji CUDA na rozwijanym przez AMD stosie ROCm i runtime HIP (Heterogeneous-computing Interface for Portability). Sześć miesięcy po publikacji prawnicy AMD skontaktowali się z Andrzejem i dali do zrozumienia, że wcześniej udzielone w trakcie korespondencji zezwolenie nie ma mocy prawnej. W rezultacie Andrzej był zmuszony usunąć z publicznego dostępu kod ZLUDA, stworzony w czasie pracy w AMD.
Nowa wersja ZLUDA będzie oparta na kodzie źródłowym, który istniał przed rozpoczęciem pracy Andrzeja w AMD, nie będzie przypisana do konkretnych GPU i skoncentruje się na uruchamianiu aplikacji wykorzystujących CUDA do przyspieszania zadań związanych z uczeniem maszynowym i sztuczną inteligencją (wcześniej ZLUDA był głównie nastawiony na aplikacje do tworzenia treści, takie jak Arnold Render, Blender i 3DF Zephyr). W planach jest również możliwość uruchamiania frameworków Llama.cpp, PyTorch i TensorFlow na ZLUDA z wykorzystywaniem w nich optymalizacji CUDA dla GPU NVIDIA.
Na początku projekt skoncentruje się na pracy na GPU AMD, ale później zostanie dostosowany do GPU Intel. Realizacja dla GPU AMD zostanie stworzona od podstaw, będzie wspierać GPU co najmniej oparte na architekturze RDNA1 i będzie korzystać ze stosu ROCm 6.1+ zamiast stosu ROCm 5, który był wykorzystywany w wcześniej stworzonym rozwiązaniu dla AMD. Planowane jest osiągnięcie parytetu funkcjonalności z poprzednią realizacją, którą Andrzej musiał usunąć z dostępu publicznego, w trzecim kwartale 2025 roku.
Źródło: opennet.ru
