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

"Interprétation matérielle de temps multi-dimensionnel "

Présentations similaires


Présentation au sujet: ""Interprétation matérielle de temps multi-dimensionnel ""— Transcription de la présentation:

1 "Interprétation matérielle de temps multi-dimensionnel "
10/12/2018 MMAlpha   "Interprétation matérielle de temps multi-dimensionnel " Anne-Claire GUILLOU 2eme année de thèse Equipe COSI (COnception SIlicium) Directeur : Patrice Quinton et Tanguy Risset

2 Séminaire CoSi - MMAlpha
Plan Introduction Temps multi-dimensionnel Exemple du produit Matrice-Matrice Transformation sur une équation Implémentation des mémoires Conclusion 10/12/2018 Séminaire CoSi - MMAlpha

3 Séminaire CoSi - MMAlpha
Contexte Exploration, implémentation amélioration et test de la génération hardware MMAlpha Valider l'implémentation de nouveaux algorithmes : DLMS Améliorations et extension du VHDL généré Précision virgule fixe et troncature L ’expression du temps multi-dimensionnel Réseaux 2D 10/12/2018 Séminaire CoSi - MMAlpha

4 Le temps multi-dimensionnel
Le temps logique est un vecteur Motivation : permet de traiter des algorithmes complexes Algorithmes intrinsèquement multi-dimensionnel Partitionnement LSGP - Pavage Architectures pour les problèmes à N dimensions 10/12/2018 Séminaire CoSi - MMAlpha

5 Le temps multi-dimensionnel
Problématique Générer des architectures pour de tels programmes  Architecture multi-horloges  Utilisation de mémoires ou de FIFO  Génération de contrôleurs, de compteurs 10/12/2018 Séminaire CoSi - MMAlpha

6 Séminaire CoSi - MMAlpha
10/12/2018 Travaux de références Principalement : Paul Feautrier : « Some efficient solution to the affine scheduling problem, part II, multidimensional time » et « Scanning Polyhedra without Do-loops ». Sanjay et Fabien : « Optimizing Memory usage in the Polyhedral Model » 10/12/2018 Séminaire CoSi - MMAlpha

7 Modification de la synthèse architecturale
10/12/2018 Modification de la synthèse architecturale Expression de la mémoire Banc de registre ou mémoire RAM ? Comment synthétiser de la mémoire avec alpha ? Dans le cas, d ’un Schedule à 2 dimension il se peut qu’on ait besoin de mémoire a 1 dimension. 10/12/2018 Séminaire CoSi - MMAlpha

8 Produit Matrice-Matrice
b5,1 b5,2 b5.3 b5,4 b4,1 b4,2 b4.3 b4,4 b3,1 b3,2 b3.3 b3,4 b2,1 b2,2 b2.3 b2,4 b1,1 b1,2 b1.3 b1,4 c1,5 c1,4 c1.3 c1,2 c1,1 a1,1 a1,2 a1.3 a1,4 a1,5 c2,5 c2,4 c2.3 c2,2 c2,1 a2,1 a2,2 a2.3 a2,4 a2,5 c3,5 c3,4 c3.3 c3,2 c3,1 a3,1 a3,2 a3.3 a3,4 a3,5 c4,1 c4,2 c4.3 c4,4 c4,5 a4,1 a4,2 a4.3 a4,4 a4,5 10/12/2018 Séminaire CoSi - MMAlpha

9 Produit Mat-Mat linéaire
b5,1 b5,2 b5.3 b5,4 b4,1 b4,2 b4.3 b4,4 b3,1 b3,2 b3.3 b3,4 b2,1 b2,2 b2.3 b2,4 b1,1 b1,2 b1.3 b1,4 a2,1 a2,2 a2.3 a2,4 a2,5 a1,1 a1,2 a1.3 a1,4 a1,5 10/12/2018 Séminaire CoSi - MMAlpha

