OpenCL™ - BSP - Centre d’assistance
Intel® SDK FPGA pour OpenCL™ permet aux développeurs de logiciels d’accélérer leurs applications en ciblant les plates-formes hétérogènes avec des processeurs Intel et des FPGA. Intel® SDK FPGA 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 de support OpenCL™ BSP! Vous trouverez ici des informations sur la façon de planifier, de concevoir et d’implémenter 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 package de support OpenCL™ Board (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® en votre propre plate-forme personnalisée ainsi que sur la façon de compiler des conceptions plates sans défaillance de synchronisation. La section Floorplanning and Timing Closure fournit des conseils sur la façon de cloisonner votre conception et d’atteindre une fréquence de fonctionnement maximale. Il décrit également les techniques pour fermer le timing sur votre conception et avoir une fermeture de synchronisation garantie tout en construisant un BSP. La section MMD et OpenCL Utilities fournit les étapes de reconstruction du MMD et fournit des informations détaillées sur les utilitaires OpenCL. La section Debug (Débogage) vous fournit des outils et des ressources pour le débogage des problèmes que vous pourriez rencontrer. Il y a des documents et des cours de formation énumérés dans toutes les sections qui sont utiles pendant le processus de développement BSP.
1. Modifier un dessin de référence
Mise en route
Pour commencer le développement BSP, assurez-vous d’effectuer les étapes suivantes :
- Vérifiez que le SDK Intel® FPGA pour OpenCL™ et Intel® Quartus® logiciels 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 logicielle Intel® Quartus® complète.
Sélectionner un plan 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 afficher le guide de portage OpenCL™ BSP pour une plate-forme spécifique :
- Kit de développement Stratix® V PCIe* - Consultez le kit de développement Intel® FPGA pour OpenCL™ Guide de portage de la plate-forme de référence réseau Stratix® V ›
- Intel® Arria® 10 PCIe Development Kit - Consultez le kit de développement Intel® FPGA pour OpenCL™ Intel® Arria® 10 GX FPGA Development Kit Reference Platform Porting Guide ›
- Kit de développement Intel® Arria® 10 SoC - Consultez le Kit de développement Intel® FPGA pour OpenCL™ Intel® Arria® 10 SoC Development Kit Reference Platform Porting Guide ›
- Kit de développement Intel® Stratix® 10 PCIe* - Consultez le kit de développement Intel® FPGA pour OpenCL™ Intel® Stratix® 10 GX FPGA Development Kit Reference Platform Porting Guide ›
Modifier un plan de référence
Commencez à modifier la conception de référence à votre platfrom en suivant les étapes des guides de portage OpenCL BSP. Il est recommandé qu’une fois les modifications de conception terminées, vous devriez essayer de compiler votre premier noyau. Généralement, nous utilisons un noyau appelé Boardtest, qui teste différentes interfaces du BSP. Des informations sur le Boardtest et les étapes de construction génériques du BSP sont mentionnées dans le guide suivant:
Étapes recommandées pour créer un BSP :
- Compilez le Boardtest dans le flux « plat » pour générer un fichier « .aocx » fermé de synchronisation
- Validez le « .aocx » en exécutant le Boardtest et contre-vérifiez les expectations de bande passante d’interface du test
- Commencez à travailler sur la planification d’étage pour la construction « de base » afin de créer un BSP OpenCL garanti fermé au moment de la fermeture
2. Planification de l’étage et fermeture du calendrier
Mise en route
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 de nettoyage temporel comme un bon début, puis de travailler sur la planification d’étage pour obtenir une révision de base de nettoyage de synchronisation de la conception.
Pour plus de détails sur le flux de compilation, reportez-vous à la section OpenCL™ BSP Compilation Flow dans le guide Intel® FPGA SDK for OpenCL™ Board Support Package Floorplan Optimization.
Cloison du plan d’étage
Commencez par une compilation plate pour comprendre où tous les composants principaux du BSP sont placés naturellement (en particulier les blocs de propriété intellectuelle (IP) avec des connexions d’E / S, telles que la mémoire PCIe * ou DDR).
Pour plus de directives à ce sujet, reportez-vous à la section Lignes directrices pour OpenCL™ la section de planification d’étage BSP dans le Guide d’optimisation du plan d’étage intel® FPGA SDK for OpenCL™ Board Support Package.
Pour plus de détails, 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 puce pour identifier la taille et l’emplacement du matériel BSP. Essayez de réserver plus de ressources pour le kernel_system à l’aide de la région de verrouillage logique.
Pour plus de directives à ce sujet, reportez-vous à la section Lignes directrices pour OpenCL™ la section de planification d’étage BSP dans le Guide d’optimisation du plan d’étage intel® FPGA SDK for OpenCL™ Board Support 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 de directives, 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 défaillances majeures dans la conception. S’il y a une panne cohérente dans certains des chemins, vous pouvez vouloir définir une contrainte de retard minimum ou maximum pour ce chemin critique à l’intérieur du fichier /hardware/top.sdc.
Pour les problèmes connexes, vous pouvez vous référer à la méthode de solution de contournement suivante sur la page base de données de connaissances :Comment fermer la synchronisation sur les violations d’attente et de configuration concurrentes dans Arria 10 ?
3. MMD et OpenCL™ Services publics
Développement ou modification de sources MMD
La bibliothèque de logiciels MMD implémente l’entrée/sortie (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 dans le Guide de l’utilisateur d’Intel® FPGA SDK for 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 INTEL® FPGA 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 Fournir un SDK INTEL® FPGA pour OpenCL™ La prise en charge des utilitaires dans le Guide de l’utilisateur du 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. Le moyen standard est de générer le noyau boardtest et de l’exécuter sur la carte.
Pour plus d’informations, reportez-vous à la section Testing the Hardware Design (Test de la conception matérielle) du Guide de l’utilisateur d’Intel® FPGA SDK for OpenCL™ Custom Platform Toolkit.
4. Déboguer
Mise en place du conseil d’administration
Cette section vous aide à résoudre les problèmes tout en apportant des kits de développement Intel® FPGA ou vos propres cartes personnalisées.
Pour découvrir certains problèmes connus auxquels vous pourriez être confronté lors de l’installation de vos cartes, reportez-vous aux sections suivantes de l’AN 807 : Configuration du kit de développement Intel® Arria® 10 GX FPGA pour le kit de développement Intel® FPGA pour OpenCL™ Remarque d’application :
- Section de 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 laissant plus d’espace pour votre noyau OpenCL™, vous pouvez vous référer au guide AN 824: Intel® FPGA SDK for OpenCL™ Board Support Package Floorplan Optimization Guide.
Débogage de l’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 d’Intel® FPGA SDK pour OpenCL™ des variables d’environnement spécifiques, qui peuvent aider à diagnostiquer des problèmes avec des 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 |
Désignation des marchandises |
ACL_HAL_DEBUG |
Placez cette variable à 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 |
Placez cette variable à 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 calibré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 la 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*. |
Tap de signal débogent
Étant donné que les conceptions ™ OpenCL ne prennent pas en charge la fonction de simulation, l’utilisation de l’analyseur logique de prise de signal est la meilleure façon de déboguer ces conceptions.
Pour déboguer n’importe quelle conception où il y a un arrêt de noyau ou un problème lié à l’interface de mémoire ou à l’échec de diagnostic aocl, utilisant l’analyseur logique de robinet de signal est recommandé.
Pour en savoir plus sur l’analyseur logique de robinet de signal, référez-vous au débogage de conception avec la section d’analyseur logique de robinet de signal dans le guide d’utilisateur d’outils de débogage.
Exécutez les étapes suivantes pour ajouter le fichier de tap de signal dans la conception BSP
1. Ouvrez le GUI de tape de signal 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 flat.qsf:
- set_global_assignment -name ENABLE_SIGNALTAP ON
- set_global_assignment -name USE_SIGNALTAP_FILE <file_name>.stp
- set_global_assignment -name SIGNALTAP_FILE <file_name>.stp
4. Recompilez le noyau à partir de la ligne de commande AOCL.
Solution de base de données de connaissances
Intel® Arria® 10 appareils
- Rechercher dans la base de données de connaissances (OpenCL™ BSP) ›
- Rechercher dans la base de données de connaissances (OpenCL™) ›
Appareils Intel® Stratix® 10
Problèmes connus
Ressources supplémentaires
Conception de débogage à l’aide de sources et de sondes in-système section dans le Guide de l’utilisateur outils de débogage
AN 799: Quick Intel® Arria® 10 Design Debugging Using Signal Probe and Rapid Recompile ›
5. Lecture et formation recommandées
OpenCL™ Cours de formation
- Introduction à l’informatique parallèle avec OpenCL™ sur Intel® FPGA ›
- Introduction à OpenCL™ pour Intel® FPGA ›
- Exécution d’OpenCL™ sur Intel® FPGA ›
- Création de plates-formes personnalisées pour Intel® FPGA SDK pour OpenCL™: Package de support de carte (BSP) Contenu ›
- Développement d’un package de support de carte OpenCL™ Personnalisé (BSP) ›
- OpenCL™ Cours de formation sur le package de soutien au conseil d’administration (BSP) ›
- Autres cours de formation OpenCL™ ›
OpenCL™ Vidéos
Titre |
Désignation des marchandises |
---|---|
Cette vidéo décrit la procédure prêt à l’emploi 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 prêt à l’emploi pour exécuter 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 prêt à l’emploi pour exécuter 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 prêt à l’emploi pour exécuter 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 prêt à l’emploi pour exécuter 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 du 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 OpenCL™ noyaux et code hôte ciblant les FPGA SoC FPGAs 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 et le code hôte OpenCL™ ciblant le FPGA et le processeur du Cyclone® V SoC FPGA. |
|
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. Obtenez de l’aide
Fournisseurs de services certifiés OpenCL
Intel recommande les fournisseurs de services certifiés suivants qui peuvent aider au développement d’un package de prise en charge de la carte OpenCL™ pour les cartes Intel® FPGA. Ces fournisseurs ont une vaste expérience dans le développement de packages de support de carte OpenCL de haute qualité, de pilotes et de migration de conception pour les cartes Intel FPGA:
Terasic Inc. (en)
OpenCL et le logo OpenCL sont des marques d’Apple Inc. utilisées avec la permission 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.