NVIDIA-grafikprocessorer får SYCL-stöd efter kodspel bidrar till utvecklingen av DPC ++ -standarden

Hårdvara / NVIDIA-grafikprocessorer får SYCL-stöd efter kodspel bidrar till utvecklingen av DPC ++ -standarden 2 minuter läst

Nvidia



Efter att ha fått stöd från ledande företag som Intel, Xilinx, Renesas och Imagination Technologies, SYCL (uttalad 'sickle'), kommer utvecklarna som använder NVIDIA GPU: er nu att kunna dra nytta också. Codeplay, organisationen som stadigt har varit en aktiv bidragsgivare till SYCL-communityn, har nu kulminerat den avancerade utvecklingen av DPC ++ (Data Parallel C ++), där anläggningar återvinner och återanvänder kod över flera hårdvaruplattformar. Resultatet är ComputeCpp, Codeplay egen implementering av SYCL .

ComputeCpps senaste utgåva erbjuder experimentellt stöd för NVIDIA GPU: er som använder OpenCL och NVIDIA: s PTX

Förra året tog Intel ett avgörande steg för att ge ett tryck till SYCL och började till och med arbeta med oneAPI Standard. OneAPI innehåller DPC ++ (en implementering av SYCL med tillägg) för Intels CPU: er, GPU: er och FPGA: er. Rörelsen blev snart ganska stor och fick fart efter att stöd för SYCL kom in från Xilinx, Renesas och Imagination Technologies. Enkelt uttryckt kan programutvecklare nu rikta in sig på ett stort antal enheter med SYCL.



ComputeCpp erbjuder experimentellt stöd för NVIDIA GPU: er med OpenCL och NVIDIA: s PTX. Men DPC ++ (Intels SYCL-implementering) ger möjlighet att lägga till fullt stöd för NVIDIA GPU: er integrerade i LLVM-kompilatorn utan att gå igenom OpenCL. Codeplay meddelade att de öppnar sourcing av den inledande, experimentella fasen av deras implementering som gör det möjligt för SYCL-utvecklare att rikta in sig på NVIDIA GPU: er. Kodbasen för denna implementering stannar kvar en separat gaffel från både huvud LLVM-kompilatorprojektet och DPC ++ -grenen. Organisationen tillade att de avser att arbeta med Intel för att få NVIDIA GPU-stöd till den uppströms Intel / LLVM-kompilatorn.

Hur kan utvecklare dra nytta av SYCL-stödet för NVIDIA-grafikprocessorer?

Detta projekt gör det möjligt för utvecklare att rikta in sig på NVIDIA-grafikprocessorer med SYCL-kod utan att behöva gå igenom OpenCL-lagret i systemet. Med andra ord, med bara en NVIDIA GPU, kan utvecklare köra DPC ++ på sitt system för att kompilera SYCL-applikationer. Dessutom kan alla befintliga CUDA-applikationer stegvis överföras till SYCL med CUDA-stöd och sedan köra den på en plattform som inte har CUDA. Detta sparar tydligt mycket tid och upprepade ansträngningar.

Codeplay har erbjudit instruktioner om projektet README-fil som förklarar hur man använder NVIDIA-backend för DPC ++. Utvecklare är skyldiga att använda några flaggor när de kompilerar, och någon kod för att ställa in sin enhetsväljare för att säkerställa att körtiden vet vilken enhet som ska riktas in. I synnerhet avsnittet ” Bygg SYCL-verktygskedja med stöd för NVIDIA CUDA ”Och alternativen för Clang-kompilatorn har specifika instruktioner .

Codeplay bekräftade att de framgångsrikt körde projektet med Ubuntu 18.04 med CUDA 10.1 på en Titan RTX GPU (beräkningsfunktioner 7.5). Teamet försäkrar att det också ska fungera på andra Linux-versioner med alla NVIDIA GPU-kompatibla med SM 5.0 eller högre. Den sammanställda SYCL-applikationen kommer dock endast att kunna rikta in sig på CUDA eller OpenCL, inte båda samtidigt.