Andrzej Janik tutvustas ZLUDA 5, avatud lĂ€htekoodiga CUDA tehnoloogia teostust. Projekti eesmĂ€rk on vĂ”imaldada muutmata CUDA rakenduste kĂ€ivitamist GPU-de sĂŒsteemides, mis erinevad NVIDIA GPU-dest, saavutades jĂ”udluse, mis on lĂ€hedane rakenduste jĂ”udlusele, mida tĂ€idetakse ilma kihistusteta. Projekti kood on kirjutatud Rusti keeles ja levitatakse MIT ja Apache 2.0 litsentside alusel.
ZLUDA 5 on olnud projekti teine oluline vĂ€ljaanne, mis on kujundatud pĂ€rast koodibaasi koristamist Andrzeja töötamise ajal AMD-s kirjutatud koodist. Alates 2022. aastast töötas Andrzej AMD-s, et luua GPU AMD ĂŒhilduvuse kiht CUDA-ga, kuid 2024. aastaks projekt lĂ”petati. Vastavalt lepingu tingimustele ja pĂ€rast AMD esindajalt avaldamisluba saamist, avas Andrzej oma AMD-s töötamise ajal loodud koodid, mis vĂ”imaldavad kĂ€itada CUDA rakendusi ROCm-i ja HIP (Heterogeneous-computing Interface for Portability) töötlusstack'i peal.
Eelmisel aastal pidi Andrzej avatud lĂ€htekoodiga koodi eemaldama pĂ€rast advokaatide kirja, milles anti mĂ”ista, et e-kirjade vahetuses antud luba ei oma Ă”iguslikku jĂ”udu. PĂ€rast seda alustas Andrzej uue ZLUDA versiooni kallal töötamist, mis pĂ”hineb koodibaasil, mis eksisteeris enne Andrzeji töö algust AMD-s. Praeguses vormis on arendus keskendunud rakenduste tĂ€itmisele, mis kasutavad CUDA-d masinĂ”ppega seotud ĂŒlesannete kiirendamiseks. Projekt piirab esialgu tööd AMD GPU-dega, kuid tulevikus kohandatakse seda Intel GPU-dele.
Uue vÀljaande peamised tÀiustused:
- Lisatud algne tugi llm.c, Llama.cpp ja PyTorch raamistikku kÀivitamisele ZLUDA peal, et tÀita suuri keelemudeleid NVIDIA GPU-de jaoks CUDA-optimeeringutega.
- Töötab algne tugi rakenduste kÀitamiseks, mis kasutavad jÔudluse tÔstmiseks cuBLAS, cuBLASLt ja nvml teeke.
- Lisatud zluda_trace kiht rakenduste jÀlgimiseks, mis kasutavad CUDA-d. Zluda_trace abil saab diagonaalmeid probleeme ja tuvastada ZLUDA puudusi, mis takistavad rakenduse normaalset tÀitmist.
- Esitatud on kÀsurea utiliit zoc (ZLUDA offline kompilaator), mis vÔimaldab kompileerida NVIDIA PTX-i kÀskluse faile AMD RDNA vahevormiks (varem oli see funktsionaalsus saadaval raamatukogufunktsioonide kujul).
- PTX moodulite laadimisprogrammis on rakendatud GPU tuumade töötluse vahemÀlu mehhanism. VahemÀlu vÔimaldab vÀltida ressursimahukate PTX (Parallel Thread Execution) kÀskluste kompileerimise tÀiendavat tÀitmist valitud GPU jaoks.
Allikas: opennet.ru
