Options de compilation NI LabVIEW FPGA

Aperçu

Le Module NI LabVIEW FPGA, ajouté au matériel standard d'E/S reconfigurables (RIO) de NI, a rendu plus accessibles les FPGA (field-programmable gate arrays) aux ingénieurs et aux scientifiques depuis une dizaine d'années. Cependant, les programmeurs FPGA dans toute l'industrie savent que l'une des difficultés avec la technologie FPGA est, pour le processeur, de surmonter la tâche fastidieuse qui consiste à synthétiser, placer et router une conception FPGA, aboutissant à des temps de compilation compris entre quelques minutes et plusieurs heures. S'ajoutant à cela, la loi de Moore a tenu ses promesses ces dix dernières années avec des conceptions plus volumineuses et plus complexes. Si rien n'est fait, le temps de compilation va continuer à occuper une portion de plus en plus grande de votre processus de conception FPGA. Ce document présente trois options de compilation FPGA proposées avec le Module LabVIEW FPGA que vous pouvez utiliser pour décharger le processeur de cette tâche consommatrice de temps CPU, ou encore réduire le temps de compilation en utilisant des systèmes de compilation basés sur Linux.

Contenu

Les FPGA deviennent de plus en plus difficiles à compiler

Le compilateur FPGA n'est pas un gros algorithme monolithique. Il est constitué d'une série d'algorithmes complexes et volumineux. Le défi informatique est de faire passer votre conception par un flux qui génère une structure optimisée sur une puce dotée de millions d'éléments de traitement configurables de n'importe quelle façon. Le compilateur utilise une synthèse pour créer un système de connexions logiques entre les éléments de traitement. Puis, il effectue un mappage, un placement et un routage en exécutant un processus itératif afin de trouver la meilleure solution pour tout connecter sur la puce physique, tout en essayant de satisfaire les contraintes de l'utilisateur. Comme vous pouvez l'imaginer, les calculs nécessaires pour rechercher une solution globalement optimisée à un problème dont les possibilités sont infinies ne sont pas une mince affaire. Ainsi, une compilation FPGA peut prendre plusieurs heures (voire plus longtemps encore avec du silicium de densité supérieure).

Pour améliorer le temps de compilation, vous pouvez transférer votre compilation sur une machine Windows haut de gamme dédiée dotée de beaucoup de RAM et d'un bon processeur. Et pour réduire encore davantage le temps de compilation, vous pouvez installer les outils de compilation sur un système Linux pour profiter de l'optimisation des performances des outils de compilation. NI a architecturé le système de compilation LabVIEW FPGA pour faciliter la mise en œuvre de ces options au sein de votre société, ou même cibler vos compilations sur des ordinateurs haut de gamme qui ne vous demandent pas de maintenance dans le nuage.


Présentation du système de compilation LabVIEW FPGA

NI a architecturé le système de compilation LabVIEW FPGA avec trois composants logiciels fondamentaux, d'où une solution de compilation modulaire et évolutive. Le système de compilation se compose de trois parties : l'ordinateur de développement, le serveur et un nombre variable de machines de compilation.

Environnement de développement du Module LabVIEW FPGAL'environnement de développement LabVIEW qui vous est familier est l'endroit où vous créez votre application. Lorsque vous appuyez sur le bouton Exécuter de votre VI FPGA, il termine l'étape de génération de fichiers intermédiaires (se reporter à Processus de compilation LabVIEW FPGA pour en savoir plus). Au-delà de la génération, l'ordinateur de développement envoie les fichiers intermédiaires grâce à la communication par services web vers le serveur de compilation FPGA.

Serveur de compilation FPGALe serveur accepte des travaux de compilation provenant d'un ou de plusieurs systèmes de développement LabVIEW FPGA et recherche des machines disponibles pour distribuer le travail de compilation. Faute de machine disponible, le serveur place le travail de compilation dans une file d'attente jusqu'à ce qu'une machine se libère.

Machine de compilation FPGALes outils de compilation Xilinx sont installés sur la machine pour synthétiser, mapper, placer et router la conception FPGA. Avec ces outils, une machine exécute la compilation sur la conception et finit par générer un fichier bitfile qu'elle renvoie au serveur, qui le renvoie à son tour à l'ordinateur de développement.

Figure n°3.  L'architecture du système de compilation LabVIEW FPGA se compose de trois parties : l'ordinateur de développement, le serveur de compilation et la/les machine(s) de compilation.

L'avantage de cette architecture de système de compilation est qu'elle supporte plusieurs machines ainsi que la distribution automatique de plusieurs travaux de compilation. Le serveur traite les files d'attente et la distribution, et il tolère les pannes des machines passant d'un état en ligne à hors ligne. En fait, si une machine passe hors ligne pendant un travail de compilation, le serveur s'en rend compte et attribue cette compilation à une autre machine disponible. Même s'il faut tout recommencer au niveau de la compilation, aucune action de votre part n'est nécessaire. Les lignes de communication entre l'environnement de développement et le serveur de compilation LabVIEW FPGA étant toutes des services Web robustes, le système de compilation tolère également des défauts au niveau de l'environnement de développement, comme un redémarrage de l'ordinateur de développement.

 

Options de démarrage du système de compilation LabVIEW FPGA

Le démarrage du Module LabVIEW FPGA inclut deux options du système de compilation. Vous pouvez compiler directement sur votre machine de développement ou transférer la compilation vers une machine de compilation unique, déportée et dédiée.

Par défaut, un serveur et une machine de compilation sont installés sur l'ordinateur de développement avec LabVIEW FPGA. Si vous avez utilisé la version 2009 ou antérieure de LabVIEW FPGA, cette configuration se comporte exactement de la même façon, avec la compilation mise en œuvre sur l'ordinateur de développement. Pour le serveur de compilation, c'est comme si la compilation se faisait sur un autre ordinateur appelé "localhost" car le système est entièrement conçu pour supporter une compilation distribuée.

 

Figure n°2. Par défaut, LabVIEW FPGA installe à la fois le serveur et la machine de compilation sur l'ordinateur de développement et exécute la compilation en utilisant les ressources de l'ordinateur de développement.

Pour configurer une structure de serveur de compilation plus sophistiquée, vous pouvez installer le serveur et une machine de compilation sur un autre ordinateur. Pour configurer le serveur de compilation déporté, il vous suffit d'installer les outils de compilation depuis le DVD de la plate-forme LabVIEW. Pour connaître les instructions pas à pas de ce processus, référez-vous à l'article de la KnowledgeBase intitulé Installer et activer le serveur de compilation LabVIEW FPGA sur un ordinateur déporté.

Figure n°3. LabVIEW FPGA supporte un serveur de compilation déporté et composé d'une machine unique sans modules supplémentaires.

 

Une fois que l'ordinateur déporté est configuré avec les outils de compilation, vous pouvez faire pointer la machine de développement vers ce nouveau serveur de compilation en choisissant

Connexion à un serveur de compilation en réseau lorsque vous appuyez sur le bouton Exécuter. Sinon, vous pouvez déterminer cette option de compilation dans le menu Outils»Options»Module FPGA.

Figure n°4. Ciblez la machine de compilation FPGA déportée en choisissant l'option du système de compilation et en spécifiant l'endroit où le serveur réside.

 

Déporter la compilation FPGA

La compilation FPGA devient de plus en plus complexe en termes de calculs et, par conséquent, de plus en plus longue au fur et à mesure que les ingénieurs utilisent une technologie FPGA plus sophistiquée. Pour préserver les ressources sur votre machine de développement, l'architecture du système de compilation LabVIEW FPGA inclut des options pour déporter la compilation vers des ordinateurs dédiés. Ces derniers doivent être des machines haut de gamme dotées de bons processeurs et de beaucoup de RAM. Le Tableau n°1 montre le minimum de RAM nécessaire pour les circuits FPGA Virtex-5 et et Zynq-700 de Xilinx.

Tableau 1. Suivez ces recommandations concernant la mémoire RAM pour les circuits FPGA Virtex-5 et Zynq-700. (Source : Xilinx Memory Recommendations Using the ISE Design Suite)

Le cas où les performances sont le plus dégradé se produit lorsqu'un processus manque de mémoire système et doit utiliser le disque dur ou, dans certains cas, abandonner. Pour garantir les meilleurs résultats possibles, suivez les recommandations qui figurent dans le Tableau n°1. Pour un serveur 32 bits, vous devriez avoir 4 Go de RAM, et seuls les outils de compilation doivent être installés. Vous pouvez activer l'extension de mémoire de Windows à 3 Go pour optimiser la quantité de RAM que le système d'exploitation peut allouer à la compilation. Comme le montre le tableau, les systèmes 64 bits devraient disposer de davantage de RAM. Ces systèmes sont bien sûr capables d'adresser beaucoup plus que 4 Go de RAM, et il est préférable d'installer le plus de RAM possible, pour atteindre 16 Go environ.


Déporter vers un seul ordinateur

