La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Le temps de routage pour FPGA : importance, réduction par réplication

Présentations similaires


Présentation au sujet: "Le temps de routage pour FPGA : importance, réduction par réplication"— Transcription de la présentation:

1 Le temps de routage pour FPGA : importance, réduction par réplication
Séminaire COSI ‘ 01 Le temps de routage pour FPGA : importance, réduction par réplication E. Fabiani Projet COSI Bonjour, je m appelle … je suis … je vais vous présenter...

2 Plan Contexte Expérimentations de placement structurel
La réplication du routage Exemple pour Xilinx Virtex Conclusion Commençons par le plan : Après l ’introduction,je vais vous présenter le contexte de ces travaux de recherche, qui est la parallélisation de nids de boucles sur composant reconfigurable. Ensuite nous verrons quelle est la stratégie globale qui a été choisie pour implémenter des réseaux réguliers, issus de …, sur des composants reconfigurables Puis on verra plus précisément comment on place un réseau régulier de processeurs sur un FPGA Ensuite, quelques résultats, les limitations de notre méthode, et finalement la conclusion. E. Fabiani

3 Contexte L’implémentation de réseaux réguliers
sur circuits reconfigurables Méthode choisie : Placement structurel pour réduction du temps de placement routage et amélioration de la fréquence d ’horloge E. Fabiani

4 Contexte FRAP : Fpga Regular Array Placer Génération des formes
bibliothèque d'opérateurs technologie du FPGA ciblé description structurelle sans placement Génération des formes de processeurs Placement du réseau en serpentin Placement interne des processeurs description structurelle avec placement E. Fabiani

5 Expérimentations Expérimentations sur circuits FPGAs Xilinx XC40250 et XCV800 Réseaux réguliers: convolution unidirectionnelle avec multiplieur constant (4, 8, 16 bits) samba (comparaison de séquences ADN) algorithme k-means pour images hyperspectrales 2 types de FPGAs Xilinx : XC40250 : famille 4000XV, 92x92 CLBs (16928 LUTs) XCV800 : famille Virtex, 56x84 CLBs (18816 LUTs) Convolution : contenu : multkcm, 2 regN, addN, regN taille : n =4 => virtex : R4C1 = 4, 854 procs n = 8 => virtex R8C2 = 16, 294 procs n = 16 =>virtex R16C4 = 64, 63 procs Samba : contenu : 5 reg2, reg1, reg12, 4 add12 const, equ2, 3 mux12, 2 gt12, gt12const, taille : virtex : R7C6 = 42 , 112 procs kmean :virtex : contenu : equ7, inf15, 2 sub7, gt7, mux7, add15, mux15, 2 reg15, 3 reg7, 2 reg1, mem 224x8 Mesures : placement/routage avec ou sans contraintes de placement temps de placement temps de routage temps total fréquence d ’horloge E. Fabiani

6 Expérimentations Gains en temps de placement Gains en fréquence
d’horloge E. Fabiani

7 Expérimentations Gains en temps de routage Gains en temps de
placement/routage E. Fabiani

8 Expérimentations Gains en temps de placement/routage Gains en
Expérimentations avec contraintes de délai critique sur Virtex 800 Gains en temps de placement/routage Gains en fréquence d’horloge E. Fabiani

9 Expérimentations Observations Amélioration de la fréquence d ’horloge
mais diminution limitée du temps de placement/routage Pourquoi? Evolution des outils : le temps de placement/routage est devenu un argument de vente Meilleur compromis des outils entre temps de placement/routage et fréquence Exemple : avec contraintes de délai : + 50% pour la fréquence, + 300% pour le temps de placement/routage Temps de routage pas diminué systématiquement, voire plus long FRAP : nombre maximal de processeurs, unidirectionnel : congestion ? Autres raisons ? temps divisé par 16 en 5 ans, argument de vente, concours (100$) Soient Tp1 et Tr1 : temps de placement et routage sans contraintes Tp2 et Tr2 : temps de placement et routage avec contraintes gain de temps g = (Tp1+Tr1)/(Tp2+Tr2) Si on suppose : Tp1 >>> Tp2 et Tr1<= Tr2 alors g <= 1 + Tp1/Tr1 Quantifier le ratio Tp1/Tr1 E. Fabiani

10 Expérimentations Ratio temps de placement/ temps de routage conv4
samba kmean L ’importance du temps de routage limite le gain de temps potentiel cela semble s ’accentuer avec l ’évolution technologique 2 solutions : faire un placement tenant compte de la congestion répliquer le routage quand c’est possible E. Fabiani

11 Réplication de routage
Principe 1.Trouver un routage intra-processeur et le répliquer 2.Trouver un routage inter-processeurs et le répliquer ... outils pour la réplication architecture du FPGA routage sans conflits Limitations : E. Fabiani

12 Réplication de routage
Limitations : architecture du FPGA Architecture de routage L ’Architecture de routage doit être régulière = mêmes ressources de routage accessibles en tout point du FPGA E. Fabiani

13 Réplication de routage
Limitations : architecture du FPGA contre-exemple E. Fabiani

14 Réplication de routage
Limitations : architecture du FPGA Granularité des blocs logiques reconfigurables Perte de surface E. Fabiani

