Er is een ZLUDA-toolkit gepubliceerd, waarmee u CUDA-applicaties op AMD GPU's kunt uitvoeren

Het ZLUDA-project heeft een open implementatie van CUDA-technologie voor AMD GPU's voorbereid, waarmee je ongewijzigde CUDA-applicaties kunt uitvoeren met prestaties die dicht bij de prestaties liggen van applicaties die zonder lagen draaien. De gepubliceerde toolkit biedt binaire compatibiliteit met bestaande CUDA-applicaties die zijn gecompileerd met behulp van de CUDA-compiler voor NVIDIA GPU's. De implementatie werkt bovenop de ROCm-stack en runtime HIP (Heterogeneous-computing Interface for Portability), ontwikkeld door AMD. De projectcode is geschreven in Rust en wordt gedistribueerd onder de MIT- en Apache 2.0-licenties. Ondersteunt werk op Linux en Windows.

De laag voor het organiseren van CUDA-werk op systemen met AMD GPU's is de afgelopen twee jaar ontwikkeld, maar het project heeft een langere geschiedenis en is oorspronkelijk gemaakt om CUDA-werk op Intel GPU's te garanderen. De verandering in het GPU-ondersteuningsbeleid wordt verklaard door het feit dat de ZLUDA-ontwikkelaar aanvankelijk een werknemer van Intel was, maar in 2021 beschouwde dit bedrijf het bieden van de mogelijkheid om CUDA-applicaties op Intel GPU's uit te voeren niet van zakelijk belang en versnelde het niet. de ontwikkeling van het initiatief.

Begin 2022 verliet de ontwikkelaar Intel en werd door AMD gecontracteerd om een ​​laag voor CUDA-compatibiliteit te ontwikkelen. Tijdens de ontwikkeling vroeg AMD om geen reclame te maken voor AMD's interesse in het ZLUDA-project en om geen toezeggingen te doen aan de openbare ZLUDA-repository. Twee jaar later besloot AMD dat het draaien van CUDA-applicaties op AMD GPU's niet interessant was voor het bedrijfsleven, waardoor de ontwikkelaar volgens de voorwaarden van het contract zijn werk kon ontdekken. Sinds GPU-fabrikanten zijn gestopt met de financiering van het project, hangt het lot ervan nu af van de belangstelling van de gemeenschap en de ontvangst van voorstellen voor samenwerking van andere bedrijven. Zonder externe steun zal het project zich alleen kunnen ontwikkelen in richtingen die voor de auteur persoonlijk interessant zijn, zoals DLSS (Deep Learning Super Sampling).

In de huidige vorm wordt het kwaliteitsniveau van de implementatie beoordeeld als een alfaversie. ZLUDA kan echter al worden gebruikt om veel CUDA-applicaties uit te voeren, waaronder Geekbench, 3DF Zephyr, Blender, Reality Capture, LAMMPS, NAMD, waifu2x, OpenFOAM en Arnold. Biedt minimale ondersteuning voor cuDNN-, cuBLAS-, cuSPARSE-, cuFFT-, NCCL- en NVML-primitieven en -bibliotheken.

De eerste lancering van CUDA-applicaties met ZLUDA vindt plaats met merkbare vertragingen vanwege het feit dat ZLUDA GPU-code compileert. Er is geen dergelijke vertraging bij volgende runs, omdat de gecompileerde code in de cache wordt opgeslagen. Bij het uitvoeren van gecompileerde code zijn de prestaties bijna native. Bij het uitvoeren van Geekbench op een AMD Radeon 6800 XT GPU presteerde de ZLUDA-versie van de CUDA-benchmarksuite merkbaar beter dan de OpenCL-versie.

Er is een ZLUDA-toolkit gepubliceerd, waarmee u CUDA-applicaties op AMD GPU's kunt uitvoeren

Ondersteuning voor de officiële CUDA Driver API en het reverse-engineered gedeelte van de ongedocumenteerde CUDA API wordt in ZLUDA geïmplementeerd door functieaanroepen te vervangen door vergelijkbare functies die worden aangeboden in de HIP-runtime, die in veel opzichten vergelijkbaar is met CUDA. De functie cuDeviceGetAttribute() wordt bijvoorbeeld vervangen door hipDeviceGetAttribute(). Compatibiliteit met NVIDIA-bibliotheken zoals NVML, cuBLAS en cuSPARSE wordt op een vergelijkbare manier gegarandeerd - voor dergelijke bibliotheken biedt ZLUDA vertaalbibliotheken met dezelfde naam en dezelfde reeks functies, gebouwd als add-ons op vergelijkbare AMD-bibliotheken.

GPU-applicatiecode die is gecompileerd in de PTX-representatie (Parallel Thread Execution) wordt eerst door een speciale compiler vertaald naar de LLVM IR-tussenrepresentatie, op basis waarvan binaire code voor AMD GPU's wordt gegenereerd.

Er is een ZLUDA-toolkit gepubliceerd, waarmee u CUDA-applicaties op AMD GPU's kunt uitvoeren


Bron: opennet.ru

Voeg een reactie