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

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, den organisation som stadigt har varit en aktiv bidragsgivare till SYCL-communityn, har nu kulminerat den avancerade utvecklingen av DPC ++ (Data Parallel C ++), som erbjuder återvinning och återanvändning av 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 inkluderar 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 tillkännagav 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 förblir kvaren 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 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 GPU: er 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 sammanställa 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 vissa 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 de ska rikta sig till. I synnerhet avsnittet ”Bygg SYCL-verktygskedja med stöd för NVIDIA CUDA”Och Clang-kompilatoralternativen harspecifika 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 CUDA eller OpenCL, inte båda samtidigt.

Teamet varnar också för att den ursprungliga utgåvan av projektet inte har optimerats, så prestanda kanske inte är optimala under alla omständigheter. Med andra ord kommer utvecklare att behöva distribuera detsamma och själva fastställa hastighetsförbättringarna, om det finns några. Detta beror på att kodgenereringen inte tillämpar några speciella optimeringspass. Dessutom använder CUDA-implementeringen av SYCL-specifikationen i Plugin-gränssnittet inga avancerade CUDA-funktioner.

Codeplay har visat att förstärkning av kompatibilitet och funktionalitet förblir deras högsta prioriteringar. De indikerade att det nuvarande fokuset är att implementera så mycket funktionalitet som möjligt så att utvecklare kan köra en rad SYCL-applikationer på NVIDIA GPU-plattformar. Prestationsoptimeringar kommer senare med hjälp av community-medlemmar.

Facebook Twitter Google Plus Pinterest