10 Produit Mat-Mat linéaire
a2,1 a2.2 a2,3 a2,4 a2,5 a1,1 a1.2 b2,1 b2.2 b2,3 b2,4 b1,1 b3,4 b2,2 b2.3 b2,4 b1,1 b1,2 b1.3 a2.3 a2,4 a2,5 a1,1 a1,2 a1.3 a1,4 a2,2 a2.3 a2,4 a2,5 a1,1 a1,2 a1.3 b2,1 b2,2 b2.3 b2,4 b1,1 b1,2 a2,4 a2,5 a1,1 a1,2 a1.3 a1,4 a1,5 b1,1 b1,2 b1.3 b1,4 b2.3 b2,4 10/12/2018 Séminaire CoSi - MMAlpha

11 Architecture d ’une cellule
b a c 10/12/2018 Séminaire CoSi - MMAlpha

12 Programme Alpha ordonnancé
system MatMat :{M,N,P | 3<=M; 3<=N; 3<=P} (a : {i,k | 1<=i<=M; 1<=k<=N} of real; b : {k,j | 1<=k<=N; 1<=j<=P} of real) returns (c : {i,j | 1<=i<=M; 1<=j<=P} of real); var B : {t1,t2,p | p+1<=t1<=p+M; 2<=t2<=N; 1<=p<=P} of real; A : {t1,t2,p | p+1<=t1<=p+M; 2<=t2<=N; 1<=p<=P} of real; C : {t1,t2,p | p+1<=t1<=p+M; 2<=t2<=N+1; 1<=p<=P} of real; let B[t1,t2,p] = case { | t1=p+1} : b[t2,p]; { | p+2<=t1} : B[t1-1,t2,p]; esac; A[t1,t2,p] = { | p=1} : a[t1-1,t2]; { | 2<=p} : A[t1-1,t2,p-1]; C[t1,t2,p] = { | t2=2} : 0[]; { | 3<=t2} : A[t1,t2-1,p] * B[t1,t2-1,p] + C[t1,t2-1,p]; c[i,j] = C[i+j,N+1,j]; tel; 10/12/2018 Séminaire CoSi - MMAlpha

13 Transformation d ’une équation
Exemple : équation de B Fonction mémoire : MemB (t1,t2,p) = (t2,p) B B[t1,t2,p] = case { | t1=p+1} : b[t2,p]; { | p+2<=t1} : B[t1-1,t2,p]; esac; B[t1,t2,p] = case { | t1=p+1} : b[t2,p]; { | p+2<=t1} : B[t1-1,t2,p]; esac; B B b 10/12/2018 Séminaire CoSi - MMAlpha

14 Séminaire CoSi - MMAlpha
Lecture de B MemB AdrLectB[t1,t2,p] = case { | t2=2} : 2; { | 2<=t2} : AdrLectB[t1,t2-1,p] + 1; esac; use Read(MemB,AdrLectB) returns (DataLectB) AdrLectB DataLectB B B b 10/12/2018 Séminaire CoSi - MMAlpha

15 Séminaire CoSi - MMAlpha
Ecriture de B B B[t1,t2,p] = case { | t1=p+1} : b[t2,p]; { | p+2<=t1} : B[t1-1,t2,p]; esac; B[t1,t2,p] = case { | t1=p+1} : b[t2,p]; { | p+2<=t1} : B[t1-1,t2,p]; esac; B B b 10/12/2018 Séminaire CoSi - MMAlpha

16 Séminaire CoSi - MMAlpha
Ecriture de B AdrEcrB[t1,t2,p] = case { | t2=2} : 2; { | 2<=t2} : AdrEcrB[t1,t2-1,p] + 1; esac; use Write(MemB,AdrEcrB, DataEcrB) returns (MemB) MemB AdrEcrB DataEcrB B b 10/12/2018 Séminaire CoSi - MMAlpha

17 Transformation d ’une équation
Resultat : équation de B b B B[t1,t2,p] = case { | t1=p+1} : b[t2,p]; { | p+2<=t1} : B[t1-1,t2,p]; esac; 10/12/2018 Séminaire CoSi - MMAlpha

