NVIDIA GPU'er får SYCL-support efter codeplay bidrager til udvikling af DPC ++ -standarden
Efter at have fået support fra førende virksomheder som Intel, Xilinx, Renesas og Imagination Technologies, SYCL (udtalt 'segl'), vil udviklerne, der bruger NVIDIA GPU'er, nu også kunne få fordelen. Codeplay, den organisation, der standhaftigt har været en aktiv bidragyder til SYCL-samfundet, har nu kulmineret den avancerede udvikling af DPC ++ (Data Parallel C ++), som faciliteter genbruger og genbruger kode på tværs af flere hardware-platforme. Resultatet er ComputeCpp, Codeplay's egen implementering af SYCL.
ComputeCpps seneste udgave tilbyder eksperimentel support til NVIDIA GPU'er, der bruger OpenCL og NVIDIAs PTX
Sidste år tog Intel et afgørende skridt for at give SYCL et skub og begyndte endda at arbejde på oneAPI Standard. OneAPI inkluderer DPC ++ (en implementering af SYCL med udvidelser) til Intels CPU'er, GPU'er og FPGA'er. Bevægelsen blev hurtigt ganske stor og fik fart efter støtte til SYCL kom ind fra Xilinx, Renesas og Imagination Technologies. Kort sagt, softwareudviklere er nu i stand til at målrette mod en bred vifte af enheder ved hjælp af SYCL.
ComputeCpp tilbyder eksperimentel support til NVIDIA GPU'er ved hjælp af OpenCL og NVIDIAs PTX. Men DPC ++ (Intels SYCL-implementering) giver mulighed for at tilføje fuld support til NVIDIA GPU'er integreret i LLVM-compileren uden at gå gennem OpenCL. Codeplay meddelte, at de åbner for den indledende, eksperimentelle fase af deres implementering, der gør det muligt for SYCL-udviklere at målrette mod NVIDIA GPU'er. Kodebasen til denne implementering forbliver ien separat gaffel fra både det vigtigste LLVM-compiler-projekt og DPC ++ -grenen. Organisationen tilføjede, at de agter at arbejde sammen med Intel for at få NVIDIA GPU-supporten føjet til upstream Intel / LLVM-kompilatoren.
Hvordan kan udviklere drage fordel af SYCL-support til NVIDIA GPU'er?
Dette projekt giver udviklere mulighed for at målrette mod NVIDIA GPU'er ved hjælp af SYCL-kode uden at skulle gå gennem OpenCL-laget i systemet. Med andre ord, med bare en NVIDIA GPU, kan udviklere køre DPC ++ på deres system for at kompilere SYCL-applikationer. Desuden kan enhver eksisterende CUDA-applikation gradvis overføres til SYCL ved hjælp af CUDA-supporten og derefter køre den på en platform, der ikke har CUDA. Dette sparer tydeligt meget tid og gentagne bestræbelser.
Codeplay har tilbudt instruktioner om README-filprojektet, der forklarer, hvordan man bruger NVIDIA-backend til DPC ++. Udviklere skal bruge nogle flag ved kompilering, og nogle kode for at indstille deres enhedsvælger for at sikre, at runtime ved, hvilken enhed de skal målrette mod. Især afsnittet “Byg SYCL-værktøjskæde med support til NVIDIA CUDA”Og Clang-kompilatorindstillingerne harspecifikke instruktioner.
Codeplay bekræftede, at de med succes kørte projektet med Ubuntu 18.04 ved hjælp af CUDA 10.1 på en Titan RTX GPU (beregningsfunktioner 7.5). Holdet forsikrer, at det også skal arbejde på andre Linux-versioner med enhver NVIDIA GPU, der er kompatibel med SM 5.0 eller nyere. Imidlertid vil den kompilerede SYCL-applikation kun være i stand til enten at målrette mod CUDA eller OpenCL, ikke begge på samme tid.
Holdet advarer også om, at den oprindelige frigivelse af projektet ikke er optimeret, så ydeevne er muligvis ikke optimal under alle omstændigheder. Med andre ord skal udviklere implementere det samme og fastslå hastighedsforbedringerne selv, hvis der er nogen. Dette skyldes, at kodegenerering ikke anvender bestemte optimeringspas. Desuden bruger CUDA-implementeringen af SYCL-specifikationen i Plugin-interface ingen avancerede CUDA-funktioner.
Codeplay har vist, at boosting af kompatibilitet og funktionalitet fortsat er deres højeste prioriteter. De angav, at det nuværende fokus er at implementere så meget funktionalitet som muligt, så udviklere kan køre en række SYCL-applikationer på NVIDIA GPU-platforme. Ydeevneoptimeringer kommer senere med hjælp fra medlemmer af samfundet.