3 Punkte von GN⁺ 2024-03-06 | 1 Kommentare | Auf WhatsApp teilen

ZLUDA ermöglicht die Ausführung von CUDA-Anwendungen auf AMD-GPUs

  • Das von Andrzej Janik entwickelte Open-Source-Projekt ZLUDA 3 ermöglicht es, GPU-basierte Anwendungen, die für NVIDIA-GPUs entwickelt wurden, auf Hardware anderer Hersteller auszuführen.
  • Die Technologie ist so konzipiert, dass bestehende Anwendungen ohne zusätzlichen Aufwand für Entwickler auf neuer Hardware laufen können.
  • Frühere Versionen von ZLUDA ermöglichten die Ausführung von CUDA-Anwendungen auf Intel-GPUs, in Version 3 liegt der Fokus jedoch auf AMD-GPUs.

Ist ZLUDA nicht für Intel-GPUs?

  • ZLUDA wurde 2020 erstmals als CUDA-Ersatz für Intel-GPUs veröffentlicht.
  • Nach der Veröffentlichung von Version 2 im Jahr 2021 kündigte Janik an, die Entwicklung des Projekts nicht fortsetzen zu können, später begann Intel jedoch, ZLUDA als offizielle Technologie zu evaluieren.
  • Intel entschied, dass es keinen Business Case dafür gibt, CUDA-Anwendungen auf Intel-GPUs auszuführen, woraufhin Janik das Unternehmen verließ und sich an AMD wandte.
  • AMD evaluierte ZLUDA zwei Jahre lang, entschied sich dann jedoch, das Projekt nicht weiterzuführen, woraufhin Janik den aktualisierten Code als Open Source veröffentlichte.

Warum ist das für CG-Künstler wichtig?

  • ZLUDA Version 3 ermöglicht die Ausführung GPU-basierter Anwendungen auf AMD-GPUs, die unter Verwendung von NVIDIAs CUDA-API entwickelt wurden.
  • In Branchen wie VFX, Motion Graphics und Visualisierung basieren viele wichtige CG-Anwendungen, insbesondere Renderer, auf CUDA und sind damit auf NVIDIA beschränkt.
  • AMD verfügt zwar über eine eigene Technologie namens HIP, diese erfordert jedoch Arbeit seitens der Softwareentwickler.
  • ZLUDA ist tatsächlich auf HIP aufgebaut und dafür konzipiert, CUDA-Anwendungen ohne Änderungen auf AMD-GPUs auszuführen.

Wie schnell laufen CUDA-Anwendungen unter ZLUDA?

  • Janik beschreibt die Ausführung von CUDA-Anwendungen auf AMD-GPUs als mit „nahezu nativer Performance“.
  • Laut dem ZLUDA-GitHub-Repository laufen 3DF Zephyr und RealityCapture unter ZLUDA jedoch „deutlich langsamer“.
  • Viele Entwickler von GPU-Renderern nutzen zudem OptiX, eine zweite NVIDIA-API, die zur Performance beiträgt; ZLUDA bietet für OptiX nur minimale Unterstützung.

Können andere CG-Anwendungen über ZLUDA auf AMD-GPUs laufen?

  • Ohne Tests durch Nutzer ist schwer zu sagen, wie gut andere CUDA-basierte CG-Anwendungen unter ZLUDA laufen würden.
  • Es gibt viele bekannte Probleme, und Janik hatte mit anderen GPU-Renderern nur begrenzten Erfolg.

Könnten künftig mehr CUDA-basierte CG-Anwendungen unter ZLUDA laufen?

  • Janik sagt, dass ZLUDA ohne Unterstützung von Intel oder AMD „realistisch gesehen aufgegeben“ sei.
  • Er ist offen für Vorschläge, die das Projekt voranbringen könnten, andernfalls wird er voraussichtlich nur NVIDIA-Technologien unterstützen, an denen er persönlich interessiert ist.
  • Der Quellcode ist öffentlich verfügbar, und selbst in seinem aktuellen Zustand kann ZLUDA von Softwareentwicklern als Teil eines „schrittweiseren Portings“ von CUDA nach HIP genutzt werden.

Lizenz und Systemanforderungen

  • Kompilierte Versionen von ZLUDA 3 sind für Windows und Linux verfügbar. Der Quellcode steht unter der Apache-2.0- oder MIT-Lizenz.

