Outil de compatibilité intel DPC++ 

Outil de compatibilité intel DPC++

Premiers pas avec l'outil de compatibilité Intel® DPC+ +

L'outil de compatibilité Intel® DPC++ aide à la migration d'un programme de développeur écrit en CUDA* vers un programme écrit en Data Parallel C++ (DPC++), qui est basé sur le C++ moderne et intègre des normes industrielles portables telles que SYCL*.

  • Visitez le Guide et référence du développeur de l'outil de compatibilité Intel® DPC++ pour plus d'informations sur l'outil.
  • Consultez les notes de version pour les problèmes connus et les informations les plus récentes.

NOTE L'utilisation de l'outil de compatibilité Intel® DPC++ entraînera un projet qui n'est pas entièrement migré. Un travail supplémentaire, comme indiqué par la sortie de l'outil de compatibilité Intel® DPC++, est nécessaire pour terminer la migration.

Avant de commencer

L'outil de compatibilité Intel® DPC++ est inclus dans le kit d'outils de base Intel® oneAPI. Si vous n'avez pas installé Intel® oneAPI Base Toolkit, suivez les instructions du Guide d'installation.

Certains en-têtes CUDA files (spécifiques à votre projet) peuvent devoir être accessibles à Intel® DPC++
Outil de compatibilité. L'outil de compatibilité Intel® DPC++ recherche ces en-têtes CUDA files dans les emplacements par défaut :

  • /usr/local/cuda/include
  • /usr/local/cuda-xy/include, où xy est l'une de ces valeurs : 8.0, 9.x, 10.x et 11.0–11.6.

Vous pouvez référencer des emplacements personnalisés en pointant vers eux avec le –cuda-include-path= dans la ligne de commande de l'outil de compatibilité Intel® DPC++.

NOTE Le chemin d'inclusion CUDA ne doit pas être le même que le chemin enfant du répertoire où se trouve le code source qui doit être migré.

Actuellement, l'outil de compatibilité Intel® DPC++ prend en charge la migration des programmes implémentés avec les versions CUDA 8.0, 9.x, 10.x et 11.0–11.6. La liste des langues et des versions prises en charge peut être étendue à l'avenir.

Pour configurer l'environnement de l'outil de compatibilité Intel® DPC++, exécutez ce qui suit :

  • Sous Linux (sudo): source /opt/intel/oneapi/setvars.sh
  • Sous Linux (utilisateur) : source ~/intel/oneapi/setvars.sh
  • Sous Windows :Lecteur:\ Programme Files (x86)\Intel\oneAPI\setvars.bat

La syntaxe générale d'invocation à partir du shell du système d'exploitation est :

dpct [options] [ … ]

NOTE c2s est un alias de la commande dpct et peut être utilisé à sa place.

Informations d'utilisation intégrées 

Pour voir la liste des options spécifiques à l'outil de compatibilité Intel® DPC++, utilisez –help :

dpct-aide

Pour voir la liste des options de l'analyseur de langage (Clang*), passez -help comme option Clang :

dpct — -aide
Avertissements émis

L'outil de compatibilité Intel® DPC++ identifie les endroits du code qui peuvent nécessiter votre attention lors de la migration du files afin de rendre le code SYCL conforme ou correct.
Les commentaires sont insérés dans la source générée files et affichés sous forme d'avertissements dans la sortie. Par exempleample:

/chemin/vers/file.hpp:26:1 : avertissement : DPCT1003:0 : l'API migrée ne renvoie pas de code d'erreur. (*,0) est inséré. Vous devrez peut-être réécrire ce code. // ligne de code source pour laquelle un avertissement a été généré ^

Pour plus de détails sur la signification d'un avertissement spécifique, reportez-vous au Référence diagnostique.

Pour plus de détails sur la signification d'un avertissement spécifique, reportez-vous à la référence de diagnostic.

Migrer un projet de test simple

L'outil de compatibilité Intel® DPC++ est fourni avec plusieursample projets afin que vous puissiez explorer l'outil et vous familiariser avec son fonctionnement :

Sample Projet Description
 Vecteur Ajouter DPCT
  • vecteur_add.cu
