Veröffentlichung von ZLUDA 5, einer universellen offenen Implementierung der CUDA-Technologie.

Andrzej Janik hat die Veröffentlichung von ZLUDA 5, einer offenen Implementierung der CUDA-Technologie, vorgestellt. Das Ziel des Projekts ist es, die Ausführung unveränderter CUDA-Anwendungen auf Systemen mit GPUs, die nicht von NVIDIA sind, zu ermöglichen, mit einer Leistung, die nahe an der von Anwendungen liegt, die ohne Schichten ausgeführt werden. Der Code des Projekts ist in Rust geschrieben und wird unter den Lizenzen MIT und Apache 2.0 verbreitet.

ZLUDA 5 ist die zweite bedeutende Veröffentlichung des Projekts, die nach der Bereinigung der Codebasis von dem während der Arbeit von Andrzej bei AMD entwickelten Code entstanden ist. Seit 2022 arbeitete Andrzej bei AMD an der Schaffung einer Schicht für die Kompatibilität von AMD-GPUs mit CUDA, aber im Jahr 2024 wurde das Projekt eingestellt. Gemäß den Vertragsbedingungen und nach Erhalt der Genehmigung zur Veröffentlichung von einem Vertreter von AMD, hat Andrzej den Code seiner Arbeiten, die während seiner Zeit bei AMD entstanden sind und die die Ausführung von CUDA-Anwendungen über dem ROCm-Stack und dem HIP-Laufzeitsystem (Heterogeneous-computing Interface for Portability) ermöglichen, veröffentlicht.

Im letzten Jahr war Andrzej gezwungen, den Code aus dem offenen Zugang zu entfernen, nach einem Schreiben von Anwälten, die darauf hinwiesen, dass die Genehmigung, die im Rahmen des E-Mail-Austauschs erteilt wurde, rechtlich nicht bindend ist. Daraufhin begann Andrzej mit der Arbeit an einer neuen Version von ZLUDA, die auf der Codebasis basiert, die vor dem Beginn seiner Tätigkeit bei AMD existierte. In der aktuellen Form konzentriert sich die Entwicklung auf die Ausführung von Anwendungen, die CUDA zur Beschleunigung von Aufgaben im Zusammenhang mit maschinellem Lernen verwenden. Das Projekt ist derzeit auf die Arbeit mit AMD-GPUs beschränkt, wird aber später für Intel-GPUs angepasst.

Wichtige Verbesserungen in der neuen Version:

  • Erste Unterstützung für den Betrieb von llm.c, Llama.cpp und PyTorch über ZLUDA zur Ausführung großer Sprachmodelle mit CUDA-Optimierungen, die für NVIDIA-GPUs verwendet werden.
  • Erste Unterstützung für die Ausführung von Anwendungen, die zur Leistungssteigerung die Bibliotheken cuBLAS, cuBLASLt und nvml verwenden.
  • Eine Schicht zluda_trace wurde hinzugefügt, um Anwendungen, die CUDA verwenden, zu tracen. Mit zluda_trace können Probleme diagnostiziert und Mängel in ZLUDA identifiziert werden, die die ordnungsgemäße Ausführung der Anwendung verhindern.
  • Das Kommandozeilen-Utility zoc (ZLUDA offline compiler) wurde vorgestellt, welches die Kompilierung von Dateien mit NVIDIA PTX-Befehlen in die Zwischenrepräsentation AMD RDNA ermöglicht (früher war diese Funktionalität in Form von Bibliotheksfunktionen verfügbar).
  • Im PTX-Modul-Lader wurde ein Mechanismus zur Caching der auf der GPU ausgeführten Kerne implementiert. Das Caching ermöglicht es, die erneute Ausführung ressourcenintensiver Kompilierungsoperationen von PTX-Befehlen (Parallel Thread Execution) in Maschinencode für die gegebene GPU zu vermeiden.

    Quelle: opennet.ru
60GB SSD 8Gb DDR4