Les GPU NVIDIA bénéficient du support SYCL après que Codeplay ait contribué au développement de la norme DPC ++

Matériel / Les GPU NVIDIA bénéficient du support SYCL après que Codeplay ait contribué au développement de la norme DPC ++ 2 minutes de lecture

Nvidia



Après avoir obtenu le soutien de sociétés de premier plan comme Intel, Xilinx, Renesas et Imagination Technologies, le SYCL (prononcé «faucille»), les développeurs utilisant des GPU NVIDIA pourront désormais également en profiter. Codeplay, l'organisation qui a toujours été un contributeur actif à la communauté SYCL, a maintenant culminé le développement avancé de DPC ++ (Data Parallel C ++), qui permet de recycler et de réutiliser le code sur plusieurs plates-formes matérielles. Le résultat est ComputeCpp, La propre implémentation de SYCL par Codeplay .

La dernière édition de ComputeCpp offre une assistance expérimentale pour les GPU NVIDIA utilisant OpenCL et le PTX de NVIDIA

L'année dernière, Intel a franchi une étape décisive pour donner une impulsion à SYCL, et a même commencé à travailler sur oneAPI Standard. Le oneAPI inclut DPC ++ (une implémentation de SYCL avec des extensions) pour les CPU, GPU et FPGA d'Intel. Le mouvement est rapidement devenu assez grand et a pris de l'ampleur après que le soutien de SYCL est venu de Xilinx, Renesas et Imagination Technologies. En termes simples, les développeurs de logiciels peuvent désormais cibler une large gamme d'appareils à l'aide de SYCL.



Le ComputeCpp offre un support expérimental pour les GPU NVIDIA utilisant OpenCL et le PTX de NVIDIA. Mais DPC ++ (implémentation SYCL d'Intel) offre la possibilité d'ajouter un support complet pour les GPU NVIDIA intégrés au compilateur LLVM sans passer par OpenCL. Codeplay a annoncé qu'il procédait à l'open-source de la phase expérimentale initiale de son implémentation qui permet aux développeurs SYCL de cibler les GPU NVIDIA. La base de code de cette implémentation reste dans une fourchette séparée du projet de compilateur LLVM principal et de la branche DPC ++. L'organisation a ajouté qu'elle avait l'intention de travailler avec Intel pour ajouter la prise en charge du GPU NVIDIA au compilateur Intel / LLVM en amont.

Comment les développeurs peuvent-ils bénéficier du support SYCL pour les GPU NVIDIA?

Ce projet permet aux développeurs de cibler les GPU NVIDIA à l'aide du code SYCL, sans avoir à passer par la couche OpenCL du système. En d'autres termes, avec juste un GPU NVIDIA, les développeurs peuvent exécuter DPC ++ sur leur système pour compiler des applications SYCL. De plus, toute application CUDA existante peut être portée de manière incrémentielle vers SYCL à l'aide du support CUDA, puis l'exécuter sur une plate-forme qui ne dispose pas de CUDA. Cela économise clairement beaucoup de temps et des efforts répétés.

Codeplay a proposé des instructions sur le fichier README du projet expliquant comment utiliser le back-end NVIDIA pour DPC ++. Les développeurs doivent utiliser certains indicateurs lors de la compilation et du code pour configurer leur sélecteur de périphérique afin de s'assurer que le moteur d'exécution sait quel périphérique cibler. En particulier, la section ' Créer une chaîne d'outils SYCL avec prise en charge de NVIDIA CUDA »Et les options du compilateur Clang ont instructions spécifiques .

Codeplay a confirmé avoir exécuté avec succès le projet avec Ubuntu 18.04 en utilisant CUDA 10.1 sur un GPU Titan RTX (capacités de calcul 7.5). L'équipe assure qu'il devrait également fonctionner sur d'autres versions de Linux avec n'importe quel GPU NVIDIA compatible avec SM 5.0 ou supérieur. Cependant, l'application SYCL compilée ne pourra cibler que CUDA ou OpenCL, pas les deux en même temps.