18 Séminaire CoSi - MMAlpha
Equations finales AdrEcrB: {t1,t2,p | p+1<=t1<=p+M; 2<=t2<=N; 1<=p<=P} of real; DataEcrB: {t1,t2,p | p+1<=t1<=p+M; 2<=t2<=N; 1<=p<=P} of real; AdrLectB: {t1,t2,p | p+2<=t1<=p+M; 2<=t2<=N; 1<=p<=P} of real; DataLectB: {t1,t2,p | p+2<=t1<=p+M; 2<=t2<=N; 1<=p<=P} of real; MemB: {t2,p | 2<=t2<=N; 1<=p<=P} of real; AdrEcrB[t1,t2,p] = -- (t2,p) case { | t2=2} : 2; { | 2<=t2} : AdrErcB[t1,t2-1,p] + 1; esac; AdrLectB[t1,t2,p] = -- (t2,p) { | 2<=t2} : AdrLectB[t1,t2-1,p] + 1; DataEcrB[t1,t2,p] = case { | t1=p+1} : InputPortb; { | p+2<=t1} : DataLectB[t1,t2,p]; use Read(MemB,AdrLectB) returns (DataLectB); use Write(MemB,AdrEcrB,DataEcrB) returns (MemB); MemB DataLectB DataEcrB b 10/12/2018 Séminaire CoSi - MMAlpha

19 Séminaire CoSi - MMAlpha
10/12/2018 Mémoires Double port Ecriture et lecture simultanées pour une même variable Mémoire double-port disponible pour Asic et FPGA (Xilinx Virtex) Plus coûteux qu’une RAM simple EnA EnB WrA WrB AddrA AddrB DataA DataB Très naturellement nous avons été amenés a considérer les mémoires double port. CLk Rst 10/12/2018 Séminaire CoSi - MMAlpha

20 Séminaire CoSi - MMAlpha
10/12/2018 Mémoires FIFO FIFO ou Shift-Register ? Simplifie le contrôle et le VHDL générés (strucurel) Conception d ’une bibliothèque comprenant une FIFO spécifique Banc de registre ou utilisant une DP write full read empty DataIn DataOut Très naturellement nous avons été amenés a considérer les mémoires double port. 10/12/2018 Séminaire CoSi - MMAlpha

21 Séminaire CoSi - MMAlpha
Domaine triangulaire t1 t2 10/12/2018 Séminaire CoSi - MMAlpha

22 Quelques mots sur le contrôle
Génération de signaux multi-horloges une horloge sur un circuit un clock enable pour chaque indice de temps des compteurs (cas où le dom est triang.)  «  Scanning polyhedra without do loop » Génération de signaux de contrôle et d’adressage pour les mémoires 10/12/2018 Séminaire CoSi - MMAlpha

23 Séminaire CoSi - MMAlpha
Travail réalisé Ordonnancement multi-dimensionnel VHDL du Produit Matrice-Matrice linéaire avec Shift-Register Synthétisé mais pas simulé Méthode de ré-écriture des équations alpha Réseaux de cellules 2D 10/12/2018 Séminaire CoSi - MMAlpha

24 Séminaire CoSi - MMAlpha
Réseaux 2D Expérimentation de code VHDL outer_loop : for l in 0 to (NUM_ROWS - 1) generate inner_loop : for c in 0 to (NUM_COLS -1) generate cell_instance : cell port map ( clk => clk, clk_en => clk_en, rst => rst, high_in => vertical_array(c)(l), left_in => horizontal_array(l)(c), low_out => vertical_array(c)(l+1), right_out => horizontal_array(l)(c+1)); end generate inner_loop; end generate outer_loop; 10/12/2018 Séminaire CoSi - MMAlpha


Télécharger ppt ""Interprétation matérielle de temps multi-dimensionnel ""

Présentations similaires


Annonces Google