Vydání ZLUDA 5, univerzální otevřené implementace technologie CUDA

Andrzej Janik představil vydání ZLUDA 5, otevřené implementace technologie CUDA. Cílem projektu je umožnit spouštění nemodifikovaných CUDA aplikací na systémech s GPU odlišnými od GPU NVIDIA, s výkonem blízkým výkonu aplikací běžících bez vrstev. Kód projektu je napsán v jazyce Rust a je distribuován pod licencemi MIT a Apache 2.0.

ZLUDA 5 se stal druhým významným vydáním projektu, které vzniklo po vyčištění kódové základny od kódu vyvinutého během práce Andrzeje v společnosti AMD. Od roku 2022 Andrzej pracoval v AMD na vytvoření vrstvy pro kompatibilitu GPU AMD s CUDA, ale v roce 2024 byl projekt ukončen. V souladu s podmínkami smlouvy a po získání povolení k publikaci od zástupce AMD Andrzej zpřístupnil kód svých prací, vytvořených během zaměstnání v AMD, které umožňují spouštění CUDA aplikací na vrstvách ROCm a runtime HIP (Heterogeneous-computing Interface for Portability).

Minulý rok byl Andrzej nucen odstranit kód z veřejného přístupu po dopise od právníků, kteří dali najevo, že povolení udělené během e-mailové korespondence nemá právní platnost. Poté Andrzej začal pracovat na nové edici ZLUDA, založené na kódové základně, která existovala před jeho nástupem do AMD. V aktuální podobě je vývoj zaměřen na provádění aplikací, které používají CUDA k urychlení úloh spojených s učením strojů. Projekt je zatím omezen na práci s GPU AMD, ale v budoucnu bude adaptován i pro GPU Intel.

Klíčová vylepšení v novém vydání:

  • Byla přidána počáteční podpora spuštění nad ZLUDA rámců llm.c, Llama.cpp a PyTorch pro provádění velkých jazykových modelů s využitím CUDA optimalizací aplikovaných na GPU NVIDIA.
  • Byla realizována počáteční podpora spuštění aplikací, které používají pro zlepšení výkonu knihovny cuBLAS, cuBLASLt a nvml.
  • Byla přidána vrstva zluda_trace pro sledování aplikací, které používají CUDA. Pomocí zluda_trace je možné diagnostikovat problémy a odhalit nedostatky v ZLUDA, které brání správnému fungování aplikace.
  • Byla představena utility příkazového řádku zoc (offline kompilátor ZLUDA), která umožňuje kompilaci souborů s pokyny NVIDIA PTX do mezipředstavení AMD RDNA (dříve byla tato funkčnost dostupná ve formě knihovních funkcí).
  • V načítači modulů PTX byl implementován mechanismus cache pro prováděné jádra na GPU. Cache umožňuje vyhnout se opětovnému provádění náročných operací kompilace pokynů PTX (Parallel Thread Execution) do strojového kódu pro dané GPU.

    Zdroj: opennet.ru
Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster