NVIDIA-GPUs erhalten SYCL-Unterstützung, nachdem Codeplay zur Entwicklung des DPC ++ - Standards beigetragen hat

Hardware /. NVIDIA-GPUs erhalten SYCL-Unterstützung, nachdem Codeplay zur Entwicklung des DPC ++ - Standards beigetragen hat 2 Minuten gelesen

Nvidia



Nach der Unterstützung durch führende Unternehmen wie Intel, Xilinx, Renesas und Imagination Technologies, die SYCL (ausgesprochen „Sichel“), können Entwickler, die NVIDIA-GPUs verwenden, nun auch davon profitieren. Codeplay, die Organisation, die unerschütterlich aktiv zur SYCL-Community beigetragen hat, hat jetzt die Weiterentwicklung von DPC ++ (Data Parallel C ++) gipfelt, mit dem Code auf mehreren Hardwareplattformen recycelt und wiederverwendet werden kann. Das Ergebnis ist ComputeCpp, Codeplays eigene Implementierung von SYCL .

Die neueste Version von ComputeCpp bietet experimentelle Unterstützung für NVIDIA-GPUs mit OpenCL und NVIDIAs PTX

Im vergangenen Jahr hat Intel einen entscheidenden Schritt unternommen, um SYCL voranzutreiben, und sogar begonnen, an oneAPI Standard zu arbeiten. Die oneAPI enthält DPC ++ (eine Implementierung von SYCL mit Erweiterungen) für Intel-CPUs, GPUs und FPGAs. Die Bewegung wurde bald ziemlich groß und gewann an Dynamik, nachdem Xilinx, Renesas und Imagination Technologies SYCL unterstützten. Kurz gesagt, Softwareentwickler können jetzt mit SYCL eine Vielzahl von Geräten ansprechen.



Die ComputeCpp bietet experimentelle Unterstützung für NVIDIA-GPUs mit OpenCL und NVIDIAs PTX. DPC ++ (Intel SYCL-Implementierung) bietet jedoch die Möglichkeit, NVIDIA-GPUs, die in den LLVM-Compiler integriert sind, vollständig zu unterstützen, ohne OpenCL zu verwenden. Codeplay gab bekannt, dass sie die erste experimentelle Phase ihrer Implementierung als Open-Sourcing-Lösung anbieten, die es SYCL-Entwicklern ermöglicht, auf NVIDIA-GPUs abzuzielen. Die Codebasis für diese Implementierung bleibt erhalten eine separate Gabel sowohl aus dem Hauptprojekt des LLVM-Compilers als auch aus dem DPC ++ - Zweig. Die Organisation fügte hinzu, dass sie beabsichtigen, mit Intel zusammenzuarbeiten, um die NVIDIA-GPU-Unterstützung für den vorgelagerten Intel / LLVM-Compiler zu erhalten.

Wie können Entwickler von der SYCL-Unterstützung für NVIDIA-GPUs profitieren?

Mit diesem Projekt können Entwickler NVIDIA-GPUs mithilfe von SYCL-Code als Ziel festlegen, ohne die OpenCL-Schicht im System durchlaufen zu müssen. Mit anderen Worten, mit nur einer NVIDIA-GPU können Entwickler DPC ++ auf ihrem System ausführen, um SYCL-Anwendungen zu kompilieren. Darüber hinaus kann jede vorhandene CUDA-Anwendung mithilfe der CUDA-Unterstützung schrittweise auf SYCL portiert und dann auf einer Plattform ohne CUDA ausgeführt werden. Dies spart eindeutig viel Zeit und wiederholte Anstrengungen.

Codeplay hat Anweisungen zur README-Datei des Projekts angeboten, in denen die Verwendung des NVIDIA-Backends für DPC ++ erläutert wird. Entwickler müssen beim Kompilieren einige Flags und Code zum Einrichten ihrer Geräteauswahl verwenden, um sicherzustellen, dass die Laufzeit weiß, auf welches Gerät sie abzielen soll. Insbesondere der Abschnitt „ Erstellen Sie eine SYCL-Toolchain mit Unterstützung für NVIDIA CUDA ”Und die Clang-Compiler-Optionen haben spezifische Anweisungen .

Codeplay bestätigte, dass das Projekt mit Ubuntu 18.04 unter Verwendung von CUDA 10.1 auf einer Titan RTX-GPU (Rechenfunktionen 7.5) erfolgreich ausgeführt wurde. Das Team versichert, dass es auch auf anderen Linux-Versionen mit jeder NVIDIA-GPU funktionieren sollte, die mit SM 5.0 oder höher kompatibel ist. Die kompilierte SYCL-Anwendung kann jedoch nur entweder auf CUDA oder OpenCL abzielen, nicht beide gleichzeitig.