Nachricht

Startup-Unternehmen härtet Nvidia aus: Simuliert CUDA auf AMD-Karten, Originalprogramme lassen sich kompilieren und direkt ausführen

2024-07-16

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

  • Crecy stammt aus dem Aofei-Tempel
    Qubits |. Öffentliches Konto QbitAI

Ohne jegliche 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 eine breite, hitzige Diskussion unter Internetnutzern ausErreichte die Spitze der HackerNews-Hotlist



Das Tool heißt SCALE und wird von den Entwicklern als GPGPU-Programmier-Toolkit (General Purpose GPU) positioniert.



Derzeit haben 9 Programme, darunter das große Modellframework llama-cpp, den Test bestanden und laufen normal.

Im Gegensatz zu anderen Implementierungen bietet SCALESimulieren Sie direkt die Installation des CUDA-ToolkitsEs ist keine Konvertierung in andere Sprachen erforderlich, um die Kompilierung aus dem Quellcode abzuschließen.

Daher kann SCALE auch NVIDIA-spezifische Zwischensprachen wie Inline-PTX unterstützen.

Keine Konvertierung erforderlich, lassen Sie AMD CUDA ausführen

Die Einführung auf der offiziellen Website zeigt, dass SCALE hauptsächlich über einen mit drei Komponenten kompatiblen NVCC-Compiler, eine AMD-Implementierung der CUDA-Laufzeit- und Treiber-API sowie eine ROCm-Bibliothek verfügt.

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, und SCALE verwendet diese Methode beim Umgang mit Bibliotheken wie cuBLAS und cuSOLVER.



Das ist die wichtigste Innovation von SCALEAkzeptieren Sie das CUDA-Programm so wie es ist, ohne sie in eine andere Sprache portieren zu müssen,Kompatibel mit NVCC und Clangund andere Kompilierungsmethoden, während vorhandene Build-Tools und Skripte (wie cmake) normal funktionieren können.

Laut offizieller Aussage ist SCALE vollständig mit CUDA kompatibel und ermöglicht diesEntwickler müssen keine separaten Codes für verschiedene GPU-Plattformen schreiben

Dies unterscheidet sich stark vom von AMD eingeführten HIP, da HIP den CUDA-Code auf eine bestimmte Weise neu schreibt und komplexe Makros möglicherweise nicht richtig verstehen kann und keine proprietären Sprachen wie Inline-PTX unterstützt.

Selbst 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 einigeOptionale SpracherweiterungenDies kann Entwicklern, die nvcc loswerden möchten, das Schreiben von GPU-Code einfacher und effizienter machen.

Der Autor äußerte die Hoffnung, dass Entwickler in Zukunft Code 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 verschiedene AMD-GPU-Serien wie folgt:

  • Bereits unterstützt: gfx1030 (RX6000-Serie) und gfx1100 (RX7000-Serie)
  • „scheint zu funktionieren“: gfx1010 (RX5000-Serie) und gfx1101
  • Anpassung: gfx900 (RX Vega-Serie)

Darüber hinaus hat der Autor einige CUDA-Open-Source-Projekte getestet und 9 CUDA-Anwendungen erfolgreich mit SCALE ausgeführt.



Da es sich bei SCALE jedoch um ein brandneues Projekt handelt, 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 von relevanten Codes begleitet und enthalten sogar die Anleitung zur Bestimmung des Modells Ihrer eigenen GPU, die als sehr detailliert bezeichnet werden kann.



Wenn bei der Verwendung Probleme auftreten, stellt der Autor außerdem gängige Methoden zur Fehlerbehebung vor und eröffnet außerdem ein Discord-Forum, um direkt mit dem Entwicklungsteam zu kommunizieren.



Der Startup, der SCALE erstellt hat, wird aufgerufenSpektrale BerechnungDas 2018 im Vereinigten Königreich gegründete Unternehmen behauptet, über ein tiefgreifendes Verständnis der Architektur von CPU und GPU zu verfügen und hat sich zum Ziel gesetzt, Entwicklern dabei zu helfen, Rechenressourcen effizient zu nutzen.



Netizen: Nvidias Burggraben in Frage stellen?

Einige Internetnutzer glauben, dass SCALE, wenn es tatsächlich die beworbene Wirkung erzielen kann, 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 geben die Verantwortlichen von SCALE auch zu, dass es im Vergleich zum ursprünglichen CUDA noch einige Mängel gibt.

Und der Entwickler machte auch deutlich, dass einige CUDA-APIs und -Funktionen nicht unterstützt werden, nannte aber keine konkrete Liste.



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 könne, was bedeutet, dass das FlashAttention-Beschleunigungsframework nicht auf AMD ausgeführt werden könne.

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 (nicht nur in den Vorteil von CUDA).



Auch wenn sie effizient laufen, stellt sich die Frage, ob AMD-Karten wirklich erschwinglich und erschwinglich sind.



Eine weitere Welle von Internetnutzern glaubt, dass das größte Problem nicht darin besteht, ob es technisch funktioniert, sondern in den rechtlichen Fragen dahinter.

Dieses Thema hat ebenfalls eine ausführliche Diskussion ausgelöst, es gibt jedoch noch kein Ergebnis.

Einige 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.



Einige Internetnutzer sagten jedoch sofort, dass SCALE nicht das „SDK“ von NVIDIA verwendet. Warum also über die SDK-Nutzungsvereinbarung sprechen?



Kurz gesagt, ob es sich um einen technischen Mangel oder ein rechtliches Problem handelt, die Diskussion über dieses neue Tool ist noch nicht abgeschlossen.

Ob es nützlich ist oder nicht, müssen die Entwickler mit ihren Füßen abstimmen.

Referenzlinks:
[1]https://docs.scale-lang.com/
[2]https://news.ycombinator.com/item?id=40970560