Andrzej Janik, CUDA texnologiyasının açıq reallaşdırması olan ZLUDA 5-i təqdim etdi. Layihənin məqsədi, CUDA üçün modifikasiya edilməmiş tətbiqlərin NVIDIA GPU-dan fərqli sistemlərdə, tətbiqlərin imçələnmədən işlədiyi performansa yaxın bir performansla idarə edilməsinə imkan yaratmaqdır. Layihənin kodu Rust dilində yazılıb və MIT və Apache 2.0 lisenziyaları altında yayımlanır.
ZLUDA 5, Andrzej-in AMD-də çalışdığı dövrdə yazılan kodların təmizlənməsindən sonra formalaşan layihənin ikinci əhəmiyyətli buraxılışıdır. 2022-ci ildən Andrzej, AMD-də CUDA-ya uyğun GPU-lar üçün uyğunluq qatını yaratmaq üzərində çalışırdı, amma 2024-cü ildən layihə dayandırıldı. Müqavilə şərtlərinə uyğun olaraq və AMD nümayəndəsindən yayımlama icazəsi aldıqdan sonra, Andrzej AMD-dəki iş zamanı yaradılan kodu açdı ki, bu da CUDA tətbiqlərini ROCm və HIP (Heterogeneous-computing Interface for Portability) runtime üzərində icra etməyə imkan tanıyır.
Keçən il Andrzej, hüquqşünaslardan aldığı bir məktub nəticəsində kodu açıq mühitdən çıxarmağa məcbur oldu, bu məktubda, e-poçtla verilmiş icazənin hüquqi qüvvəsinin olmadığı bildirildi. Buna görə, Andrzej, AMD-dəki işindən əvvəlki kod bazası əsasında yeni bir ZLUDA redaksiyası üzərində işləməyə başladı. Hal-hazırda, inkişaf maşın öyrənmə ilə bağlı vəzifələrin sürətləndirilən tətbiqlərinə fokuslanır. Layihə indiyə qədər yalnız AMD GPU-ları ilə işləməkdədir, lakin gələcəkdə Intel GPU-larına da adapte olunacaq.
Yeni buraxılışdakı əsas yaxşılaşdırmalar:
- ZLUDA üzərində llm.c, Llama.cpp və PyTorch çərçivələrinin icrasına ilkin dəstək əlavə edilib, bu da CUDA optimizasiyalarını istifadə edərək böyük dil modellərinin yerinə yetirilməsini təmin edir.
- Performansı artırmaq üçün cuBLAS, cuBLASLt və nvml kitabxanalarını istifadə edən tətbiqlərin həyata keçirilməsinə ilkin dəstək təqdim edilib.
- CUDA-dan istifadə edən tətbiqlərin izlənməsi üçün zluda_trace qatını əlavə edilib. zluda_trace ilə problemlərin diaqnostikası aparıla bilər və ZLUDA-da tətbiqin normal icrasını maneə törədən nasazlıqlar aşkar edilə bilər.
- ZOC (ZLUDA offline compiler) adlı komanda xətti vasitəsi təqdim edilib ki, bu da CUDA PTX təlimatları olan faylları AMD RDNA kəsiyinə çevirmək imkanı yaradır (bu funksionallıq əvvəllər kitabxana funksiyaları formasında mövcud idi).
- PTX modul yükləyicisində GPU-da icra edilən nüvələrin keşlənməsi mexanizmi həyata keçirilib. Keşləmə, müəyyən olunmuş GPU üçün PTX (Parallel Thread Execution) təlimatlarının maşın koduna çevrilməsi üçün resurs tükədici əməliyyatların yenidən yerinə yetirilməsinin qarşısını alır.
Mənbə: opennet.ru