Comme mentionné précédemment, vous pouvez utiliser LabVIEW FPGA pour installer le serveur et la machine de compilation sur une cible et un ordinateur différents. Pour ce faire, suivez les étapes qui figurent dans l'article de la KnowledgeBase intitulé Installer et activer le serveur de compilation LabVIEW FPGA sur un ordinateur déporté.

Figure n°5. LabVIEW FPGA supporte un serveur de compilation simple, déporté et composé d'une machine unique sans modules supplémentaires.


Déporter vers une ferme de compilation

Avec le Toolkit LabVIEW FPGA Compile Farm, vous pouvez créer une ferme de compilation sur site, constituée de nombreuses machines de compilation et pouvant être ciblée par plusieurs développeurs. Le prix de ce toolkit est fonction du nombre d'ordinateurs dont vous avez besoin dans la ferme. Avec ce toolkit, n'importe quel nombre de développeurs peut cibler le serveur central. Le serveur est responsable de la distribution des travaux de compilation sur toutes les machines disponibles. Comme il y a plusieurs machines, les compilations s'exécutent en parallèle. Si aucune machine de compilation n'est disponible, le serveur place les requêtes dans une file d'attente de type FIFO et les distribue lorsqu'une machine se libère.

>> En savoir plus sur le Toolkit LabVIEW FPGA Compile Farm.

Figure n°6. Architecture de la ferme de compilation sur site dotée d'un serveur et de plusieurs machines


Déporter vers un nuage de compilation en ligne

L'option de compilation FPGA ultime utilise les serveurs et les machines de compilation que NI a mis à disposition en ligne dans le nuage. Pour faciliter l'utilisation, NI a ajouté des points de connexion pour pouvoir entrer vos identifiants directement à partir de LabVIEW FPGA et, sans aucune installation supplémentaire, vous pouvez déporter vos compilations vers le nuage. Comme le Service LabVIEW FPGA Compile Cloud exécute les outils de compilation sur Linux avec les tout derniers ordinateurs haut de gamme dédiés et possédant beaucoup de RAM, vous pouvez constater une réduction conséquente du temps passé à compiler votre VI FPGA, comparé à un ordinateur de bureau Windows standard. Compiler dans le nuage permet également de compiler un grand nombre de VIs en parallèle.

Pour cibler le service de nuage, utilisez la boîte de dialogue standard du serveur de compilation LabVIEW FPGA, mais choisissez le service de nuage en ligne et entrez vos nom d'utilisateur et mot de passe.

Figure n°7. Connexion au nuage via LabVIEW pour réduire le temps de compilation et déporter les compilations.

Une fois configuré, le service compile sur le nuage plutôt que sur votre ordinateur ou la ferme locale. La connexion utilise les mesures les plus récentes en matière de sécurité informatique, semblables à celles utilisées par d'autres services sur Internet, comme par exemple les opérations bancaires.

>> Découvrez ou achetez le Service LabVIEW FPGA Compile Cloud.

.

 

Figure n°8. Architecture sur le nuage pour déporter les compilations 


Réduire le temps de compilation avec Linux

NI a investi dans le support des machines de compilation FPGA utilisant le système d'exploitation Linux. En fonction de la complexité et de la logique de votre VI FPGA, vous pouvez vous attendre à ce que la machine de compilation Linux réduise les temps de compilation d'environ 20 à 50 %, comparée à une machine de compilation Windows. Xilinx a initialement conçu et optimisé les outils de compilation pour le système d'exploitation Linux, ce qui explique cette réduction significative des temps de compilation.

Figure n°9. LabVIEW 2012 FPGA et les versions suivantes du module supportent l'installation des outils de compilation FPGA sur des machines Linux, d'où des temps de compilation réduits.

>> Découvrez les avantages de la machine de compilation FPGA sous Linux dans le nuage.
. >> En savoir plus sur la façon de lancer votre propre machine de compilation FPGA sous Linux.

 

Étapes suivantes

Le système de compilation LabVIEW FPGA offre, via le serveur de compilation et l'architecture de la machine de compilation, la souplesse nécessaire pour décharger le processus de compilation FPGA du processeur de votre ordinateur de développement LabVIEW. Il réduit aussi les temps de compilation en utilisant une machine de compilation basée sur Linux. Une fois que vous avez choisi l'option de compilation FPGA appropriée à vos besoins, suivez les liens fournis ci-dessous pour savoir comment la configurer.

Acheter le Service LabVIEW FPGA Compile Cloud Service pour réduire les temps de compilation.

Configurer un ordinateur unique de compilation déporté.

Créer une ferme de compilation LabVIEW FPGA sur site.

Configurer une machine de compilation basée sur Linux.