Ohne Modifikation oder Konvertierung kann die AMD-Grafikkarte das ursprüngliche CUDA-Programm ausführen!
Ein britisches Start-up-Unternehmen hat ein CUDA-Programmkompilierungstool für AMD auf den Markt gebracht, das für die kommerzielle Nutzung kostenlos ist.
Sobald das Tool veröffentlicht wurde, löste es heftige Diskussionen unter Internetnutzern aus und stand ganz oben auf der HackerNews-Hotlist.
Das Tool heißt SCALE und der Entwickler positioniert es als GPGPU-Programmier-Toolkit (General Purpose GPU).
Derzeit haben 9 Programme, darunter das große Modellframework lama-cpp, den Test bestanden und laufen normal.
Im Gegensatz zu anderen Implementierungsmethoden simuliert SCALE direkt die Installation des CUDA-Toolkits und muss nicht in andere Sprachen konvertiert werden, um die Kompilierung aus dem Quellcode abzuschließen.
Daher kann SCALE auch Unterstützung für NVIDIA-spezifische Zwischensprachen wie Inline-PTX bieten.
Die offizielle Website-Einführung zeigt, dass SCALE hauptsächlich aus drei Komponenten besteht: kompatibler NVCC-Compiler, AMD-Implementierung der CUDA-Laufzeit- und Treiber-API sowie ROCm-Bibliothek.
Der Compiler kann Programme, die in CUDA-spezifischen Sprachen wie nvcc, Inline-PTX usw. geschrieben sind, direkt in Binärcodes kompilieren, die auf AMD-GPUs ausgeführt werden können. Die
ROCm-Bibliothek wird zur Bereitstellung der „CUDA-X“-API verwendet, die von SCALE beim Umgang mit Bibliotheken wie cuBLAS und cuSOLVER verwendet wird.
Die wichtigste Innovation von SCALE besteht darin, CUDA-Programme unverändert zu akzeptieren, ohne sie in eine andere Sprache portieren zu müssen, und ist mit mehreren Kompilierungsmethoden wie nvcc und clang kompatibel, während vorhandene Build-Tools und Skripte (wie cmake ) Es funktioniert gut.
Laut offizieller Aussage ist SCALE vollständig mit CUDA kompatibel, sodass Entwickler keine separaten Codes für verschiedene GPU-Plattformen schreiben müssen.
Dies unterscheidet sich stark vom von AMD eingeführten HIP, da HIP den CUDA-Code auf eine bestimmte Weise neu schreibt, bei komplexen Makros möglicherweise nicht richtig verstanden wird und keine proprietären Sprachen wie Inline-PTX unterstützt.
Sogar der SCALE-Autor glaubt, dass HIP das CUDA-Kompatibilitätsproblem nicht lösen kann.
Darüber hinaus ist die Sprache von SCALE eine Obermenge von CUDA und bietet einige optionale Spracherweiterungen, die es Entwicklern, die nvcc loswerden möchten, einfacher und effizienter machen können, GPU-Code zu schreiben.
Der Autor äußerte die Hoffnung, dass Entwickler in Zukunft Code nur einmal schreiben und auf verschiedenen Hardwareplattformen ausführen können, und arbeitet daran, die Kompatibilitätslücke zwischen der beliebten Programmiersprache CUDA und anderen Hardwareanbietern zu schließen.
Derzeit unterstützt SCALE die AMD-GPU-Serien wie folgt:
Bereits unterstützt: gfx1030 (RX6000-Serie) und gfx1100 (RX7000-Serie)
„scheint zu funktionieren“: gfx1010 (RX5000-Serie) und gfx1101
Anpassung an: gf x900 ( RX Vega-Serie)
Darüber hinaus hat der Autor einige CUDA-Open-Source-Projekte getestet und 9 CUDA-Anwendungen erfolgreich mit SCALE ausgeführt.
SCALE ist jedoch schließlich ein brandneues Projekt, daher hat der Autor auch eine Reihe von Tutorials von der Installation bis zur Kompilierung vorbereitet, die verschiedene Arten von Beispielprogrammen enthalten.
Die wichtigsten Schritte des Tutorials werden alle von relevanten Codes begleitet und enthalten sogar die Anleitung zur Bestimmung des Modells Ihrer eigenen GPU, die als sehr detailliert bezeichnet werden kann.
Wenn Sie während der Verwendung auf Probleme stoßen, stellt der Autor auch gängige Methoden zur Fehlerbehebung vor und eröffnet außerdem ein Discord-Forum, um direkt mit dem Entwicklungsteam zu kommunizieren.
Das Startup, das SCALE gegründet hat, heißt Spectral Compute. Es wurde 2018 in Großbritannien gegründet. Es behauptet, über ein tiefgreifendes Verständnis der Architektur von CPU und GPU zu verfügen, und sein Ziel ist es, Entwickler bei der effizienten Nutzung zu unterstützen Rechenressourcen.
Einige Internetnutzer glauben, dass, wenn SCALE wirklich den beworbenen Effekt erzielen kann, es den Burggraben von NVIDIA herausfordern und es AMD ermöglichen wird, direkt mit ihm zu konkurrieren.
Allerdings ist es jetzt noch zu früh, um eine Schlussfolgerung zu ziehen. Schließlich gibt SCALE offiziell zu, dass es im Vergleich zum ursprünglichen CUDA noch einige Mängel gibt.
Und der Entwickler machte auch klar, dass einige CUDA-APIs und -Funktionen nicht unterstützt werden, gab aber keine konkrete Liste an.
Zu weiteren Mängeln der „AMD-Lösung“ sagte ein Internetnutzer, der behauptete, mit dem SCALE-Team kommuniziert zu haben, dass das aktuelle SCALE TensorCore nicht betreiben kann, was bedeutet, dass das FlashAttention-Beschleunigungsframework nicht auf AMD ausgeführt werden kann.
Da die N-Karte außerdem über eine leistungsstarke Matrixmultiplikationseinheit verfügt, ist die Leistung der AMD-Karte möglicherweise nicht so gut wie die der N-Karte, selbst wenn diese kompiliert und ausgeführt werden kann.
Einige Internetnutzer glauben, dass der Grund für die Dominanz von NVIDIA darin besteht, dass AMD nicht bereit ist, in die Verbesserung der maschinellen Lernleistung seiner GPU zu investieren (anstatt nur den Vorteil von CUDA zu nutzen).
Auch wenn sie effizient laufen können, ist es auch eine Frage, ob AMD-Karten wirklich erschwinglich und zugänglich sind.
Es gibt auch eine Welle von Internetnutzern, die glauben, dass das größte Problem nicht darin besteht, ob es technisch läuft, sondern in den rechtlichen Fragen dahinter.
Dieses Thema hat ebenfalls umfangreiche Diskussionen ausgelöst, aber es gibt noch kein Ergebnis.
Manche Leute denken, dass SCALE rechtlich genauso fragwürdig ist wie ZLUDA (eine andere Möglichkeit, CUDA-Programme auf AMD auszuführen) und zu Klagen von NVIDIA führen könnte.
Konkret erlaubt das CUDA SDK gemäß den EULA-Bedingungen von NVIDIA nur die Entwicklung von Anwendungen, die auf N-Karten laufen, was kompatible Implementierungen wie SCALE möglicherweise verbietet.
Aber einige Internetnutzer sagten sofort, dass SCALE nicht NVIDIAs „SDK“ verwendet. Wie soll man also über die SDK-Nutzungsvereinbarung sprechen?
Kurz gesagt, ob es nun technische Mängel oder rechtliche Fragen sind, die Diskussionen über dieses neue Tool dauern noch an.
Ob es nützlich ist oder nicht, müssen die Entwickler mit ihren Füßen abstimmen.
Referenzlink:
[1]https://docs.scale-lang.com/
[2]https://news.ycombinator.com/item?id=40970560
Dieser Artikel stammt vom öffentlichen WeChat-Konto: Qubit (ID: QbitAI), Autor: Cressy
Das obige ist der detaillierte Inhalt vonStartup-Unternehmen härtet Nvidia: Emuliert CUDA auf AMD-Karten und Originalprogramme können direkt kompiliert und ausgeführt werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!