ZLUDA, implementace, která umožňuje spouštění aplikací CUDA na GPU AMD

ZLUDA

ZLUDA běží na ROCm stacku AMD

Byla zveřejněna zpráva, že AMD se rozhodlo zastavit financování vývoje ZLUDA, který je otevřená implementace technologie CUDA pro GPU AMD, umožňuje spouštět aplikace CUDA bez jejich úprav s výkonem blízkým výkonu aplikací běžících bez dalších vrstev.

Během posledních dvou let se na vývoji této vrstvy pracovalo pro usnadnění spouštění aplikací CUDA na systémech s GPU AMD. Ale donedávna AMD se tak rozhodlo spouštět aplikace CUDA na GPU AMD nebyl komerční zájem, což developerovi umožnilo otevřít jeho vývoj jak bylo dohodnuto ve smlouvě.

O ZLUDĚ

El Proyecto byl původně vytvořen pro podporu práce CUDA na GPU Intel a změna v politice podpory GPU je způsobena skutečností, že zpočátku byl vývojářem ZLUDA zaměstnanec Intelu. v roce 2021 Intel se rozhodl, že to není komerčně životaschopné poskytují možnost spouštět aplikace CUDA na GPU Intel, což vedlo k ukončení vývoje této iniciativy.

Na začátku roku 2022 vývojář opustil Intel a podepsal smlouvu s AMD na pokračování vývoje vrstvy kompatibility CUDA. AMD při vývoji požadovalo, aby nebyl prosazován zájem společnosti o projekt ZLUDA a aby se nezavázala k veřejnému úložišti ZLUDA.

ZLUDA poskytuje binární podporu pro CUDA aplikace stávající zkompilované pomocí kompilátoru CUDA pro GPU NVIDIA, aniž by bylo nutné provádět změny na úrovni zdrojového kódu. Implementace funguje na ROCm stacku AMD a běhovém prostředí HIP.

V současném stavu, Úroveň kvality převodu ZLUDA je považována za alfa verzi. I když stojí za zmínku, že je již schopen provozovat mnoho CUDA aplikací, kromě minimální podpory primitiv a knihoven má také prototypové implementace frameworku OptiX.

ZLUDA

Srovnávací tabulka ZLUDA

Při prvním spuštění CUDA aplikací pod kontrolou ZLUDA zaznamenáte znatelné zpoždění protože ZLUDA kompiluje kód pro GPU. Nicméně, při dalších jízdách toto zpoždění zmizí, protože kompilovaný kód je uložen do mezipaměti, což má za následek téměř nativní výkon při spouštění zkompilovaného kódu. Například při spuštění Geekbench na GPU AMD Radeon 6800 XT vykazovala verze benchmarku CUDA založená na ZLUDA výrazně lepší výkon než verze založená na OpenCL.

Kromě toho je zmíněno, že podpora oficiálního API ovladače CUDA a zpětné inženýrství nezdokumentovaného CUDA API je ve ZLUDĚ implementováno nahrazením volání funkcí analogickými funkcemi poskytovanými v běhovém prostředí HIP, které je velmi podobné CUDA.

Například funkce cuDeviceGetAttribute() je nahrazena funkcí hipDeviceGetAttribute(). ZLUDA také zajišťuje kompatibilitu s knihovnami NVIDIA, jako jsou NVML, cuBLAS a cuSPARSE. Pro tyto knihovny poskytuje ZLUDA překladové knihovny se stejným názvem a stejnou sadou funkcí, postavené na podobných knihovnách AMD. Aplikační kód GPU zkompilovaný v reprezentaci PTX (Parallel Thread Execution) je přeložen speciálním kompilátorem na prostřední LLVM IR reprezentaci, ze které je generován binární kód pro AMD GPU.

Na závěr je třeba zmínit, že Budoucnost projektu závisí na zájmu komunity a případné návrhy spolupráce od jiných společností. Bez externí podpory se bude projekt nadále rozvíjet pouze v oblastech osobního zájmu autora, jako je DLSS.

pro zájem o kód projektu, měli byste vědět, že je napsán v Rustu a je distribuován pod licencemi MIT a Apache 2.0 a projekt je kompatibilní s Linuxem a Windows. Máte-li zájem dozvědět se o něm více, můžete si prostudovat podrobnosti Na následujícím odkazu.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.