Графичните процесори на NVIDIA получават поддръжка на SYCL, след като Codeplay допринася за развитието на стандарта DPC ++

Хардуер / Графичните процесори на NVIDIA получават поддръжка на SYCL, след като Codeplay допринася за развитието на стандарта DPC ++ 2 минути четене

Nvidia



След като получиха подкрепа от водещи компании като Intel, Xilinx, Renesas и Imagination Technologies, SYCL (произнася се „сърп“), разработчиците, използващи графични процесори NVIDIA, вече ще могат да спечелят и предимството. Codeplay, организацията, която непрекъснато участва активно в общността SYCL, сега завърши с усъвършенстваното развитие на DPC ++ (Data Parallel C ++), който предлага рециклиране и повторно използване на код на няколко хардуерни платформи. Резултатът е ComputeCpp, Собствената реализация на SYCL на Codeplay .

Последното издание на ComputeCpp предлага експериментална поддръжка за графични процесори на NVIDIA, използващи OpenCL и PTX на NVIDIA

Миналата година Intel предприе решителна стъпка, за да даде тласък на SYCL, и дори започна да работи по oneAPI Standard. OneAPI включва DPC ++ (изпълнение на SYCL с разширения) за процесори, графични процесори и FPGA на Intel. Скоро движението стана доста голямо и набра скорост, след като подкрепата за SYCL дойде от Xilinx, Renesas и Imagination Technologies. Просто казано, разработчиците на софтуер вече могат да насочват към широк спектър от устройства, използващи SYCL.



ComputeCpp предлага експериментална поддръжка за графични процесори на NVIDIA, използващи OpenCL и PTX на NVIDIA. Но DPC ++ (внедряването на SYCL на Intel) предлага възможност за добавяне на пълна поддръжка за NVIDIA графични процесори, интегрирани в LLVM компилатора, без да се преминава през OpenCL. Codeplay обяви, че те са с отворен код за началната, експериментална фаза на тяхното внедряване, която позволява на разработчиците на SYCL да се насочат към графичните процесори на NVIDIA. Кодовата база за това внедряване остава отделна вилица както от основния проект на компилатора на LLVM, така и от клона DPC ++. От организацията добавиха, че възнамеряват да работят с Intel, за да получат поддръжката на NVIDIA GPU към добавения компилатор Intel / LLVM.

Как могат разработчиците да се възползват от поддръжката на SYCL за графични процесори NVIDIA?

Този проект дава възможност на разработчиците да се насочват към графичните процесори на NVIDIA, използвайки SYCL код, без да се налага да преминават през слоя OpenCL в системата. С други думи, само с NVIDIA GPU, разработчиците могат да стартират DPC ++ в своята система, за да компилират SYCL приложения. Освен това всяко съществуващо приложение CUDA може да бъде прехвърлено постепенно към SYCL с помощта на поддръжката на CUDA и след това да се стартира на платформа, която няма CUDA. Това явно спестява много време и многократни усилия.

Codeplay предложи инструкции за файла README на проекта, обясняващи как да използвате NVIDIA back-end за DPC ++. Разработчиците трябва да използват някои флагове при компилиране и някакъв код, за да настроят своя селектор на устройства, за да гарантират, че по време на изпълнението знае какво устройство да насочва. По-специално, раздел „ Изградете SYCL верига с поддръжка за NVIDIA CUDA ”И опциите на компилатора на Clang имат конкретни инструкции .

Codeplay потвърдиха, че успешно са изпълнили проекта с Ubuntu 18.04, използвайки CUDA 10.1 на графичен процесор Titan RTX (изчислителни възможности 7.5). Екипът гарантира, че трябва да работи и на други версии на Linux с всеки NVIDIA GPU, съвместим със SM 5.0 или по-нова версия. Компилираното приложение SYCL обаче ще може да насочва само към CUDA или OpenCL, но не и към двете едновременно.