Das Toolset ZLUDA wurde veröffentlicht, das es ermöglicht, CUDA-Anwendungen auf AMD-GPUs auszufĂŒhren.

Das ZLUDA-Projekt hat eine offene Implementierung der CUDA-Technologie fĂŒr AMD-GPUs entwickelt, die es ermöglicht, unmodifizierte CUDA-Anwendungen mit einer Leistung auszufĂŒhren, die nahe an der Leistung von Anwendungen liegt, die ohne Abstraktionen ausgefĂŒhrt werden. Das veröffentlichte Toolkit gewĂ€hrleistet binĂ€re KompatibilitĂ€t mit bestehenden CUDA-Anwendungen, die mit dem CUDA-Compiler fĂŒr NVIDIA-GPUs erstellt wurden. Die Implementierung lĂ€uft auf dem von AMD entwickelten ROCm-Stack und dem HIP (Heterogeneous-computing Interface for Portability) Runtime. Der Code des Projekts ist in Rust geschrieben und wird unter den Lizenzen MIT und Apache 2.0 verteilt. Die AusfĂŒhrung wird sowohl in Linux als auch in Windows unterstĂŒtzt.

Die Schicht zur Organisation der CUDA-Arbeit auf Systemen mit AMD-GPUs wurde in den letzten zwei Jahren entwickelt, hat jedoch eine lĂ€ngere Geschichte, da sie ursprĂŒnglich zur UnterstĂŒtzung von CUDA auf Intel-GPUs erstellt wurde. Die Änderung der GPU-UnterstĂŒtzungspolitik erklĂ€rt sich dadurch, dass der Entwickler von ZLUDA frĂŒher Mitarbeiter von Intel war, das Unternehmen jedoch 2021 das Interesse an der Bereitstellung der Möglichkeit zum AusfĂŒhren von CUDA-Anwendungen auf Intel-GPUs als nicht geschĂ€ftsrelevant einstufte und die Entwicklung der Initiative nicht vorantrieb.

Anfang 2022 verließ ein Entwickler Intel und schloss einen Vertrag mit AMD zur Entwicklung einer Schicht fĂŒr die KompatibilitĂ€t mit CUDA ab. WĂ€hrend der Entwicklung bat AMD darum, das Interesse an dem ZLUDA-Projekt nicht öffentlich zu machen und keine Commits im öffentlichen ZLUDA-Repository durchzufĂŒhren. Nach zwei Jahren entschied AMD, dass die AusfĂŒhrung von CUDA-Anwendungen auf AMD-GPUs fĂŒr das GeschĂ€ft uninteressant sei, was es dem Entwickler gemĂ€ĂŸ den Vertragsbedingungen ermöglichte, seine Arbeiten offenzulegen. Da die GPU-Hersteller das Projekt nicht mehr finanzierten, hĂ€ngt dessen Schicksal nun vom Interesse der Community und von Angeboten zur Zusammenarbeit anderer Unternehmen ab. Ohne externe UnterstĂŒtzung könnte das Projekt möglicherweise nur in den Richtungen weiterentwickelt werden, die dem Autor persönlich interessant sind, wie DLSS (Deep Learning Super Sampling).

In seinem aktuellen Zustand wird die QualitĂ€t der Implementierung als Alpha-Version bewertet. Dennoch kann ZLUDA bereits fĂŒr die AusfĂŒhrung vieler CUDA-Anwendungen verwendet werden, einschließlich Geekbench, 3DF Zephyr, Blender, Reality Capture, LAMMPS, NAMD, waifu2x, OpenFOAM und Arnold. Eine minimale UnterstĂŒtzung von primitiven und Bibliotheken wie cuDNN, cuBLAS, cuSPARSE, cuFFT, NCCL und NVML ist gewĂ€hrleistet.

Der erste Start von CUDA-Anwendungen unter ZLUDA erfolgt mit deutlichen Verzögerungen, da ZLUDA den GPU-Code kompiliert. Bei nachfolgenden Starts treten diese Verzögerungen nicht auf, da der kompilierte Code im Cache gespeichert wird. WĂ€hrend der AusfĂŒhrung des kompilierten Codes liegt die Leistung nahe der nativen. Bei der DurchfĂŒhrung des Geekbench-Pakets auf der AMD Radeon 6800 XT zeigte der CUDA-Test, der mit ZLUDA durchgefĂŒhrt wurde, eine deutlich höhere Leistung als die OpenCL-Variante.

Das Toolset ZLUDA wurde veröffentlicht, das es ermöglicht, CUDA-Anwendungen auf AMD-GPUs auszufĂŒhren.

Die UnterstĂŒtzung des offiziellen CUDA Driver API und der durch Reverse Engineering ermittelten Teile der undocumented CUDA API ist in ZLUDA durch den Austausch von Funktionsaufrufen gegen entsprechende Funktionen, die im HIP Runtime bereitgestellt werden, realisiert, welches CUDA in vielerlei Hinsicht Ă€hnelt. Zum Beispiel wird die Funktion cuDeviceGetAttribute() durch hipDeviceGetAttribute() ersetzt. Ebenso wird die KompatibilitĂ€t mit NVIDIA-Bibliotheken wie NVML, cuBLAS und cuSPARSE gewĂ€hrleistet – fĂŒr solche Bibliotheken stellt ZLUDA Translationsbibliotheken mit demselben Namen und derselben FunktionalitĂ€t zur VerfĂŒgung, die als Wrapper ĂŒber Ă€hnliche AMD-Bibliotheken konstruiert sind.

Der GPU-Code von Anwendungen, der in das PTX (Parallel Thread Execution) Format kompiliert wurde, wird zunĂ€chst von einem speziellen Compiler in eine ZwischenreprĂ€sentation LLVM IR ĂŒbersetzt, auf deren Grundlage der BinĂ€rcode fĂŒr die GPU AMD generiert wird.

Das Toolset ZLUDA wurde veröffentlicht, das es ermöglicht, CUDA-Anwendungen auf AMD-GPUs auszufĂŒhren.


Quelle: opennet.ru
Erwerben Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster