Ang NVIDIA GPUs ay Nakakuha ng Suporta ng SYCL Pagkatapos ng Nag-aambag ang Codeplay Sa Pag-unlad Ng Pamantayang DPC ++

Hardware / Ang NVIDIA GPUs ay Nakakuha ng Suporta ng SYCL Pagkatapos ng Nag-aambag ang Codeplay Sa Pag-unlad Ng Pamantayang DPC ++ 2 minuto basahin

Nvidia



Matapos makakuha ng suporta mula sa mga nangungunang kumpanya tulad ng Intel, Xilinx, Renesas at Imagination Technologies, ang SYCL (binibigkas na 'karit'), ang mga nag-develop na gumagamit ng NVIDIA GPUs ay makakakuha rin ng benepisyo. Ang Codeplay, ang samahan na matatag na naging isang aktibong nag-aambag sa Komunidad ng SYCL, ay nagtapos sa advanced na pag-unlad ng DPC ++ (Data Parallel C ++), kung saan ang mga pasilidad ay nag-recycle at muling ginagamit ang code sa maraming mga platform ng hardware. Ang resulta ay ComputeCpp, Sariling pagpapatupad ng CCL ng SYCL .

Nag-aalok ang Pinakabagong Edisyon ng ComputeCpp ng Pang-eksperimentong Suporta Para sa mga NVIDIA GPU na gumagamit ng OpenCL at PTX ng NVIDIA

Noong nakaraang taon, ang Intel ay gumawa ng isang mapagpasyang hakbang upang magbigay ng isang push sa SYCL, at nagsimulang magtrabaho sa oneAPI Standard. Kasama sa oneAPI ang DPC ++ (isang pagpapatupad ng SYCL na may mga extension) para sa mga CPU ng CPU, GPU at FPGA ng Intel. Ang kilusan ay nagtagal at naging malaki at nagkamit ng momentum matapos ang suporta para sa SYCL ay nagmula sa Xilinx, Renesas, at Imagination Technologies. Sa madaling salita, ang mga developer ng software ay nakakapag-target na ngayon ng isang malawak na hanay ng mga aparato gamit ang SYCL.



Nag-aalok ang ComputeCpp ng pang-eksperimentong suporta para sa mga NVIDIA GPU na gumagamit ng OpenCL at PTID ng NVIDIA. Ngunit ang DPC ++ (pagpapatupad ng SYCL ng Intel) ay nag-aalok ng pagkakataong magdagdag ng buong suporta para sa mga NVIDIA GPU na isinama sa tagatala ng LLVM nang hindi dumaan sa OpenCL. Inanunsyo ng Codeplay na bukas silang sourcing ng paunang, pang-eksperimentong yugto ng kanilang pagpapatupad na nagbibigay-daan sa mga developer ng SYCL na i-target ang mga NVIDIA GPU. Ang codebase para sa pagpapatupad na ito ay mananatili sa isang hiwalay na tinidor mula sa parehong pangunahing proyekto ng tagatala ng LLVM at sangay ng DPC ++. Idinagdag ng samahan na balak nilang makipagtulungan sa Intel upang makuha ang suporta ng NVIDIA GPU na idinagdag sa upstream na Intel / LLVM compiler.

Paano Makikinabang ang Mga Nag-develop Mula sa Suporta ng SYCL Para sa mga NVIDIA GPU?

Pinapayagan ng proyektong ito ang mga developer na i-target ang mga NVIDIA GPU na gumagamit ng SYCL code, nang hindi kinakailangang dumaan sa layer ng OpenCL sa system. Sa madaling salita, sa pamamagitan lamang ng isang NVIDIA GPU, maaaring patakbuhin ng mga developer ang DPC ++ sa kanilang system upang maipon ang mga application ng SYCL. Bukod dito, ang anumang umiiral na Application ng CUDA ay maaaring dagdagan na mai-port sa SYCL gamit ang suporta ng CUDA, at pagkatapos ay patakbuhin ito sa isang platform na walang CUDA. Malinaw na nakakatipid ito ng maraming oras at paulit-ulit na pagsisikap.

Nag-aalok ang Codeplay ng mga tagubilin sa file na README ng proyekto na nagpapaliwanag kung paano gamitin ang NVIDIA back-end para sa DPC ++. Kinakailangan ang mga developer na gumamit ng ilang mga flag kapag nag-iipon, at ilang code upang mai-set up ang kanilang tagapili ng aparato upang matiyak na alam ng runtime kung anong target ang aparato. Sa partikular, ang seksyon na ' Bumuo ng SYCL toolchain na may suporta para sa NVIDIA CUDA ”At ang mga pagpipilian sa compiler ng Clang tiyak na mga tagubilin .

Kinumpirma ng Codeplay na matagumpay nilang pinatakbo ang proyekto sa Ubuntu 18.04 gamit ang CUDA 10.1 sa isang Titan RTX GPU (compute kakayahan 7.5). Tinitiyak ng koponan na dapat din itong gumana sa iba pang mga bersyon ng Linux na may anumang NVIDIA GPU na katugma sa SM 5.0 o mas mataas. Gayunpaman, ang pinagsama-samang application ng SYCL ay magagawang i-target ang alinman sa CUDA o OpenCL, hindi pareho sa parehong oras.