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
Nvidia, fick dich!
Hacker-News-Kommentare
ZLUDA wurde veröffentlicht, nachdem AMD die Finanzierung eingestellt hatte
Erwähnung der CUDA Dark API
Meinung, die AMD dabei unterstützt, das CUDA-Monopol aufzubrechen
Erfahrungsbericht über den Versuch, Stable Diffusion auf einer AMD-GPU auszuführen, und die dabei auftretenden Schwierigkeiten
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.
Frage im Zusammenhang mit der Nachricht, dass Nvidia die GPL-Lizenztreiber-Prüfung des Kernels umgangen habe
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.