15 Réplication de routage
Limitations : conflits de routage Il y a conflit si : un routage sort du périmètre des BLs utilisés cette ressource de routage est utilisée par le PE voisin Solutions : considérer le périmètre de routage comme périmètre du processeur empêcher tout routage en dehors d ’un périmètre pré-défini (cf thèse R. Tessier) autoriser le routage en dehors du périmètre, en contrôlant l ’absence de conflit E. Fabiani

16 Exemple pour Virtex Architecture :
routage OK sauf lignes transversales (long lines) granularité : 1 BL = 2x2 (Lut + registre) Conflits de routage : pas de possibilité de contraindre le routage dans une zone (contrairement au placement) => prendre le périmètre de routage comme limite .vhd .edf .ncd .bit placement/routage bitgen .xdl JBits fpga_editor Outil de réplication de routage : pas de moyen technique direct => pistes : avec fpga_editor avec XDL (Xilinx Design Language) avec JBits E. Fabiani

17 Exemple pour Virtex définition de modules pré-routés par fpga_editor
placement/routage Un module (avec entrées/sorties) défini en VHDL .edf .ncd module pré-placé et pré-routé (.nmc) fpga_editor .xdl Extraction d'informations : nom des nets et blocs d'E/S périmètre du module nom et placement des ports d'E/S Instanciation du module dans fichier VHDL fichier VHDL pour encapsuler le module script pour fpga_editor E. Fabiani

18 Exemple pour Virtex Exemple : conv16 sur Virtex Description .ncd
Description .nmc Elimination des nets d’E/S Elimination des blocs d’E/S Définition des ports externes Définition du BL de référence Problème : PAR n ’arrive pas à router les modules dans certaines zones du FPGA E. Fabiani

19 Exemple pour Virtex XDL : Xilinx design langage
Description d ’une configuration sous forme textuelle Exemple : net "Ytrans<65><8>" , cfg "_MACRO::hset" , outpin "Ytrans<65><8>" XQ , inpin "Ytrans<66><8>" F , pip R12C39 S1_XQ -> OUT1 , pip R12C39 OUT1 -> W5 , pip R12C38 E5 == W5 , pip R12C37 E5 -> E_P5 , pip R12C37 E_P5 -> S1_F_B2 , inst "Xinby119p01<13>" "SLICE" , placed R81C6 CLB_R81C6.S0 , module "hset" "hset" "Xinby119p01<13>" , cfg "YUSED::0 XUSED::0 GYMUX::G FXMUX::F _MACRO:hset:-1 ; Méthode : sauvegarder le module au format XDL et construire un fichier XDL avec le routage répliqué Problème : passage de xdl a ncd avec routage : plus long que placement/routage ! E. Fabiani

20 Exemple pour Virtex JBits
Classes Java pour la lecture et l’écriture directe de bitstream Exemple : private static final int[] INVERTER1 = Util.InvertIntArray(Expr.F_LUT(« ~F1 »)); Bitstream.set(row,col, LUT.SLICE0_F, INVERTER1); Bitstream.set(row,col, S0Control.X.X, S0Contol.X.FOUT); Bitstream.set(row,col, OUT4.OUT4, OUT4.S0_XQ); Bitstream.set(row,col, HexNorth2.HexNorth2, HexNorth2.OUT4); Bitstream.set(row,col, HexNorth2.OUTPUT, HexNorth2.ON); Bitstream.set(row+6,col, HexSouth2.OUTPUT, HexSouth2.OFF); Bitstream.set(row+6,col, BiHexToSingle.SINGLE_EAST12_TO_HEX_SOUTH2, BiHexToSingle.ON); Bitstream.set(row+6,col, S0F1.SF1, S0F1.SINGLE_EAST12); E. Fabiani

21 Exemple pour Virtex Méthode : extraction de module placé/routé à partir du bistream Un module (avec entrées/sorties) défini en VHDL .edf .ncd placement/routage .ncd (modifié) fpga_editor corps du module .bit JBits .xdl Extraction d'informations : nom des nets et blocs d'E/S périmètre du module nom et placement des ports d'E/S script pour fpga_editor interface du module Core JBits instanciable E. Fabiani

22 Exemple pour Virtex Routage inter-processeurs 2 possibilités :
Méthode similaire au routage interne : faire une description de 2 processeurs de routage identique, isoler le routage inter-proceseurs et le sauvegarder sous forme JBits Utiliser JRoute pour router les connexions entre 2 macros(processeurs) et répliquer le routage trouvé E. Fabiani

23 Conclusion La phase de routage ne peut plus être négligée
La réplication de routage est techniquement faisable, résultats à expérimenter Méthode pour extraire un module pré-placé et pré-routé de n ’importe quelle configuration (.ncd) Notion de module pré-routé également utile pour : bibliothèque de modules pré-routés pour réduire temps de routage et avoir estimation de performance plus précise. reconfiguration partielle : insertion de modules pré-routés sans risque de conflit de routage Perspectives : connexion aux outils de L. Lagadec, routeur confiné. E. Fabiani


Télécharger ppt "Le temps de routage pour FPGA : importance, réduction par réplication"

Présentations similaires


Annonces Google