Meinung von GN⁺

  • ZLUDA hat das Potenzial, den Wettbewerb im GPU-Markt zu fördern, indem es NVIDIAs proprietäres CUDA-Ökosystem für AMD-Nutzer öffnet.
  • Das Projekt könnte insbesondere Nutzern von Rendering-Software oder wissenschaftlichen Rechenanwendungen zugutekommen, die auf CUDA angewiesen sind, indem es ihnen mehr Hardware-Optionen bietet.
  • Da sich ZLUDA jedoch noch in einem frühen Stadium befindet und weder vollständige Performance noch volle Kompatibilität bietet, sollte eine Einführung in realen Produktionsumgebungen mit Vorsicht erfolgen.
  • Eine Verringerung der technologischen Lücke zwischen AMD und NVIDIA könnte Verbrauchern bessere Preise und mehr Auswahl bieten und so einen gesunden Wettbewerb im Markt fördern.
  • Anhaltendes Interesse und Beiträge aus der Open-Source-Community werden entscheidend für den Erfolg des Projekts sein und bieten Fachleuten aus dem relevanten Bereich eine gute Gelegenheit, sich einzubringen.

1 Kommentare

 
GN⁺ 2024-03-06
Hacker-News-Kommentare
  • Frühere Diskussion vor 22 Tagen: AMD entwickelt eine CUDA-Implementierung auf Basis von ROCm und veröffentlicht sie als Open Source [0], es gab 400 Kommentare.

    • Ein bemerkenswerter Top-Level-Kommentar aus diesem Thread:

      AMD entschied nach zwei Jahren Entwicklung, dass es keinen Business Case dafür gibt, CUDA-Anwendungen auf AMD-GPUs auszuführen. Eine der Vertragsbedingungen war, dass es veröffentlicht werden könne, falls AMD die weitere Entwicklung nicht mehr für sinnvoll hält. Und so kam es heute dazu. – siehe ZLUDA FAQ

    • Zugehöriger Link: Hacker-News-Diskussion
  • Dass AMD die Finanzierung dieses Projekts eingestellt hat, ist äußerst unvernünftig. Sobald es als Open Source veröffentlicht wurde, begann es bereits, AMD-Nutzern Mehrwert zu bieten, obwohl genau das eigentlich AMDs höchste Priorität sein sollte. Stattdessen hat AMD jahrelang Zeit mit zwei (oder sind es drei?) alternativen APIs verschwendet, die bisher kaum Unterstützung haben.

  • Im Zusammenhang mit der Diskussion: Nvidia verbietet die Nutzung von Übersetzungsschichten für CUDA-Software, um sie auf anderen Chips auszuführen [1]

  • Intel wird am Ende ebenfalls entscheiden, dass es „keinen Business Case dafür gibt, CUDA-Anwendungen auf Intel-GPUs auszuführen“. Das bestätigt nur, was jeder weiß, der sich mit AMD-GPGPU beschäftigt hat.

  • Dass AMDs Software sehr schlecht ist, ist allgemein bekannt, und das ist der einzige Faktor, der AMD davon abhält, ein 2-Billionen-Dollar-Unternehmen zu werden. AMDs OpenCL-Compiler hatte Bugs, und man konnte den Compiler leicht per Segfault zum Absturz bringen (ich habe am Ende aufgegeben und es nicht gemeldet). Dass AMD keinen Konkurrenten zu CUDA entwickelt hat, war extrem kurzsichtig. Ich kann nicht verstehen, warum AMDs Vorstand nicht ausgetauscht wurde. Man kann die beste Hardware bauen, aber wenn die Software zu ihrer Nutzung miserabel ist, wird sie niemand kaufen oder einsetzen. Als Kunde wirkt es so, als würde sich AMDs Vorstand nicht um die Billionen an Wert kümmern, die auf dem Tisch liegen gelassen werden, sodass man am Ende nur überteuerte Nvidia-Karten kaufen kann. Wer AMD-Aktien besitzt, sollte Fragen stellen, und dieser Vorstand gehört in den nächstbesten Abfluss.

  • Ich frage mich, ob es eine Programmiersprache gibt, die in verschiedene Kernelsprachen kompilieren kann, etwa Metal, CUDA und was auch immer AMD hat. Falls nicht, warum nicht? So wie es C-Compiler gibt, die für verschiedene CPU-Architekturen kompilieren, sollte es doch auch Compiler geben, die für GPU-Architekturen kompilieren, oder? Vielleicht hat es einfach noch niemand gebaut.

  • Ich frage mich, ob jemand versucht hat, das in OSS-Photogrammetrie-Tools wie Meshroom auszuführen. Der Artikel erwähnt zwar einige proprietäre Dinge, aber es wird gar nicht so viel benötigt.

  • Das Problem bei AMD-GPUs sind nicht die einzelnen Kernel, sondern die Bibliotheken. In den Release Notes steht offenbar „minimale Unterstützung für cuDNN, cuBLAS, cuSPARSE, cuFFT, NCCL und NVML hinzugefügt“, also bewegte sich dieses Projekt in diese Richtung. Ob das Projekt nach dem Stopp der AMD-Finanzierung seinen Schwung beibehalten kann, weiß niemand.

  • Das ist fast genau dieselbe Frage wie die Nutzung von JVM-Bytecode im Zusammenhang mit Oracle gegen Google.

  • Ebenfalls relevant ist geohots anhaltender (teurer) Kampf mit AMD-GPUs: Twitter-Link