De tools van ZLUDA zijn gepubliceerd, waarmee CUDA-applicaties op AMD GPU's kunnen draaien

Het ZLUDA-project heeft een open implementatie van de CUDA-technologie voor AMD GPU's ontwikkeld, waarmee niet-aangepaste CUDA-toepassingen met een prestaties benaderd kunnen worden van toepassingen die zonder tussenlagen draaien. De gepubliceerde tools bieden binaire compatibiliteit met bestaande CUDA-toepassingen die zijn gebouwd met de CUDA-compiler voor NVIDIA GPU's. De implementatie werkt bovenop de ROCm-stack en HIP-runtime (Heterogeneous-computing Interface for Portability) die door AMD is ontwikkeld. De code van het project is geschreven in Rust en wordt verspreid onder de MIT- en Apache 2.0-licenties. Ondersteuning voor Linux en Windows wordt geboden.

De laag voor het organiseren van CUDA-werkzaamheden op systemen met AMD GPU's is de afgelopen twee jaar ontwikkeld, maar het project heeft een langere geschiedenis en werd oorspronkelijk opgezet om CUDA op Intel GPU's mogelijk te maken. De wijziging in het ondersteuningsbeleid voor GPU's is te wijten aan het feit dat de ontwikkelaar van ZLUDA in eerste instantie een medewerker van Intel was, maar in 2021 besloot dit bedrijf dat het mogelijk maken van CUDA-toepassingen op Intel GPU's niet interessant genoeg was voor hun bedrijfsvoering en het ontwikkelen van het initiatief niet verder te ondersteunen.

Begin 2022 verliet de ontwikkelaar Intel en ondertekende hij een contract met AMD om de compatibiliteitslaag voor CUDA te ontwikkelen. AMD vroeg tijdens de ontwikkeling om de interesse van AMD in het ZLUDA-project niet openbaar te maken en geen commits in de openbare ZLUDA-repository te doen. Na twee jaar besloot AMD dat het uitvoeren van CUDA-toepassingen op AMD GPU's niet meer interessant was voor hun bedrijfsvoering, wat volgens de voorwaarden van het contract de ontwikkelaar toestond om zijn werk openbaar te maken. Aangezien de GPU-fabrikanten het project niet langer financierden, hangt de toekomst ervan nu af van de interesse van de gemeenschap en samenwerking met andere bedrijven. Zonder externe steun zal het project waarschijnlijk alleen kunnen voortgaan in richtingen die de auteur persoonlijk interesseren, zoals DLSS (Deep Learning Super Sampling).

In zijn huidige staat wordt de kwaliteit van de implementatie beoordeeld als een alfa-versie. Desondanks kan ZLUDA al worden gebruikt voor het uitvoeren van veel CUDA-toepassingen, waaronder Geekbench, 3DF Zephyr, Blender, Reality Capture, LAMMPS, NAMD, waifu2x, OpenFOAM en Arnold. Minimale ondersteuning voor primitieve structuren en bibliotheken zoals cuDNN, cuBLAS, cuSPARSE, cuFFT, NCCL en NVML is verzekerd.

De eerste uitvoering van CUDA-toepassingen onder ZLUDA heeft merkbare vertragingen, omdat ZLUDA de compilatie van GPU-code uitvoert. Bij latere uitvoeringen is er geen vertraging meer, aangezien de gecompileerde code in de cache wordt opgeslagen. Tijdens de uitvoering van de gecompileerde code is de prestatie bijna gelijk aan de native. Bij het uitvoeren van het Geekbench-pakket op de AMD Radeon 6800 XT toonde de CUDA-testset, uitgevoerd via ZLUDA, aanzienlijk hogere prestaties dan de versie op basis van OpenCL.

De tools van ZLUDA zijn gepubliceerd, waarmee CUDA-applicaties op AMD GPU's kunnen draaien

De ondersteuning van de officiĆ«le CUDA Driver API en de onderzochte, door reverse engineering verkregen, documentatie van het ongedocumenteerde CUDA API is in ZLUDA geĆÆmplementeerd door functie-aanroepen te vervangen door gelijkwaardige functies die worden aangeboden in de HIP-runtime, die veel lijkt op CUDA. Bijvoorbeeld, de functie cuDeviceGetAttribute() wordt vervangen door hipDeviceGetAttribute(). Op een vergelijkbare manier wordt compatibiliteit met NVIDIA-bibliotheken zoals NVML, cuBLAS en cuSPARSE verzekerd — voor dergelijke bibliotheken biedt ZLUDA zowel translatiebibliotheken met dezelfde naam als dezelfde set functies, gebouwd als uitbreidingen op vergelijkbare AMD-bibliotheken.

GPU-code van toepassingen, gecompileerd naar de PTX (Parallel Thread Execution) representatie, wordt aanvankelijk door een speciale compiler omgezet naar een intermediaire weergave van LLVM IR, waaruit de binaire code voor de AMD GPU wordt gegenereerd.

De tools van ZLUDA zijn gepubliceerd, waarmee CUDA-applicaties op AMD GPU's kunnen draaien


Bron: opennet.ru
Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster