6 Punkte von GN⁺ 2024-02-13 | 2 Kommentare | Auf WhatsApp teilen

AMD unterstützte stillschweigend eine CUDA-Implementierung auf ROCm-Basis und veröffentlichte sie als Open Source

  • AMD arbeitet seit mehreren Jahren daran, dass Entwickler Codebasen, die auf die CUDA-API von NVIDIA abzielen, auf HIP/ROCm ausführen können.
  • Trotz dieser Bemühungen war dies keine gute Lösung, wenn maximale Performance gefragt war (also keine einfache, sofort nutzbare und leistungsseitig verlässliche Lösung).
  • In den vergangenen zwei Jahren hat AMD stillschweigend ein Projekt unterstützt, das Binärkompatibilität auf Bibliotheksebene bietet, damit viele NVIDIA-CUDA-Anwendungen ohne Änderungen am Quellcode auf dem AMD-ROCm-Stack laufen können.

ZLUDA: CUDA-Unterstützung für Intel-Grafik

  • Vor einigen Jahren wurde ein Projekt namens ZLUDA gestartet, um CUDA auf Intel-Grafik zu unterstützen, wurde jedoch aus persönlichen Gründen eingestellt.
  • Der ZLUDA-Entwickler Andrzej Janik erhielt 2022 von AMD einen Vertrag, um ZLUDA mit HIP/ROCm für AMD-GPUs nutzbar zu machen.
  • In den vergangenen zwei Jahren hat Janik ZLUDA für Radeon-GPUs implementiert, sodass viele CUDA-Programme ohne Modifikationen auf HIP/ROCm ausgeführt werden können.

Open-Source-Veröffentlichung von ZLUDA

  • AMD hat die Finanzierung für dieses Projekt in diesem Jahr eingestellt und entschieden, es nicht als Softwareprodukt zu veröffentlichen.
  • Allerdings enthielt der Vertrag bei seinem Ende eine Klausel, die Janik erlaubte, die Arbeit als Open Source zu veröffentlichen.
  • Janik stellte Zugang bereit, damit diese neue ZLUDA-Implementierung getestet und benchmarked werden kann.

Grenzen der ZLUDA-Implementierung und der Open-Source-Code

  • Die ZLUDA-Implementierung ist nicht zu 100 % ausgereift: Die Unterstützung für NVIDIA OptiX ist unvollständig, und Software, die keinen PTX-Assembly-Code verwendet, wird derzeit nicht verarbeitet.
  • In den meisten Fällen ist diese Implementierung angesichts der Arbeit eines einzelnen Entwicklers erstaunlich leistungsfähig.
  • Der Open-Source-Code steht unter einer Dual-Lizenz aus Apache 2.0 und MIT.
  • Für diese Radeon-Implementierung wurde die Programmiersprache Rust verwendet.

Meinung von GN⁺

  • Dieser Artikel stellt ein Projekt vor, das AMD stillschweigend unterstützt hat, um CUDA-Kompatibilität bereitzustellen, und das einen großen Beitrag für die Open-Source-Community leisten könnte.
  • ZLUDA ist ein wichtiger Fortschritt, weil es Entwicklern ermöglicht, CUDA-Anwendungen auf der AMD-Plattform auszuführen, ohne den Quellcode ändern zu müssen.
  • Solche Bemühungen eröffnen AMD-GPU-Nutzern Zugang zu einem breiteren Software-Ökosystem; besonders interessant ist dabei der Einsatz moderner Programmiersprachen wie Rust.

2 Kommentare

 
bbulbum 2024-02-13

Nvidia, fick dich!

 
GN⁺ 2024-02-13
Hacker-News-Kommentare
  • ZLUDA wurde veröffentlicht, nachdem AMD die Finanzierung eingestellt hatte

    • AMD entschied nach zwei Jahren Entwicklung, dass das Ausführen von CUDA-Anwendungen auf AMD-GPUs kein tragfähiger Business Case ist.
    • Laut den Vertragsbedingungen konnte ZLUDA veröffentlicht werden, wenn AMD weitere Entwicklung als nicht sinnvoll einschätzt.
  • Erwähnung der CUDA Dark API

    • Die CUDA Dark API besteht aus nicht dokumentierten Funktionen, und die genaue Anzahl dieser Funktionen ist unbekannt.
    • Typische Anwendungen verwenden meist nur die ein oder zwei häufigsten Funktionen.
    • Da weder die Namen noch die Typen der Argumente bekannt sind, ist die Implementierung zeitaufwendig.
    • ZLUDA hat diese Funktionen nach und nach per Reverse Engineering und Einzelfall-Implementierung umgesetzt, nachdem beobachtet wurde, dass Anwendungen sie nutzen.
  • Meinung, die AMD dabei unterstützt, das CUDA-Monopol aufzubrechen

    • Ein Übersetzungs-Layer hat den Vorteil, Hardware sofort nutzbarer zu machen und die Akzeptanz zu fördern.
    • Es besteht jedoch das Risiko, dass Entwickler ROCm nicht unterstützen und nur den Übersetzungs-Layer verwenden.
    • Proton+DXVK hatte zwar einen positiven Effekt auf Linux-Gaming, aber um bei GPU-Computing Leistung herauszuholen, ist Tuning für die jeweilige Architektur nötig.
    • AMD muss etwas tun, um am Markt wettbewerbsfähig zu bleiben.
  • Erfahrungsbericht über den Versuch, Stable Diffusion auf einer AMD-GPU auszuführen, und die dabei auftretenden Schwierigkeiten

    • ROCm ließ sich installieren und die GPU wurde erkannt, aber da sich die ML-Welt auf Nvidia konzentriert, war die Installation von PyTorch und Ähnlichem schwierig.
    • Am Ende wurde das Modell geladen, aber die Software erzeugte nicht einmal ein einziges Bild, bevor sie die Grafik-Session abstürzen ließ.
    • Diese Erfahrung weckte erneut den Wunsch, wieder eine Nvidia-GPU zu kaufen.
  • Einige Jahre nachdem Blender OpenCL aufgegeben und ein CUDA-Backend verwendet hatte, wurde zwar ein Radeon-HIP-Backend hinzugefügt, aber es zeigte sich, dass die Nutzung von ZLUDA + CUDA-Backend etwas schneller ist als das Radeon-HIP-Backend.

  • Dass AMD die Finanzierung dieses Projekts eingestellt hat, wirkt wie eine unverständliche Entscheidung.

    • CUDA-on-ROCm könnte das Nvidia-Monopol aufbrechen und Nvidia davon abhalten, Änderungen an CUDA vorzunehmen.
    • Wenn man nicht Marktführer ist, sollte man dem De-facto-Standard folgen und wirklich offene Standards schaffen und einhalten, um über echten Mehrwert zu konkurrieren.
  • Frage im Zusammenhang mit der Nachricht, dass Nvidia die GPL-Lizenztreiber-Prüfung des Kernels umgangen habe

    • Es hieß, dass der Treiber in Kernel 6.6 blockiert werde, falls Nvidia das nicht behebt, aber eine Reaktion von Nvidia blieb aus.
    • Derzeit wird Kernel 6.7.4 verwendet, und es gibt widersprüchliche Informationen darüber, ob Nvidia das Problem behoben hat oder ob die Blockierung verschoben wurde.
  • Im Phoronix-Artikel wird ein Leitfaden für alle vorgestellt, die den ROCm/HIP-Stack von AMD direkt selbst kompilieren möchten.

  • ROCm ist auf GitHub besser erklärt als in der offiziellen Dokumentation, was die Bedeutung von Branding unterstreicht und ein Grund dafür ist, warum AMD am Markt an Wettbewerbsfähigkeit verliert.

  • Es gibt die Meinung, dass AMD diesem Projekt mehr Teams zuweisen sollte.