SDK FPGA AN 824 pour carte OpenCL
Plan d'étage du package de support
Guide de l'utilisateur
SDK Intel® FPGA pour Guide d'optimisation du plan d'étage du package de support de carte OpenCL ™
Le guide d'optimisation du plan d'étage du SDK Intel/® FPGA pour OpenCL™ Board Support Package (BSP) fournit des directives de planification d'étage pour OpenCL) BSP. Il fournit également des conseils sur la façon dont vous pouvez acquérir la graine de base avec la meilleure fréquence de fonctionnement maximale moyenne et évaluer l'efficacité d'utilisation des ressources BSP.
Ce document suppose que vous êtes familiarisé avec les concepts OpenCL(2) tels que décrits dans la spécification OpenCL version 1.0 par le groupe Khronos.
Flux de compilation OpenCL BSP
OpenCL BSP prend en charge les types de flux de compilation suivants :
- Compilation plate [–bsp-flow flat] : Effectue une compilation plate de la conception entière (BSP avec le matériel généré par le noyau).
- Compilation de base [–bsp-flow base] : effectue une compilation de base à l'aide des restrictions LogicLock de base.qsf file. La cible d'horloge du noyau est assouplie afin que le matériel BSP ait plus de liberté pour respecter la synchronisation. Une base de données base.qar est créée pour préserver le matériel BSP, qui est la région statique.
- Importer la compilation [ ] : Restaure la région statique fermée dans le temps à partir de la base de données base.qar et compile uniquement le matériel généré par le noyau. Il augmente également la cible d'horloge du noyau pour obtenir la meilleure fréquence de fonctionnement maximale du noyau (fmax).
Cloison de plan d'étage OpenCL BSP
Le plan d'étage OpenCL BSP est principalement divisé dans les deux régions suivantes :
- Région statique : représente la région ayant du matériel lié au BSP qui reste statique. Le timing est fermé pour cette région lors de la compilation de base. En général, l'objectif est de minimiser les ressources en puces utilisées par cette région pour fermer la synchronisation.
- Région du noyau : représente la région de reconfiguration partielle (PR) réservée au module freeze_wrapper_inst|kernel_system_inst, qui contient le noyau. De manière générale, l'objectif est de réserver au maximum les ressources en puces pour cette région.
- Le SDK Intel FPGA pour OpenCL est basé sur une spécification Khronos publiée et a réussi le processus de test de conformité Khronos. L'état de conformité actuel peut être trouvé à www.khronos.org/conformance.
- OpenCL et le logo OpenCL sont des marques commerciales d'Apple Inc. et sont utilisés avec l'autorisation de Khronos Group™.
Société intel. Tous les droits sont réservés. Intel, le logo Intel et les autres marques Intel sont des marques commerciales d'Intel Corporation ou de ses filiales. Intel garantit les performances de ses produits FPGA et semi-conducteurs selon les spécifications actuelles conformément à la garantie standard d'Intel, mais se réserve le droit d'apporter des modifications à tout produit et service à tout moment et sans préavis. Intel n'assume aucune responsabilité découlant de l'application ou de l'utilisation de toute information, produit ou service décrit dans le présent document, sauf accord exprès et écrit d'Intel. Il est conseillé aux clients d'Intel d'obtenir la dernière version des spécifications de l'appareil avant de se fier aux informations publiées et avant de passer des commandes de produits ou de services.
*D'autres noms et marques peuvent être revendiqués comme étant la propriété d'autrui.
Directives pour OpenCL BSP Floorplanning
- Commencez par une compilation plate pour comprendre où tous les composants principaux du BSP sont placés naturellement (en particulier les blocs IP avec des connexions d'E/S telles que PCIe ou DDR). Lors de la conception du BSP, vous devrez peut-être envisager d'établir des pipelinestages entre les adresses IP pour fermer le calendrier. Vous devez d'abord exécuter un balayage de graine de compilation à plat pour identifier les chemins défaillants récurrents, puis tenter de les réparer.
Astuce : — Un bon taux de fermeture de synchronisation sur des balayages de graine de compilation à plat aura plus de chances de fermer la synchronisation de compilation de base.
— Si vous observez des échecs constants dans mm_interconnect* (composant ajouté par Qsys), ouvrez le système avec Qsys Interconnect viewet observez la complexité de l'interconnexion défaillante. Vous pouvez ajouter des bascules de pipeline dans le viewer pour améliorer le timing. Si vous ne parvenez toujours pas à résoudre le problème, vous devrez peut-être décomposer le chemin critique mm_interconnect* en ajoutant des ponts de pipeline Avalon. - Lors de la compilation de base, démarrez avec LogicLock sur la région du noyau qui contient freeze_wrapper_inst|kernel_system_inst. Sans aucune autre restriction, Intel Quartus Prime peut placer librement le matériel BSP dans la région statique restante de la puce. Utilisez la compilation plate et le planificateur de puces pour identifier la taille et l'emplacement du matériel BSP, tel que PCIe et DDR. Ensuite, réservez la région du noyau en utilisant LogicLock tout en évitant les principales zones en cluster du matériel BSP.
Astuce : Si la famille de puces utilisée est la même que la plate-forme de référence et si les composants BSP sont similaires, il peut être plus rapide de commencer avec les régions LogicLock pour freeze_wrapper_inst|kernel_system_inst qui est livré avec le BSP de référence OpenCL et de résoudre les échecs. - Vous pouvez ajouter les composants supplémentaires suivants à votre BSP :
— Banques de mémoire : si vous ajoutez d'autres banques de mémoire, vous devez identifier l'emplacement de la banque d'E/S car vous devrez peut-être ajouter des ponts de pipeline pour respecter la synchronisation.
— Canaux d'E/S : vous pouvez ajouter des canaux d'E/S tels qu'une interface vidéo, Ethernet ou série. Si vous ajoutez des canaux d'E/S, vous devez identifier l'emplacement de la banque d'E/S car vous devrez peut-être appliquer de nouvelles régions LogicLock pour le pipelining si le moment de la fermeture est difficile.
Astuce : Si vous devez ajouter des ponts de pipeline (par ex.ample, en raison de retards de routage importants provoquant des échecs de synchronisation), puis considérez la distance de routage entre la source et la logique de destination dans la puce et libérez de l'espace réservé à la région du noyau. - Suivez ces directives générales lors de la réservation de régions LogicLock pour le noyau :
— Essayez de placer toutes les colonnes DSP dans le kernel_system sauf si requis par le BSP.
— Essayez de réserver plus de ressources pour le kernel_system.
— Essayez de maintenir au minimum le nombre d'encoches dans la région du noyau.
La figure suivante illustre une encoche qui a été ajoutée pour placer un pont de pipeline entre PCIe et la banque DDR.
Figure 1. Plan d'étage OpenCL BSP pour Intel Arria® 10 GX dans la version 17.0
Directives pour la fréquence de fonctionnement maximale
La fréquence de fonctionnement maximale (fmax) atteinte par les noyaux dépend en grande partie de la vitesse du FPGA puisque la plupart des IP devraient déjà être optimisées. Cependant, il peut y avoir des pertes fmax en fonction du plan d'étage BSP. Par exempleample, généralement le nombre de découpes dans la région du noyau de BSP affecte fmax du noyau.
Comme illustré dans la figure suivante, pour acquérir la meilleure graine de base qui donne la meilleure fmax moyenne :
- Effectuez un balayage de graine sur la compilation de base au lieu de sélectionner la première graine de base qui respecte le timing.
- Effectuez une compilation d'importation (en utilisant quelques noyaux de l'example dessins) sur toutes les graines de base qui passent.
- Calculez le fmax moyen pour toutes les graines de base.
- Sélectionnez la graine de base qui produit la fmax moyenne la plus élevée.
La graine de base avec le meilleur fmax moyen est un bon candidat pour la libération avec BSP. Si vous décidez de suivre une approche différente des étapes recommandées, vous pouvez observer une variation de 5 à 10 % dans le fmax du processus de compilation d'importation du noyau.
Figure 2. Identification de la meilleure graine de base
- Pour comprendre à quelle vitesse le noyau peut fonctionner sans restrictions de plan d'étage :
1. Effectuez une compilation plate du noyau et observez le fmax.
2. Effectuez une compilation d'importation sur le même noyau et observez le fichier fmax.
3. Comparez les résultats fmax.
En raison des restrictions du plan d'étage, import compile fmax est toujours inférieur à flat compile fmax. Pour éviter le bruit des graines, compilez le noyau avec plus de graines de base et considérez un fmax moyen tout en comparant les résultats de fmax. - Ne comparez jamais le noyau fmax d'une compilation de base avec une compilation plate ou d'importation. Les cibles d'horloge du noyau sont assouplies lors de la compilation de base et, par conséquent, vous n'obtiendrez jamais de bons résultats.
- Observez le chemin critique de l'horloge du noyau dans la compilation de base ou d'importation. Si le chemin critique passe du noyau à la région statique dans le plan d'étage, modifiez le plan d'étage ou exécutez quelques graines de base supplémentaires pour éviter ce chemin critique.
Lignes directrices pour l'évaluation de l'efficacité de l'utilisation des ressources BSP
Plus le pourcentage d'utilisation des ressources est élevétage, meilleure est l'utilisation de la zone dans la zone statique de votre BSP. Un pourcentage élevé d'utilisation des ressourcestage implique également que davantage de ressources sont disponibles pour la région du noyau.
Suivez les étapes ci-dessous pour calculer le pourcentage d'utilisation des ressourcestage de votre BSP :
- Obtenez des valeurs pour toutes les ressources du FPGA à partir de top.fit.rpt ou base.fit.rpt disponibles dans la section Partition Statistics du rapport Fitter.
- Déduisez la valeur pour "freeze_wrapper_inst|kernel_system_inst" (région du noyau).
Conseil:
Concentrez-vous davantage sur les valeurs du module logique adaptatif (ALM) que sur les valeurs des autres ressources. Assurez-vous que le pourcentage d'utilisation des ressourcestage pour ALM est plus proche de la référence OpenCL BSP. Un pourcentage très élevétage pour ALM peut entraîner une congestion, ce qui peut augmenter le temps de compilation et introduire des congestions de routage dans les noyaux complexes. Cependant, vous pouvez toujours augmenter ou diminuer la zone de région statique et observer le temps de compilation et fmax.
Le tableau suivant reflète l'utilisation des ressources OpenCL BSP des appareils Arria ® 10 GX dans la version 17.0.
Tableau 1.
Utilisation des ressources OpenCL BSP des périphériques IntelArria 10 GX dans la version 17.0
Total disponible | Réservé au noyau | Disponible pour BSP | Utilisé par BSP | 0/0 | |
ALM | 427200 | 393800 | 33400 | 23818. | 71% |
Registres | 1708800 | 1575200 | 133600 | 38913 | 29% |
M2OK | 2713 | 2534 | 179 | 134 | 75% |
DSP | 1518 | 1518 | 0 | 0 | N / A |
Observez que le floorplanning est exécuté de telle manière que la région statique n'aura pas de blocs DSP.
Historique de révision du document
Tableau 2.
Historique des révisions du document du SDK Intel FPGA pour le package de prise en charge de la carte OpenCL Guide d'optimisation du plan d'étage
Date | Version | Changements |
17 août | Version initiale. |
Version en ligne
Envoyer des commentaires
ID: 683312
AN-824
Version: 2017.08.08
AN 824 : SDK Intel® FPGA pour carte OpenCL™
Guide d'optimisation du plan d'étage du package de support
Documents / Ressources
![]() |
Intel AN 824 FPGA SDK pour OpenCL Board Support Package Floorplan [pdf] Guide de l'utilisateur AN 824 FPGA SDK pour plan d'étage du package de support de carte OpenCL, AN 824, SDK FPGA pour plan d'étage du package de support de carte OpenCL, plan d'étage du package de support de carte OpenCL, plan d'étage du package de support de carte, plan d'étage du package de support, plan d'étage du package, plan d'étage |