Andrzej Janik prezantoi publikimin e ZLUDA 5, një implementim me burim të hapur i teknologjisë CUDA. Qëllimi i projektit është të mundësojë ekzekutimin e aplikacioneve CUDA të pamodifikuara në sisteme me GPU të ndryshme nga GPU NVIDIA, me performancë të afërt me atë të aplikacioneve që ekzekutohen pa shtresa ndërmjetëse. Kodi i projektit është shkruar në gjuhën Rust dhe shpërndahet sipas licencave MIT dhe Apache 2.0.
ZLUDA 5 u bë publikimi i dytë i rëndësishëm i projektit, i përgatitur pas pastrimit të bazës së kodit nga kodi i zhvilluar gjatë punës së Andrzej në AMD. Që nga viti 2022, Andrzej punoi në AMD për krijimin e një shtrese për përputhshmërinë e GPU AMD me CUDA, por në vitin 2024 projekti u ndërpre. Në përputhje me kushtet e kontratës dhe pasi mori lejen për publikim nga një përfaqësues i AMD, Andrzej hapi kodin e punës së zhvilluar gjatë kohës së tij në AMD, i cili lejon ekzekutimin e aplikacioneve CUDA mbi stack-un ROCm dhe runtime HIP (Heterogeneous-computing Interface for Portability).
Vitin e kaluar, Andrzej u detyrua ta hiqte kodin nga qasja publike pas një letre nga juristët, të cilët e bënë të qartë se leja e dhënë gjatë korrespondencës me email nuk kishte fuqi juridike. Pas kësaj, Andrzej nisi punën për një version të ri të ZLUDA, të ndërtuar mbi bazën e kodit që ekzistonte përpara se ai të fillonte punën në AMD. Në formën aktuale, zhvillimi është përqendruar te ekzekutimi i aplikacioneve që përdorin CUDA për të përshpejtuar detyra të lidhura me machine learning. Projekti aktualisht kufizohet te puna me GPU AMD, por në të ardhmen do të përshtatet edhe për GPU Intel.
Përmirësimet kryesore në versionin e ri:
- ĂshtĂ« shtuar mbĂ«shtetja fillestare pĂ«r ekzekutimin mbi ZLUDA tĂ« framework-eve llm.c, Llama.cpp dhe PyTorch pĂ«r pĂ«rdorimin e modeleve tĂ« mĂ«dha gjuhĂ«sore me optimizimet CUDA tĂ« aplikuara pĂ«r GPU NVIDIA.
- ĂshtĂ« implementuar mbĂ«shtetja fillestare pĂ«r nisjen e aplikacioneve qĂ« pĂ«rdorin bibliotekat cuBLAS, cuBLASLt dhe nvml pĂ«r rritjen e performancĂ«s.
- ĂshtĂ« shtuar shtresa zluda_trace pĂ«r gjurmimin e aplikacioneve qĂ« pĂ«rdorin CUDA. Me ndihmĂ«n e zluda_trace mund tĂ« diagnostikohen problemet dhe tĂ« identifikohen mangĂ«sitĂ« nĂ« ZLUDA qĂ« pengojnĂ« ekzekutimin normal tĂ« aplikacionit.
- ĂshtĂ« prezantuar utilitari i linjĂ«s sĂ« komandĂ«s zoc (ZLUDA offline compiler), i cili mundĂ«son kompilimin e skedarĂ«ve me udhĂ«zime NVIDIA PTX nĂ« paraqitjen e ndĂ«rmjetme AMD RDNA (mĂ« parĂ« ky funksionalitet ishte i disponueshĂ«m nĂ« formĂ«n e funksioneve tĂ« bibliotekĂ«s).
- Në ngarkuesin e moduleve PTX është zbatuar një mekanizëm për ruajtjen në cache të kernelëve që ekzekutohen në GPU. Cache-i bën të mundur shmangien e ekzekutimit të përsëritur të operacioneve me kosto të lartë të kompilimit të udhëzimeve PTX (Parallel Thread Execution) në kod makinerie për GPU-në përkatëse.
Burimi: opennet.ru
