Andrzej Janik przedstawił wydanie ZLUDA 6, otwartej realizacji technologii CUDA. Celem projektu jest umożliwienie uruchamiania niemodyfikowanych aplikacji CUDA na systemach z GPU innymi niż GPU NVIDIA, przy osiągnięciu wydajności bliskiej aplikacjom uruchamianym bez warstw. Kod projektu napisano w języku Rust i jest rozpowszechniany na licencjach MIT i Apache 2.0.
ZLUDA 6 stał się trzecim znaczącym wydaniem projektu, zrealizowanym po
oczyszczeniu bazy kodu z kodu opracowanego podczas pracy Andrzeja w firmie AMD. Od 2022 roku Andrzej pracował w AMD nad stworzeniem warstwy kompatybilności GPU AMD z CUDA, ale w 2024 roku projekt został zakończony. Zgodnie z warunkami umowy i po uzyskaniu zgody na publikację od przedstawiciela AMD, Andrzej udostępnił kod opracowań stworzonych w czasie pracy w AMD, które pozwalają na uruchamianie aplikacji CUDA na stosie ROCm i runtime HIP (Interfejs Heterogenicznego Obliczeniowego dla Przenośności).
W poprzednim roku Andrzej był zmuszony usunąć kod z dostępu publicznego po otrzymaniu listu od prawników, którzy dali do zrozumienia, że zezwolenie udzielone w trakcie korespondencji emailowej nie ma mocy prawnej. Po tym Andrzej rozpoczął prace nad nową wersją ZLUDA, opracowaną na podstawie bazy kodu istniejącej przed rozpoczęciem pracy Andrzeja w AMD. W obecnej postaci rozwój koncentruje się na uruchamianiu aplikacji używających CUDA do przyspieszania zadań związanych z uczeniem maszynowym. Projekt obecnie ogranicza się do pracy na GPU AMD, ale w przyszłości będzie dostosowany do GPU Intel.
W nowym wydaniu dodano wstępną obsługę uruchamiania jeszcze na ZLUDA silnika symulacji procesów fizycznych PhysX i systemu modelowania 3D Blender. Wsparcie dla PhysX ma na razie status wczesnej
wersji alfa i jest ograniczone do uruchamiania 32-bitowych wersji PhysX, co pozwala na uruchamianie na systemach z GPU AMD niektórych starszych gier korzystających z tego silnika. Na przykład w grze Mafia II po włączeniu ZLUDA udało się zwiększyć FPS z 26 do 80 klatek na sekundę. Zaimplementowano wsparcie dla tekstur, wystarczające do uruchomienia Blendera przy użyciu ZLUDA. Zdecydowanie poprawiono wsparcie dla platformy Windows. Rozszerzono możliwości uruchamiania na ZLUDA frameworków do uruchamiania dużych modeli językowych (np. PyTorch) z wykorzystaniem optymalizacji CUDA stosowanych dla GPU NVIDIA.
Źródło: opennet.ru
