AMD heeft stilletjes een CUDA-implementatie gefinancierd die op ROCm is gebouwd: het is nu open source

AMD heeft stilletjes een CUDA-implementatie gefinancierd die op ROCm is gebouwd: het is nu open source

Hoewel AMD door de jaren heen inspanningen heeft geleverd om het gemakkelijker te maken om codebases die gericht zijn op NVIDIA's CUDA API te porten zodat ze bovenop HIP/ROCm kunnen draaien, vergt dit nog steeds werk van de kant van ontwikkelaars. De tools zijn net als bij HIPIFY verbeterd om te helpen bij het geautomatiseerd maken, maar het is geen eenvoudige, onmiddellijke en waterdichte oplossing – vooral als u op zoek bent naar optimale prestaties. De afgelopen paar jaar heeft AMD stilletjes een poging gefinancierd om binaire compatibiliteit te bereiken, zodat veel NVIDIA CUDA-implementaties kunnen draaien bovenop het AMD ROCm-pakket op bibliotheekniveau – een eenvoudig te gebruiken alternatief zonder dat de broncode hoeft te worden aangepast. . In de praktijk is dit voor veel real-world workloads een oplossing voor eindgebruikers om CUDA-compatibele software uit te voeren zonder tussenkomst van de ontwikkelaar. Hieronder vindt u meer informatie over het “skunkworks”-project dat nu beschikbaar is als open source, samen met enkele van mijn test- en prestatiebenchmarks voor een CUDA-implementatie ontworpen voor Radeon GPU's.

Van enkele jaren geleden herinnert u zich misschien ZLUDA, dat zich toelegde op het mogelijk maken van CUDA-ondersteuning op Intel-graphics. Dit open source-project heeft tot doel een eenvoudig te gebruiken CUDA-implementatie op Intel-graphics te bieden, gebouwd op Intel oneAPI Level Zero. ZLUDA werd om privéredenen stopgezet, maar het blijkt dat de ontwikkelaar erachter (die destijds ook bij Intel werkte), Andrzej Janik, in 2022 door AMD werd ingehuurd om ZLUDA effectief aan te passen voor gebruik op AMD GPU's met HIP/Rookm. Voordat Intel een contract met AMD sloot, overwoog Intel de ontwikkeling van ZLUDA. Uiteindelijk wezen ze het idee echter af en verstrekten ze geen financiering voor het project.

READ  Zigbee op Mars! - de rand

Radeon GPU met CUDA-Z op Linux

Andrzej Janik heeft de afgelopen twee jaar ZLUDA naar Radeon GPU's gebracht en het werkt: veel CUDA-programma's kunnen worden uitgevoerd op HIP/ROCm zonder enige aanpassingen – of andere bewerkingen… voer gewoon de binaire bestanden uit zoals u normaal zou doen en zorg ervoor dat de ZLUDA-bibliotheek is Download CUDA-alternatieven. Om mij onbekende redenen heeft AMD dit jaar besloten de financiering van deze inspanningen stop te zetten en het niet als softwareproduct uit te brengen. Maar het goede nieuws is dat er een clausule was voor het geval dat zich voordeed: Janek kon het werk open source maken als/wanneer het contract afliep.

Maak gebruik van Radeon ZLUDA Git

Andrzej Janik heeft contact opgenomen en toegang verleend tot de nieuwe ZLUDA-implementatie voor de AMD ROCm, zodat ik deze kan testen en benchmarken voorafgaand aan de geplande openbare aankondiging van vandaag. Ik heb het een paar dagen getest en het was een positieve ervaring: de CUDA-compatibele software draait al bovenop ROCm en zonder enige wijzigingen. Zelfs eigen renderers en dergelijke werken met de “CUDA on Radeon”-implementatie.

Hoewel ZLUDA niet 100% fail-safe is, omdat NVIDIA OptiX-ondersteuning niet volledig wordt ondersteund, worden sommige functies, zoals programma's die geen PTX-assemblagecode gebruiken, momenteel niet verwerkt. Maar meestal is deze implementatie verrassend genoeg in staat om een ​​solo-inspanning van een ontwikkelaar te zijn.

Radeon-bibliotheken Zloda

Voor degenen die zich afvragen of de code open source is: er is een dubbele licentie onder Apache 2.0 of MIT. Rust-fans zullen blij zijn om te weten dat de Rust-programmeertaal is gebruikt in deze Radeon-implementatie.

Opmerking: in mijn schermafbeeldingen en gedurende de afgelopen twee jaar van ontwikkeling is de naam van het apparaat dat via CUDA wordt blootgesteld aan Radeon GPU's “Grafisch apparaat” in plaats van de daadwerkelijke AMD Radeon grafische adapter met ROCm. Dit komt door de resultaten van automatische rapportage van CUDA-benchmarks en andere software die mogelijk geautomatiseerde telemetrie bevat. Om te voorkomen dat het feit dat een Radeon GPU binnen CUDA wordt gebruikt, wordt gelekt, is deze ingesteld op de generieke tekenreeks 'grafisch apparaat'. Als onderdeel van de open source van vandaag voor ZLUDA op Radeon Code is mij verteld dat de wijziging zal worden geïmplementeerd om de feitelijke Radeon grafische kaartserie bloot te leggen in plaats van de generieke “Graphics Device” concealer.

READ  Valve upgradet zijn Steam Deck vóór de release, maar we weten nog steeds niet hoeveel het kost

Een reactie achterlaten

Je e-mailadres zal niet getoond worden. Vereiste velden zijn gemarkeerd met *