- SCALE ist ein GPGPU-Programmier-Toolkit, das es ermöglicht, CUDA-Anwendungen nativ für AMD-GPUs zu kompilieren
- Weder CUDA-Programme noch Build-Systeme müssen angepasst werden, und Unterstützung für weitere GPU-Anbieter sowie zusätzliche CUDA-APIs ist in Entwicklung
Wie funktioniert es?
- SCALE bringt im Vergleich zu anderen plattformübergreifenden GPGPU-Lösungen einige wichtige Innovationen mit
- Es akzeptiert CUDA-Programme unverändert. Ein Port auf eine andere Sprache ist nicht nötig. Das gilt auch dann, wenn das Programm Inline-PTX-
asm verwendet
- Der SCALE-Compiler akzeptiert dieselben Kommandozeilenoptionen und denselben CUDA-Dialekt wie
nvcc und funktioniert so als Drop-in-Ersatz
- Es gibt sich als installierte NVIDIA CUDA Toolkit-Umgebung aus, sodass bestehende Build-Tools und Skripte unverändert weiter funktionieren
Welche Projekte wurden getestet?
- SCALE wurde validiert, indem Open-Source-CUDA-Projekte kompiliert und deren Tests ausgeführt wurden
- Derzeit sind die folgenden Open-Source-Projekte in den nächtlichen automatisierten Tests enthalten und bestehen vollständig
- NVIDIA Thrust, Blender Cycles, AMGX, llama-cpp, faiss, xgboost, GOMC, stdgpu, hashcat
Welche GPUs werden unterstützt?
- Die folgenden GPU-Ziele werden unterstützt und sind in den Nightly-Tests enthalten
- AMD
gfx1030 (Navi 21, RDNA 2.0)
- AMD
gfx1100 (Navi 31, RDNA 3.0)
- Die folgenden GPU-Ziele wurden in vorläufigen manuellen Tests geprüft und „scheinen zu funktionieren“
- An Unterstützung für die folgenden GPUs wird gearbeitet
- AMD
gfx900 (Vega 10, GCN 5.0)
- Wer zügig Unterstützung für eine bestimmte AMD-GPU-Architektur benötigt, soll sich melden
Bestandteile von SCALE
- Ein mit
nvcc kompatibler Compiler, der den nvcc-Dialekt von CUDA für AMD-GPUs kompilieren kann, einschließlich PTX-asm
- Eine Implementierung der CUDA-Runtime- und Driver-API für AMD-GPUs
- Eine Open-Source-Wrapper-Bibliothek, die durch Delegation an ROCm-Bibliotheken „CUDA-X“-APIs bereitstellt. Bibliotheken wie
cuBLAS und cuSOLVER werden auf diese Weise behandelt
Unterschiede zwischen SCALE und anderen Lösungen
- Statt eine neue Art zu bieten, GPGPU-Software zu schreiben, ermöglicht SCALE die direkte Kompilierung von Programmen, die in der weit verbreiteten CUDA-Sprache geschrieben sind, für AMD-GPUs
- SCALE strebt vollständige Kompatibilität mit NVIDIA CUDA an. Dahinter steht die Überzeugung, dass Nutzer mehrere GPU-Anbieter unterstützen können sollten, ohne mehrere Codebasen pflegen oder Kompromisse bei der Performance eingehen zu müssen
- Die Sprache von SCALE ist eine Obermenge von NVIDIA CUDA und bietet optionale Spracherweiterungen, die das Schreiben von GPU-Code für Nutzer erleichtern und effizienter machen sollen, die sich von
nvcc lösen möchten
- SCALE ist ein laufendes Projekt. Falls eine API fehlt, die die Nutzung verhindert, soll man sich melden. Dann werden die Entwicklungsprioritäten angepasst
Zusammenfassung von GN⁺
- SCALE ist ein wichtiges Toolkit, das die native Kompilierung von CUDA-Anwendungen für AMD-GPUs ermöglicht
- Dass bestehende CUDA-Programme ohne Änderungen auf AMD-GPUs laufen können, ist ein großer Vorteil für Entwickler
- Das Ziel vollständiger Kompatibilität mit NVIDIA CUDA ist vorteilhaft für die Unterstützung mehrerer GPU-Anbieter
- Das Projekt ist noch in Arbeit; wenn eine benötigte API fehlt, kann das Entwicklerteam kontaktiert werden, um Prioritäten anzupassen
- Ähnliche Projekte mit vergleichbarer Funktionalität sind ROCm und HIP
1 Kommentare
Hacker-News-Kommentare
Viele sind der Meinung, AMD sollte eine Übersetzungsschicht unterstützen, aber es gibt auch die Ansicht, dass das eine schlechte Idee ist
Es gibt die Meinung, dass es töricht ist, Bug-Kompatibilität anzustreben
Es gibt die Ansicht, dass nicht nachvollziehbar ist, wie stark hardwareabhängiger Code auf AMD „einfach so funktionieren“ soll
wgmma-Instruktionen, optimale Speicher- und Register-Layouts für Tensor Cores, Tensor Memory Accelerator-Instruktionen usw.Falls es stimmt, wäre es beeindruckend, aber es ist nicht Open Source, und es fehlen genaue Details zur Funktionsweise
Es gibt die Meinung, dass der Hauptgrund für Nvidias hohe Bewertung darin liegt, dass AMD nicht darin investiert, GPUs für ML nützlich zu machen
Es gibt die Meinung, dass AMD so viel falsch macht, dass man ein Projekt wie dieses fast feiern möchte
Ich habe vor ein paar Jahren bei Spectral Compute gearbeitet
ptx-Backend undNVCCIch habe ein wenig CUDA geschrieben
Es gibt die Meinung, dass dieses Projekt großartig ist
Es ist gut, dass es eine Seite zu den aktuellen Einschränkungen gibt, aber vieles von dem, was die meisten Leute als „CUDA“ bezeichnen, ist nur ein kleiner Teil der tatsächlichen CUDA-Funktionalität
Es gibt die Meinung, dass es real sein könnte, weil es technisch möglich ist