OpenCL™ - BSP - Centre de support
Intel® FPGA SDK for OpenCL™ permet aux développeurs de logiciels d’accélérer leurs applications en ciblant des plates-formes hétérogènes avec des processeurs Intel et des FPGA. Le SDK FPGA Intel® pour OpenCL™ peut être installé dans le cadre du logiciel Intel® Quartus® Prime ou en tant que package séparé. Vous pouvez télécharger le SDK Intel FPGA pour OpenCL à partir du lien ci-dessous.
Bienvenue sur la page d™abord d’assistance BSP d’OpenCL ! Vous trouverez ici des informations sur la planification, la conception et la mise en œuvre de votre OpenCL™ BSP, ainsi que quelques conseils et astuces à des fins de débogage.
Cette page est configurée pour vous guider du début à la fin du processus de développement d’un OpenCL™ Board Support Package (BSP) (ou de conception/migration du noyau/algorithmes OpenCL). Dans la section Modifier une conception de référence, vous trouverez des ressources sur la façon de modifier la plate-forme de référence Intel® dans votre propre plate-forme personnalisée ainsi que sur la façon de compiler des conceptions plates sans défaillance de synchronisation. La section Planification de l’étage et fermeture temporelle fournit des conseils sur la façon de partitionner votre conception et d’atteindre une fréquence de fonctionnement maximale. Il décrit également les techniques permettant de fermer le timing sur votre conception et d’avoir une fermeture de timing garantie lors de la construction d’un BSP. La section MmD et OpenCL Utilities fournit des étapes pour reconstruire le MMD et fournit des informations détaillées sur les utilitaires OpenCL. La section Déboguer vous fournit des outils et des ressources pour les problèmes de débogage que vous pouvez rencontrer. Il y a des documents et des cours de formation répertoriés dans toutes les sections qui sont utiles pendant le processus de développement BSP.
1. Modifier une conception de référence
Commencer
Pour commencer à développer BSP, assurez-vous d’effectuer les étapes suivantes :
- Vérifiez que le SDK FPGA Intel® pour OpenCL™ et le logiciel Intel® Quartus® est installé.
- Vérifiez que la version de l’outil qui correspond au BSP de référence OpenCL™ est disponible.
- Confirmez l’accès à la licence complète du logiciel Intel® Quartus®.
Sélectionner une conception de référence
Sélectionnez la conception de référence qui convient à votre plate-forme personnalisée
Intel prend en charge les conceptions BSP de référence OpenCL™ pour les plates-formes suivantes. Vous pouvez également consulter le guide de portage BSP OpenCL™ pour une plate-forme spécifique :
- Kit de développement PCIe* Stratix® V - Consultez le Sdk Intel® FPGA pour OpenCL™ Stratix® V Network Reference Platform Porting Guide ›
- Kit de développement PCIe Intel® Arria® 10 - Voir le Kit de développement intel® FPGA pour OpenCL™ Intel® Arria® Guide de référence du kit de développement FPGA 10 GX ›
- Kit de développement SoC Intel® Arria® 10 - Voir le Kit de développement de plate® de référence intel ® FPGA pour OpenCL™ Intel® Arria® 10 SoC Development Kit ›
- Kit de développement Intel® Stratix® 10 PCIe* - Voir le Kit de développement intel® FPGA pour OpenCL™ Intel® Stratix® Guide de référence du kit de développement FPGA 10 GX ›
Modifier une conception de référence
Commencez à modifier la conception de référence de votre plate-forme en suivant les étapes décrites dans les guides de portage BSP OpenCL. Une fois les modifications de conception terminées, il est recommandé d’essayer de compiler votre premier noyau. Généralement, nous utilisons un noyau appelé Boardtest, qui teste différentes interfaces du BSP. Les informations sur les étapes de construction du Boardtest et du BSP générique sont mentionnées dans le guide suivant :
Intel® FPGA SDK for OpenCL™ Custom Platform Toolkit Guide de l’utilisateur (PDF) ›
Étapes recommandées pour créer un BSP :
- Compilez le Boardtest en flux « plat » pour générer un fichier « .aocx » fermé au moment de la synchronisation
- Validez le « .aocx » en exécutant le Boardtest et recoupez les attentes de bande passante de l’interface du test
- Commencez à travailler sur la planification d’étage pour la construction « de base » afin de créer un BSP OpenCL garanti et fermé
2. Planification des étages et fermeture temporelle
Commencer
Dans OpenCL, nous devons travailler sur le calendrier de deux révisions différentes du projet – les révisions plates et les révisions de base. Une révision plate est celle sans partitions ni régions de verrouillage logique et utilise le fichier hardware/flat.qsf pour l’implémenter. Alors que la révision de base est celle qui inclut le partitionnement et les verrous logiques, et utilise le fichier hardware/base.qsf pour l’implémenter. Nous vous recommandons d’obtenir d’abord une révision plate sans synchronisation comme un bon début, puis de travailler sur la planification au sol pour obtenir une révision de base de la conception sans synchronisation.
Pour plus d’informations sur le flux de compilation, reportez-vous à la section Flux de compilation OpenCL™ BSP du Guide d’optimisation du plan d’étage du package de support Intel® FPGA SDK for OpenCL™ Board.
Cloison de plan d’étage
Commencez par une compilation plate pour comprendre où tous les principaux composants du BSP sont placés naturellement (en particulier les blocs de propriété intellectuelle (IP) avec des connexions d’E/S, tels que la mémoire PCIe* ou DDR).
Pour plus d’instructions à ce sujet, reportez-vous à la section Instructions pour OpenCL™ BSP Floorplanning dans le Guide d’optimisation du plan d’étage du package de support intel® FPGA pour OpenCL™ Board Package.
Pour plus d’informations, vous pouvez également vous référer au Guide de l’utilisateur de reconfiguration partielle.
Modifier la région PR
Pendant la compilation de base, commencez par la région de verrouillage logique sur le noyau qui contient freeze_wrapper_inst|kernel_system_inst. Utilisez la compilation plate et le planificateur de puces pour identifier la taille et l’emplacement du matériel BSP. Essayez de réserver davantage de ressources pour le kernel_system à l’aide de la région de verrouillage logique.
Pour plus d’instructions à ce sujet, reportez-vous à la section Instructions pour OpenCL™ BSP Floorplanning dans le Guide d’optimisation du plan d’étage du package de support intel® FPGA pour OpenCL™ Board Package.
Correction des violations de synchronisation
Pour corriger les violations de synchronisation dans la conception, vous devrez peut-être ajouter des étapes de pipeline entre les cœurs IP.
Pour plus d’informations, reportez-vous aux liens suivants :
Contraintes d’installation/de maintien
Les .failing_paths.rpt et .failing_clocks.rpt dans le répertoire de sortie répertorient les principaux échecs de la conception. S’il y a un échec cohérent dans certains des chemins d’accès, vous pouvez définir une contrainte de délai minimum ou maximum pour ce chemin critique dans le fichier /hardware/top.sdc.
Pour les problèmes connexes, vous pouvez vous référer à la méthode de contournement suivante sur la page Base de connaissances :Comment fermer le timing en cas de violation de la mise en attente et de la configuration concurrentes dans Arria 10 ?
3. MmD et OpenCL™ Utilitaires
Développement ou modification de sources MMD
La bibliothèque logicielle MMD implémente les entrées/sorties (E/S) de base entre l’hôte et la carte d’accélération et fournit des interfaces, telles que l’ouverture, la lecture et l’écriture. Le pilote de bibliothèque MMD est stocké au format Windows* 64 ou Linux* 64 et le code source est stocké dans le dossier source.
Pour plus d’informations, reportez-vous à la section Création de la bibliothèque MMD du Guide de l’utilisateur du Kit de développement logiciel (SDK) Intel® FPGA pour OpenCL™ Custom Platform Toolkit.
Prise en charge des utilitaires
Les utilitaires OpenCL™ vous permettent d’effectuer un accès à la carte à l’aide du SDK FPGA Intel® pour OpenCL™. Cela inclut l’installation aocl, la désinstallation aocl, le diagnostic aocl, le programme aocl et le flash aocl.
Pour plus d’informations, reportez-vous à la section Fourniture du SDK Intel® FPGA pour openCL™ Utilities Support dans le Guide de l’utilisateur du KIT DE DÉVELOPPEMENT LOGICIEL (SDK) Intel® FPGA pour OpenCL™ Custom Platform Toolkit.
Après avoir créé les utilitaires logiciels et la couche MMD, la conception matérielle doit être testée. La méthode standard consiste à générer le noyau boardtest et à l’exécuter sur la carte.
Pour plus d’informations, reportez-vous à la section Test de la conception matérielle du Kit de développement logiciel (SDK) Intel® FPGA pour OpenCL™ Custom Platform Toolkit Guide de l’utilisateur.
4. Déboguer
Mise en place du conseil d’administration
Cette section vous aide à résoudre les problèmes lors de l’affichage des kits de développement Intel® FPGA ou de vos propres cartes personnalisées.
Pour connaître certains problèmes connus auxquels vous pourriez être confronté lors de l’installation de vos cartes, reportez-vous aux sections suivantes dans AN 807 : Configuration du kit de développement FPGA Intel® Arria® 10 GX pour le SDK FPGA Intel® pour OpenCL™ Remarque sur l’application :
- Section Dépannage ›
- Erreurs possibles après l’exécution de la section Utilitaire de diagnostic ›
Plan d’étage et calendrier
Pour obtenir des conseils et des astuces sur l’utilisation d’une zone minimale pour la logique statique et laisser plus d’espace pour votre noyau OpenCL™, vous pouvez vous référer au guide d’optimisation du plan d’étage du package de support de carte AN 824: Intel® FPGA SDK for OpenCL™ Board Support Package.
Débogage d’exécution
Certaines variables d’environnement peuvent être définies pour obtenir plus d’informations de débogage lors de l’exécution de l’application hôte. Il s’agit du SDK FPGA d® Intel pour OpenCL™ variables d’environnement spécifiques, qui peuvent aider à diagnostiquer les problèmes liés aux conceptions de plates-formes personnalisées.
Le tableau suivant répertorie toutes ces variables d’environnement et les décrit en détail.
Variable d’environnement |
Description |
ACL_HAL_DEBUG |
Définissez cette variable sur une valeur de 1 à 5 pour augmenter la sortie de débogage de la couche d’abstraction matérielle (HAL), qui s’interface directement avec la couche MMD. |
ACL_PCIE_DEBUG |
Définissez cette variable sur une valeur de 1 à 10000 pour augmenter la sortie de débogage du MMD. Ce paramètre de variable est utile pour confirmer que le registre d’ID de version a été lu correctement et que les cœurs IP UniPHY sont étalonnés. |
ACL_PCIE_JTAG_CABLE |
Définissez cette variable pour remplacer l’argument quartus_pgm par défaut qui spécifie le numéro de câble. La valeur par défaut est le câble 1. S’il existe plusieurs câbles de téléchargement Intel® FPGA, vous pouvez spécifier un câble particulier en définissant cette variable. |
ACL_PCIE_JTAG_DEVICE_INDEX |
Définissez cette variable pour remplacer l’argument quartus_pgm par défaut qui spécifie l’index de périphérique FPGA. Par défaut, cette variable a une valeur de 1. Si le FPGA n’est pas le premier périphérique de la chaîne JTAG, vous pouvez personnaliser la valeur. |
ACL_PCIE_USE_JTAG_PROGRAMMING |
Définissez cette variable pour forcer le MMD à reprogrammer le FPGA à l’aide du câble JTAG au lieu de reconfiguration partielle. |
ACL_PCIE_DMA_USE_MSI |
Définissez cette variable si vous souhaitez utiliser MSI pour les transferts d’accès direct à la mémoire (DMA) sous Windows*. |
Débogage du robinet de signal
Étant donné que les conceptions OpenCL™ ne prennent pas en charge la fonctionnalité de simulation, l’utilisation de l’analyseur logique Signal Tap est le meilleur moyen de déboguer ces conceptions.
Pour déboguer toute conception où il y a un blocage du noyau ou un problème lié à l’interface mémoire ou à l’échec du diagnostic aocl, il est recommandé d’utiliser l’analyseur logique Signal Tap.
Pour en savoir plus sur l’analyseur logique Signal Tap, reportez-vous à la section Design Debugging with the Signal Tap Logic Analyzer du Guide de l’utilisateur des outils de débogage.
Effectuez les étapes suivantes pour ajouter le fichier Signal Tap dans la conception BSP
1. Ouvrez l’interface graphique Signal Tap et ajoutez tous les signaux à analyser.
2. Enregistrez le fichier STP dans le même répertoire que le fichier de projet logiciel Intel® Quartus®.
3. Ajoutez les lignes de commande suivantes dans votre fichier flat.qsf :
- set_global_assignment -name ENABLE_SIGNALTAP ON
- set_global_assignment -nom USE_SIGNALTAP_FILE <file_name>.stp
- set_global_assignment -nom SIGNALTAP_FILE <file_name>.stp
4. Recompilez le noyau à partir de la ligne de commande AOCL.
Solution de base de connaissances
Intel® Arria® 10 appareils
- Rechercher dans la base de connaissances (OpenCL™ BSP) ›
- Rechercher dans la base de connaissances (OpenCL™) ›
Périphériques Intel® Stratix® 10
Problèmes connus
Ressources additionnelles
Section Concevoir le débogage à l’aide de sources et de sondes dans le système du Guide de l’utilisateur des outils de débogage
5. Lecture et formation recommandées
Cours de formation OpenCL™
- Introduction au calcul parallèle avec OpenCL™ sur les FPGA Intel® ›
- Introduction à OpenCL™ pour les FPGA Intel® ›
- Exécution d’OpenCL™ sur des FPGA Intel® ›
- Création de plates-formes personnalisées pour Intel® FPGA SDK pour OpenCL™ : Contenu du package de support de carte (BSP) ›
- Développement d’un package de support openCL™ Board (BSP) personnalisé ›
- Cours de formation OpenCL™ Board Support Package (BSP) ›
- Autres cours de formation OpenCL™ ›
OpenCL™ Vidéos
Titre |
Description |
|---|---|
Cette vidéo décrit la procédure standard pour exécuter deux applications, OpenCL™ HelloWorld et OpenCL™ transformée de Fourier rapide (FFT) sur le SoC Cyclone® V à l’aide d’une machine Windows*. |
|
Cette vidéo décrit la procédure d’exécution de deux applications, OpenCL™ HelloWorld et OpenCL™ FFT sur le SoC Cyclone® V à l’aide d’une machine Windows*. |
|
Cette vidéo décrit la procédure d’exécution de deux applications, OpenCL™ HelloWorld et OpenCL™ FFT sur le SoC Cyclone® V à l’aide d’une machine Windows*. |
|
Cette vidéo décrit la procédure d’exécution de deux applications, OpenCL™ HelloWorld et OpenCL™ FFT sur le SoC Cyclone® V à l’aide d’une machine Windows*. |
|
Cette vidéo décrit la procédure d’exécution de deux applications, OpenCL™ HelloWorld et OpenCL™ FFT sur le SoC Cyclone® V à l’aide d’une machine Windows*. |
|
Comment empaqueter des modules/conceptions Verilog personnalisés en tant que bibliothèques OpenCL™ |
La vidéo explique pourquoi les clients pourraient potentiellement utiliser cette fonctionnalité pour avoir leurs blocs de traitement personnalisés (RTL) dans OpenCL™ code noyau. La vidéo explique l’exemple de conception tel que les fichiers make, les fichiers de configuration et explique le flux de compilation. La vidéo montre également une démo de l’exemple de conception. |
OpenCL™ sur Intel FPGA SoC FPGA (hôte Linux) – Partie 1 – Téléchargement et configuration des outils |
Cette vidéo vous montre comment télécharger, installer et configurer les outils requis pour développer des noyaux OpenCL™ et du code hôte ciblant les FPGA SoC FpgA Intel. |
Cette vidéo vous montre comment télécharger et compiler un exemple d’application OpenCL™ ciblant l’émulateur intégré à l’Intel FPGA OpenCL™. |
|
Cette vidéo vous montre comment compiler le noyau OpenCL™ et le code hôte ciblant le FPGA et le processeur du FPGA SoC Cyclone® V. |
|
Cette vidéo vous montre comment configurer la carte SoC Cyclone® V pour exécuter l’exemple OpenCL™ et exécuter le code hôte et le noyau sur la carte. |
6. Obtenir de l’aide
Fournisseurs de services certifiés OpenCL
Intel recommande les fournisseurs de services certifiés suivants qui peuvent vous aider à développer un package de support openCL™ pour les cartes FPGA Intel®. Ces fournisseurs possèdent une vaste expérience dans le développement de packages de support de cartes OpenCL de haute qualité, de pilotes et de migration de conception pour les cartes FPGA Intel :
Terasic Inc.
OpenCL et le logo OpenCL sont des marques commerciales d’Apple Inc. utilisées avec l’autorisation de Khronos.
Le contenu de cette page est une combinaison de traduction humaine et informatique du contenu original en anglais. Ce contenu vous est fourni pour votre commodité et à titre informatif seulement et ne saurait être totalement exact ou complet. En cas de contradiction entre la version anglaise de cette page et la traduction, c'est la version anglaise qui prévaut. Afficher la version anglaise de cette page.