Procesory graficzne NVIDIA uzyskują obsługę SYCL po tym, jak Codeplay przyczyni się do rozwoju standardu DPC ++

Sprzęt komputerowy / Procesory graficzne NVIDIA uzyskują obsługę SYCL po tym, jak Codeplay przyczyni się do rozwoju standardu DPC ++ 2 minuty czytania

Nvidia



Po uzyskaniu wsparcia od wiodących firm, takich jak Intel, Xilinx, Renesas i Imagination Technologies, SYCL (wymawiane jako „sierp”), programiści używający procesorów graficznych NVIDIA również będą mogli odnieść korzyści. Codeplay, organizacja, która niezachwianie aktywnie wspierała społeczność SYCL, zakończyła obecnie zaawansowany rozwój DPC ++ (Data Parallel C ++), który umożliwia recykling i ponowne wykorzystanie kodu na kilku platformach sprzętowych. Wynik to ComputeCpp, Własna implementacja SYCL firmy Codeplay .

Najnowsza wersja ComputeCpp oferuje eksperymentalną obsługę procesorów graficznych NVIDIA przy użyciu OpenCL i PTX firmy NVIDIA

W zeszłym roku Intel podjął decydujący krok w kierunku SYCL, a nawet rozpoczął prace nad standardem oneAPI. OneAPI zawiera DPC ++ (implementację SYCL z rozszerzeniami) dla procesorów Intela, GPU i FPGA. Ruch szybko stał się dość duży i nabrał rozpędu po tym, jak wsparcie dla SYCL nadeszło od Xilinx, Renesas i Imagination Technologies. Mówiąc najprościej, programiści mogą teraz kierować reklamy na szeroką gamę urządzeń za pomocą SYCL.



ComputeCpp oferuje eksperymentalną obsługę procesorów graficznych NVIDIA przy użyciu OpenCL i PTX firmy NVIDIA. Jednak DPC ++ (implementacja SYCL firmy Intel) oferuje możliwość dodania pełnej obsługi procesorów graficznych NVIDIA zintegrowanych z kompilatorem LLVM bez przechodzenia przez OpenCL. Firma Codeplay ogłosiła, że ​​korzysta z otwartego oprogramowania w początkowej, eksperymentalnej fazie implementacji, która umożliwia programistom SYCL kierowanie na procesory graficzne NVIDIA. Baza kodu dla tej implementacji pozostaje w oddzielny widelec zarówno z głównego projektu kompilatora LLVM, jak iz gałęzi DPC ++. Organizacja dodała, że ​​zamierzają współpracować z Intelem, aby dodać obsługę GPU NVIDIA do kompilatora Intel / LLVM.

Jakie korzyści mogą odnieść programiści z obsługi SYCL dla układów GPU NVIDIA?

Projekt ten umożliwia programistom kierowanie na procesory graficzne NVIDIA przy użyciu kodu SYCL, bez konieczności przechodzenia przez warstwę OpenCL w systemie. Innymi słowy, mając tylko GPU NVIDIA, programiści mogą uruchomić DPC ++ w swoim systemie, aby skompilować aplikacje SYCL. Co więcej, każdą istniejącą aplikację CUDA można stopniowo przenosić do SYCL przy użyciu obsługi CUDA, a następnie uruchamiać ją na platformie, która nie ma CUDA. To wyraźnie oszczędza dużo czasu i powtarzanych wysiłków.

Codeplay oferuje instrukcje dotyczące pliku README projektu wyjaśniające, jak używać zaplecza NVIDIA dla DPC ++. Deweloperzy są zobowiązani do użycia niektórych flag podczas kompilacji i kodu, aby skonfigurować selektor urządzeń, aby upewnić się, że środowisko wykonawcze wie, które urządzenie ma być docelowe. W szczególności sekcja „ Zbuduj łańcuch narzędzi SYCL z obsługą NVIDIA CUDA ”I opcje kompilatora Clang szczegółowe instrukcje .

Codeplay potwierdził, że pomyślnie przeprowadził projekt z Ubuntu 18.04 przy użyciu CUDA 10.1 na GPU Titan RTX (możliwości obliczeniowe 7.5). Zespół zapewnia, że ​​powinien działać również na innych wersjach Linuksa z dowolnym procesorem graficznym NVIDIA kompatybilnym z SM 5.0 lub nowszym. Jednak skompilowana aplikacja SYCL będzie mogła kierować tylko CUDA lub OpenCL, a nie obie jednocześnie.