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.

Téléchargez Intel® SDK FPGA pour OpenCL™

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 :

  1. Vérifiez que le SDK Intel® FPGA pour OpenCL™ et Intel® Quartus® logiciels est installé.
  2. Vérifiez que la version de l’outil qui correspond au BSP de référence OpenCL™ est disponible.
  3. 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 :

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:

Intel® SDK FPGA pour OpenCL™ Guide de l’utilisateur de la boîte à outils de plate-forme personnalisée (PDF) ›

Étapes recommandées pour créer un BSP :

  1. Compilez le Boardtest dans le flux « plat » pour générer un fichier « .aocx » fermé de synchronisation
  2. Validez le « .aocx » en exécutant le Boardtest et contre-vérifiez les expectations de bande passante d’interface du test
  3. 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 :

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.

Problèmes connus

5. Lecture et formation recommandées

OpenCL™ Vidéos

Titre

Désignation des marchandises

Mise en route avec OpenCL™ partie 1

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 *.

Mise en route avec OpenCL™ partie 2

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 *.

Prise en main d’OpenCL partie 3

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 *.

Prise en main d’OpenCL Partie 4

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 *.

Prise en main d’OpenCL partie 5

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.

OpenCL™ sur Intel FPGA SoC FPGA (hôte Linux) - Partie 2 - Exécution de l’exemple d’ajout vectoriel avec l’émulateur

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™.

OpenCL™ sur Intel FPGA SoC FPGA (hôte Linux) - Partie 3 - Compilation du noyau et du code hôte pour SoC FPGA

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.

OpenCL™ sur Intel FPGA SoC FPGA (hôte Linux) - Partie 4 - Configuration de l’environnement d’exécution

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.