Le vecteur Ajouter DPCT sampLe fichier montre comment migrer un programme simple de CUDA vers SYCL. Vector Add fournit un moyen simple de vérifier que votre environnement de développement est correctement configuré pour utiliser l'outil de compatibilité Intel® DPC++.
Options de dossier DPCT
  • main.cu
  • bar/util.cu
  • bar/util.h
Les options de dossier DPCT sampLe fichier montre comment migrer des projets plus complexes et utiliser les options.
Rodinia NW DPCT
  • aiguille.cu
  • aiguille.h
  • aiguille_kernel.cu
Les DPCT de Rodinia NWampLe fichier montre comment migrer un projet Make/CMake de CUDA vers SYCL à l'aide de l'outil de compatibilité Intel® DPC++.

Review le LISEZ-MOI file fourni avec chaque sample pour des informations plus détaillées sur le but et l'utilisation du sample projet.

Pour accéder au samples

  • utilisez l'utilitaire oneapi-cli pour sélectionner commeampfichier de la catégorie Outil de compatibilité Intel® DPC++, ou
  • télécharger le samples de GitHub*.

Pour plus d'informations sur la façon de télécharger et d'accéder au sampfichiers, consultez les guides de démarrage Intel® oneAPI Base Toolkit :

Essayez un Sample Projet 

Suivez ces étapes pour migrer les Vector Add DPCT sample projet à l'aide de l'outil de compatibilité Intel® DPC++ :

  1. Télécharger les vector_add.cu sample.
  2. Exécutez l'outil de compatibilité Intel® DPC++ à partir du sample répertoire racine :
    dpct –in-root=. src/vecteur_add.cu

     

    Le vector_add.dp.cpp file doit apparaître dans le répertoire dpct_output. Le file est maintenant une source SYCL file.

  3. Accédez à la nouvelle source SYCL file:
cddpct_output

Vérifiez le code source généré et corrigez tout code que l'outil de compatibilité Intel® DPC++ n'a pas pu migrer. (Le code utilisé dans cet example fichier est simple, donc des modifications manuelles peuvent ne pas être nécessaires). Pour obtenir les instructions les plus précises et les plus détaillées sur le traitement des avertissements émis par l'outil de compatibilité Intel® DPC++, consultez la section Adressage des avertissements dans le code migré du LISEZ-MOI files.

NOTE Pour compiler les s migrésample, ajoutez -I/include à votre commande de compilation.

Pour les s plus complexesamples instructions, voir le Migrer un projet section du Guide et référence du développeur de l'outil de compatibilité Intel® DPC++.

En savoir plus

Contenu Description
Compatibilité Intel® DPC++

Guide du développeur d'outils et

Référence

Détaillé surview des fonctionnalités, du flux de travail et de l'utilisation de l'outil de compatibilité Intel® DPC++.
Sur demande Webinar :

Migrer votre CUDA existant

Code vers code DPC++

Comment migrer le code CUDA vers Data Parallel C++ (DPC++) à l'aide de l'outil de compatibilité Intel® DPC++, un moteur de migration unique qui porte à la fois les noyaux et les appels d'API.
Guides d'installation pour Intel®

Boîtes à outils oneAPI

Instructions détaillées sur la façon d'obtenir et d'installer les packages Intel® oneAPI à l'aide de différents modes d'installation et gestionnaires de packages.
Version de la spécification SYCL

1.2.1 PDF

Le PDF de la spécification SYCL. Explique comment SYCL intègre les appareils OpenCL avec le C++ moderne.
Spécification SYCL 2020 Le PDF de la spécification SYCL 2020.
Khronos * SYCL surview Un plusview de SYCL fourni par le groupe Khronos.
Compiler CUDA avec clang Description de la prise en charge de CUDA dans clang.
Extensions Intel LLVM SYCL Extensions proposées à la spécification SYCL.
Calques pour Yocto* Project Ajouter un composant API à un build de projet Yocto en utilisant les couches meta-intel.

Intel Logo

Documents / Ressources

Outil de compatibilité intel DPC++ [pdf] Guide de l'utilisateur
Outil de compatibilité DPC, outil de compatibilité, outil

Références

Laisser un commentaire

Votre adresse email ne sera pas publiée. Les champs obligatoires sont marqués *