Étude et tests de CUDA™ (NVIDIA) appliqués à la mise en œuvre d’algorithmes de télécommunications Jean-Charles Paoletti

To cite this version:

Jean-Charles Paoletti. Étude et tests de CUDA™ (NVIDIA) appliqués à la mise en œuvre d’algorithmes de télécommunications. Automatique / Robotique. 2013. ￿dumas-01154150￿

HAL Id: dumas-01154150 https://dumas.ccsd.cnrs.fr/dumas-01154150 Submitted on 21 May 2015

HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés.

CONSERVATOIRE NATIONAL DES ARTS ET METIERS

PARIS

______

MEMOIRE

présenté en vue d'obtenir le

DIPLOME D'INGENIEUR CNAM

en

ELECTRONIQUE

PAR

Jean-Charles PAOLETTI

______

Etude et tests de CUDA™ (NVIDIA) appliqués à la mise en œuvre d’algorithmes de télécommunications

Soutenu le 05 novembre 2013

______

JURY

PRESIDENT : M. D. LE RUYET Professeur des Universités - CNAM

MEMBRES : Mme C. ALGANI Professeur des Universités - CNAM M. C. PAUTOT Maître de conférences - CNAM M. S. LETOURNEUR Développeur FPGA - ELSYS DESIGN M. T. DO Ingénieur Electronicien - SAGEM

Remerciements :

Je remercie le professeur Han VU THIEN de m’avoir accueilli dans son laboratoire pour effectuer mon stage de fin d’études. Je remercie Christian PAUTOT pour m’avoir proposé ce sujet de mémoire et pour ses conseils pour l’élaboration de ce mémoire. Je remercie également Christophe ALEXANDRE pour ses conseils techniques. Je remercie l’ensemble des stagiaires du Laboratoire Signaux et Systèmes du CNAM pour leurs nombreux conseils utiles lors de ma recherche d’emploi et pour les bons moments passés ensemble. Je remercie également ma famille – et en particulier ma sœur Sophie PAOLETTI – pour son soutien moral tout au long de mes études au CNAM.

Table des matières

Introduction...... 8 I LES CARTES GRAPHIQUES NVIDIA ...... 10 I.1 HISTORIQUE DES CARTES GRAPHIQUES NVIDIA ...... 10 I.1.1 Les processeurs graphiques antérieurs à CUDA™...... 10 I.1.2 Première architecture unifiée CUDA : l’architecture G80 ...... 10 I.1.3 Deuxième architecture unifiée CUDA : l’architecture GT200...... 12 I.1.4 L’architecture Fermi...... 12 I.2 CONSTITUTION D’UNE CARTE GRAPHIQUE ...... 14 I.2.1 Présentation générale d’une carte graphique ...... 14 I.2.2 Fonctionnement général d’une carte graphique...... 14 I.2.3 Composants d’une carte graphique...... 15 I.3 ARCHITECTURE INTERNE D’UNE CARTE GRAPHIQUE NVIDIA...... 20 I.3.1 Présentation ...... 20 I.3.2 Types de mémoire présents sur les cartes graphiques NVIDIA ...... 26 I.3.3 Architectures des processeurs graphiques antérieurs à CUDA™...... 28 I.3.4 Première architecture unifiée : le processeur G80...... 29 I.3.4.1 Présentation...... 29 I.3.4.2 Le pipeline graphique ...... 31 I.3.4.3 Le pipeline de calcul ...... 34 I.3.5 Architecture unifiée seconde génération : le processeur GT200 ...... 35 I.3.6 Architecture Fermi™: première mise en œuvre avec le processeur GF100 ...... 36 II UTILISATION DE L’ARCHITECTURE CUDA™...... 40 II.1 PRÉSENTATION DE L’ARCHITECTURE CUDA™ ...... 40 II.2 DESCRIPTION D’UN PROGRAMME CUDA DE BASE ...... 42 II.3 INTÉGRATION D’UN PROGRAMME CUDA DANS UNE FONCTION MEX ...... 45 II.4 APPLICATION DE CUDA™ À LA MULTIPLICATION DE MATRICES...... 49 II.4.1 Description de la routine passerelle (mexFunction)...... 49 II.4.2 Description du kernel ...... 51 II.4.2.1 Appel du kernel...... 51 II.4.2.2 Grille et blocs à une dimension...... 54 II.4.2.3 Grille et blocs à deux dimensions ...... 56 II.4.2.4 Opérations exécutées par le kernel au niveau global ...... 62 II.4.2.5 Opérations exécutées par chaque multiprocesseur...... 65 II.4.2.6 Ensemble des opérations exécutées par une tâche isolée...... 66 II.4.2.7 Facteurs limitatifs du nombre de blocs résidents ...... 69 II.5 ANALYSE DES RÉSULTATS POUR L’API DU MOTEUR D’EXÉCUTION CUDA...... 71 II.5.1 Présentation des conditions de mesure ...... 71 II.5.2 Influence de la taille de bloc et de la limitation du nombre de registres sur la performance75 II.5.3 Utilisation de la mémoire partagée...... 77 II.5.4 Influence de la taille de bloc et de la limitation du nombre de registres sur le taux d’occupation des ressources...... 77 II.5.5 Performances ramenées en GFLOPS ...... 79 II.5.6 Performances de la fonction MEX-CUDA-C comparée aux performances de MATLAB seul 81 II.5.7 Synthèse des résultats obtenus...... 82 III UTILISATION DE LA BIBLIOTHÈQUE CUBLAS ...... 83 III.1 PRÉSENTATION DE LA BIBLIOTHÈQUE CUBLAS...... 83 III.2 DESCRIPTION D’UN PROGRAMME CUBLAS DE BASE...... 85

5

III.2.1 Déclaration des pointeurs CPU et GPU...... 85 III.2.2 Initialisation des pointeurs CPU ...... 85 III.2.3 Réservation de mémoire pour les pointeurs GPU...... 86 III.2.4 Transfert des données CPU vers GPU...... 87 III.2.5 Calculs sur GPU ...... 87 III.2.6 Transfert des données GPU vers CPU...... 89 III.2.7 Libération de la mémoire GPU...... 89 III.2.8 Libération de la mémoire CPU ...... 89 III.3 APPLICATION DE CUBLAS À LA MULTIPLICATION DE MATRICES DANS UNE FONCTION MEX..90 III.4 ANALYSE DES RÉSULTATS POUR L’API CUBLAS ...... 92 III.4.1 Influence de la taille de la grille de tâches sur la performance ...... 92 III.4.2 Influence de la taille de la grille de tâches sur le choix des paramètres par CUBLAS...97 III.4.2.1 Cas d’une matrice résultat de taille 656*656 : ...... 98 III.4.2.2 Cas d’une matrice résultat de taille 640*640 : ...... 99 III.4.3 Synthèse des résultats obtenus...... 100 IV UTILISATION DE LA BIBLIOTHÈQUE CUFFT POUR LE TRAITEMENT DU SIGNAL...... 102 IV.1 PRÉSENTATION DE LA BIBLIOTHÈQUE CUFFT ...... 102 IV.2 DESCRIPTION D’UN PROGRAMME CUFFT DE BASE ...... 103 IV.3 APPLICATION DE LA BIBLIOTHÈQUE CUFFT AU TRAITEMENT DU SIGNAL...... 105 IV.4 ANALYSE DES RÉSULTATS POUR L’API CUFFT...... 108 IV.4.1 Calcul du nombre de FLOPS...... 108 IV.4.1.1 Cas de MATLAB...... 108 IV.4.1.2 Cas de l’API CUFFT ...... 109 IV.4.2 Influence de la taille d’une transformée sur la performance...... 109 IV.4.3 Influence du nombre de transformées de taille fixe sur la performance ...... 111 IV.4.4 Procédure de choix des paramètres par l’API CUFFT...... 112 V SYNTHÈSE DES RÉSULTATS CUDA, CUBLAS ET CUFFT...... 114 VI APPLICATION DE CUDA™ À LA MISE EN ŒUVRE D’ALGORITHMES DE TÉLÉCOMMUNICATIONS116 VI.1 PRÉSENTATION ...... 116 VI.2 UTILISATION D’UN RADAR PSEUDO ALÉATOIRE ...... 116 VI.3 LIEN ENTRE TRANSFORMÉE DE FOURIER ET CORRÉLATION ...... 117 VI.4 APPLICATION DE CUDA™ AU CALCUL DE LA DISTANCE D’UN OBJET ...... 118 VI.5 EVALUATION DES PERFORMANCES DE CUDA PAR RAPPORT À UN RADAR RÉEL ...... 119 Conclusion...... 121 Glossaire...... 123 Bibliographie...... 126 Table des annexes...... 128 Annexe 1 Comparaison et historique des cartes graphiques ...... 129 Annexe 2 Installation de CUDA™ et du pilote CUDA ...... 134 Annexe 3 Installation et configuration de Visual Studio 2005 ...... 137 Annexe 4 Création et configuration d’un projet CUDA™, CUBLAS ou CUFFT sous Visual Studio 2005...... 139 Annexe 5 Outils de développement CUDA ...... 161 Annexe 6 Programme MEX-CUDA-C ...... 170

6

Annexe 7 Programme MEX-CUBLAS-C ...... 175 Annexe 8 Programme MEX-CUFFT-C...... 180 Liste des figures...... 184 Liste des tableaux ...... 186

7

Introduction

Depuis une trentaine d'année, portée par l'industrie des jeux vidéos, la restitution à l'écran de données graphiques est une des fonctions informatiques qui a le plus évolué. Pendant longtemps, la restitution graphique de données vidéo et la création de graphismes pour les jeux vidéo ont été mises en œuvre dans les cartes graphiques par ce qu'on appelle un pipeline graphique. Un pipeline graphique est un ensemble d'étapes reliées ensemble de manière fixe. Les résultats d'une étape étaient utilisés comme données d'entrée pour l'étape suivante et à chaque étape était dédié un programme et/ou des ressources fixes. Puis, poussée par une demande en progression constante, l'industrie des cartes graphiques s'est énormément développée afin de satisfaire principalement les joueurs de jeu vidéo en recherche permanente de graphismes proches du réel. Les pipelines des cartes graphiques se sont donc progressivement complexifiés avec de plus en plus d'étapes et sous-étapes mises en œuvre dans les versions de l’API graphique DirectX. Les cartes graphiques ont rapidement atteint des puissances de calcul telles que les scientifiques ont commencé à s'y intéresser non plus pour faire du traitement graphique mais pour exécuter des calculs séparables en plusieurs tâches identiques attribuées à chacun des cœurs du processeur graphique (GPU). C'est ce qu'on a appelé le GPGPU [1] – abbréviation de General-Purpose processing on Graphics Processing Units – c'est à dire du calcul générique sur processeur graphique. Puis fin 2006, environ un an avant son principal concurrent (la société canadienne ATI devenue AMD), la société NVIDIA change complètement – avec son processeur G80 – la manière dont sont mis en œuvre les pipelines dans les cartes graphiques. Désormais, les ressources de calcul fixes sont remplacées par des ressources de calcul réutilisables par chaque étape d’un traitement graphique. C'est ce qu'on appellera l'architecture dite « unifiée ». Désormais, le calcul scientifique est pris en compte à part entière à travers une architecture de calcul (appelée « pipeline de calcul » sur le G80 [2]) dédiée, basée sur les mêmes cœurs que l'architecture graphique. En 2008, NVIDIA introduit une version très améliorée du processeur G80, c'est le processeur GT200. L'architecture des processeurs G80 et GT200 était appelée architecture « Tesla » [3][4]. Comme pour le processeur G80, l’architecture de traitement graphique et l’architecture de calcul du processeur GT200 utilisent les mêmes cœurs pour fonctionner. Puis une architecture totalement nouvelle basée sur les demandes des développeurs fait son apparition en 2010, c'est l'architecture Fermi mise en œuvre dans le processeur GF100. Avec le modèle Fermi, se côtoient une architecture graphique basée sur l'API DirectX 11 et une architecture de calcul. Le processeur graphique présent sur chaque carte graphique est divisé en un certain nombre de processeurs de calcul appelés cœurs, contenant les ressources minimales nécessaires au traitement graphique. Ces cœurs verront leur nombre se multiplier en très peu d'années. Les processeurs NVIDIA les plus puissants comportent actuellement (2011) 512 cœurs ce qui les rend plus rapides que le CPU lui même pour un certain nombre de calculs. L'objet de ce mémoire sera donc d'étudier les capacités de calcul d'une des cartes graphiques NVIDIA dernière génération, la GTX 470, comprenant

8 

 F°XUV HW EDVpH VXU O DUFKLWHFWXUH )HUPL /H WKqPH GHV FDUWHV JUDSKLTXHV pWDQW WUqV YDVWH QRXV QRXV OLPLWHURQV j O pWXGH GHV FDUWHV 19,',$ ELHQ TXH OHV FDUWHV $0' DQFLHQQHPHQW$7, SRVVqGHQWGHVFDSDFLWpVGHFDOFXOWRXWjIDLWFRPSDUDEOHVDX[FDUWHV 19,',$ 'qVOHVGpEXWVGHO DUFKLWHFWXUHXQLILpH19,',$ILQXQHQYLURQQHPHQWGH SURJUDPPDWLRQHVWGpGLpDX[FDOFXOVVXUFDUWHJUDSKLTXHF HVWO HQYLURQQHPHQW&8'$$ FKDTXH QRXYHOOH DUFKLWHFWXUH *7 HW *)  GHV ELEOLRWKqTXHV GH IRQFWLRQV QRXYHOOHVDSSDUDLVVHQW 'DQVFHPpPRLUHQRXVpWXGLHURQVGDQVXQSUHPLHUWHPSV • XQH[HPSOHGHSURJUDPPDWLRQ&8'$ • SXLVO¶LQWpJUDWLRQG¶XQSURJUDPPH&8'$GDQVXQHIRQFWLRQ0(; SRXUTXHOD IRQFWLRQ&8'$&SXLVVHFRPPXQLTXHUDYHF0$7/$%  • HW HQILQ OD PLVH HQ °XYUH GH &8'$ GDQV XQ FDOFXO GH PXOWLSOLFDWLRQ GH PDWULFHV 1RXVpWXGLHURQVpJDOHPHQWODELEOLRWKqTXH&8%/$6GDQVXQSURJUDPPH • VLPSOH • SXLVLQWpJUpjXQHIRQFWLRQ0(; • HWHQILQPLVHHQ°XYUHGDQVXQFDOFXOGHPXOWLSOLFDWLRQGHPDWULFH 1RXVFRPSDUHURQVOHVSHUIRUPDQFHV • GHFKDTXH$3,VHORQOHVYDULDWLRQVGHFHUWDLQVSDUDPqWUHV • SXLVGHV$3,&8'$HW&8%/$6 • HWHQILQGHVGHX[$3,SDUUDSSRUWj0$7/$%XWLOLVpVHXO 3XLVQRXVpWXGLHURQVO¶$3,&8))7 • GDQVXQH[HPSOHVLPSOH • SXLVGDQVXQSURJUDPPHSOXVFRPSOH[HLQWpJUpjXQHIRQFWLRQ0(; 1RXVFRPSDUHURQVOHVSHUIRUPDQFHVGHFHWWH$3, • VHORQOHVYDULDWLRQVGHFHUWDLQVSDUDPqWUHV • SXLVSDUUDSSRUWj0$7/$%XWLOLVpVHXO (QDQQH[HVQRXVYHUURQVpJDOHPHQWXQDSHUoXGHSOXVLHXUVDXWUHVELEOLRWKqTXHV TXL SRXUUDLHQW WUqV ELHQ rWUH PLVHV HQ °XYUH GDQV OH FDGUH GH GpYHORSSHPHQWV GH SURJUDPPHVXWLOLVDQWSDUH[HPSOHODJpQpUDWLRQGHQRPEUHVDOpDWRLUHVRXODPDQLSXODWLRQ GHPDWULFHVFUHXVHV /HV DQQH[HV FRPSUHQQHQW DXVVL XQ EUHI GHVFULSWLI GHV GLYHUVHV DPpOLRUDWLRQV SRVVLEOHV GHV SURJUDPPHV GpYHORSSpV GDQV FH PpPRLUH DLQVL TXH OHV pWDSHV GH FRQILJXUDWLRQGHVGLIIpUHQWVORJLFLHOVXWLOLVpV 



 

, /HVFDUWHVJUDSKLTXHV19,',$ , +LVWRULTXHGHVFDUWHVJUDSKLTXHV19,',$ , /HVSURFHVVHXUVJUDSKLTXHVDQWpULHXUVj&8'$Œ 3RXVVpV SDU O¶LQGXVWULH GHV MHX[ YLGpRV OHV SURFHVVHXUV JUDSKLTXHV VH VRQW UDSLGHPHQWSHUIHFWLRQQpVMXVTX¶jFRQFXUUHQFHUODSXLVVDQFHGHFDOFXOGHV&38DFWXHOV &H SHUIHFWLRQQHPHQW D SHUPLV G¶HQYLVDJHU OHXU XWLOLVDWLRQ GDQV GH QRPEUHXVHV DSSOLFDWLRQVSDUDOOqOHVjEXWQRQJUDSKLTXH /HVWHQWDWLYHVG¶H[SORLWHUOHVSURFHVVHXUV JUDSKLTXHVSRXUGHVDSSOLFDWLRQVQRQ JUDSKLTXHV VRQW DSSDUXHV GqV  *UkFH j O¶XWLOLVDWLRQ GH ODQJDJHV GH WUDLWHPHQW JUDSKLTXHGHKDXWQLYHDXWHOVTXH'LUHFW;2SHQ*/HW&JGLYHUVDOJRULWKPHVSDUDOOqOHV RQW pWp WUDQVIpUpV DX SURFHVVHXU JUDSKLTXH /HV SUREOqPHV WHOV TXH OD WDULILFDWLRQ GH VWRFNRSWLRQV OHV UHTXrWHV 64/ RX OD UHFRQVWLWXWLRQ G¶,50 RQW DWWHLQW VXU FDUWH JUDSKLTXH GH UHPDUTXDEOHV DPpOLRUDWLRQV GH SHUIRUPDQFHV /HV SUHPLqUHV WHQWDWLYHV G¶XWLOLVDWLRQGHV$3,JUDSKLTXHVSRXUGXFDOFXOjSRUWpHJpQpUDOHVRQWFRQQXHVVRXVOH QRP*3*38 *HQHUDO3XUSRVH3URFHVVLQJRQ*UDSKLFV3URFHVVLQJ8QLWV  %LHQ TXH OH PRGqOH *3*38 DLW RXYHUW OD YRLH j GHV DPpOLRUDWLRQVWUqV LPSRUWDQWHVLOFRPSRUWHQpDQPRLQVSOXVLHXUVLQFRQYpQLHQWV • 3UHPLqUHPHQW LO H[LJH GX SURJUDPPHXU XQH FRQQDLVVDQFH SRLQWXH GHV $3, JUDSKLTXHVHWGHO¶DUFKLWHFWXUH*38 • 'HX[LqPHPHQWOHWUDLWHPHQWJUDSKLTXHpWDLWWUqVGLIILFLOHjGpFRXSHUHQpWDSHV DGDSWpHVDX[UHVVRXUFHVIL[HVDFFURLVVDQWDLQVLFRQVLGpUDEOHPHQWODFRPSOH[LWp • 7URLVLqPHPHQW OHV FDUDFWpULVWLTXHV GH SURJUDPPDWLRQ GH EDVH WHOOHV TXH OHV OHFWXUHVpFULWXUHV DOpDWRLUHV HQ PpPRLUH Q¶pWDLHQW SDV SULV HQ FKDUJH UHVWUHLJQDQW FRQVLGpUDEOHPHQWOHPRGqOHGHSURJUDPPDWLRQ • (WHQILQFHVDUFKLWHFWXUHV*38DQWpULHXUHVj&8'$Œ P VRLW QH SUHQDLW SDV HQ FKDUJH OHV QRPEUHV IORWWDQWV GRXEOH SUpFLVLRQ  ELWV  P VRLW SUHQDLW HQ FKDUJH GHV QRPEUHV IORWWDQWV GRXEOH SUpFLVLRQ QRQ QRUPDOLVpV &HFL YRXODLW GLUH TXH FHUWDLQHV DSSOLFDWLRQV VFLHQWLILTXHV QH SRXYDLHQW SDV rWUH H[pFXWpHVVXUOHSURFHVVHXUJUDSKLTXH , 3UHPLqUHDUFKLWHFWXUHXQLILpH&8'$O¶DUFKLWHFWXUH* 3RXUDERUGHUFHVSUREOqPHVGHX[WHFKQRORJLHVFOpVRQWpWpLQWURGXLWHV • O¶DUFKLWHFWXUHXQLILpH* • O¶HQYLURQQHPHQW GH SURJUDPPDWLRQ &8'$ XQH DUFKLWHFWXUH ORJLFLHOOH HW PDWpULHOOH TXL SHUPHWWDLW GH SURJUDPPHU OH SURFHVVHXU JUDSKLTXH DYHF GLIIpUHQWV ODQJDJHVGHSURJUDPPDWLRQGHKDXWQLYHDX (QVHPEOHFHVGHX[WHFKQRORJLHVUHSUpVHQWDLHQWXQHQRXYHOOHPDQLqUHG¶XWLOLVHUOH SURFHVVHXU JUDSKLTXH $X OLHX GH SURJUDPPHU GHV XQLWpV JUDSKLTXHV GpGLpHV DYHF GHV $3, JUDSKLTXHV OH SURJUDPPHXU SRXYDLW GpVRUPDLV pFULUH GHV SURJUDPPHV & DYHF H[WHQVLRQV&8'$HWFLEOHUXQSURFHVVHXUjIRQFWLRQQHPHQWSDUDOOqOHjSRUWpHJpQpUDOH &HQRXYHDXW\SHGHSURJUDPPDWLRQ*38DpWpGpQRPPpH©*38&RPSXWLQJªFHTXL YRXODLWGLUHXQHSULVHHQFKDUJHpWHQGXHGHVDSSOLFDWLRQVXQHSULVHHQFKDUJHpODUJLHGX ODQJDJH GH SURJUDPPDWLRQ HW XQH FODLUH VpSDUDWLRQ G¶DYHF OHV PRGqOHV GH SURJUDPPDWLRQ*3*38

  

/D FDUWH JUDSKLTXH *H)RUFH  D pWp OH SURGXLW TXL D GRQQp QDLVVDQFH DX QRXYHDXPRGqOHGHFDOFXO*38 /DQFpHVXUOH PDUFKpHQQRYHPEUHOD*H)RUFH  EDVpH VXU OH SURFHVVHXU JUDSKLTXH * D DSSRUWp SOXVLHXUV LQQRYDWLRQVFOpV DX FDOFXO*38 /H SURFHVVHXU * GH OD *H)RUFH  pWDLW OH SUHPLHU SURFHVVHXU JUDSKLTXH jSUHQGUHHQFKDUJHOHODQJDJH&SHUPHWWDQWDX[SURJUDPPHXUVG¶XWLOLVHUODSXLVVDQFHGX SURFHVVHXUJUDSKLTXHVDQVGHYRLUDSSUHQGUHXQQRXYHDXODQJDJHGHSURJUDPPDWLRQ /H*DSHUPLVGHODQFHU • OH PRGqOH G¶H[pFXWLRQ PXOWLWkFKHV j LQVWUXFWLRQ XQLTXH RX 6,07 VLQJOH LQVWUXFWLRQ PXOWLSOHWKUHDG  'DQV OH PRGqOH 6,07 GH QRPEUHXVHV WkFKHV LQGpSHQGDQWHV H[pFXWHQW VLPXOWDQpPHQW XQH LQVWUXFWLRQ XQLTXH /HV LQVWUXFWLRQV 6,07 RQW OD FDSDFLWp GH VSpFLILHU O¶H[pFXWLRQ G¶XQH WkFKH XQLTXH FDU FKDTXH WkFKH SRVVqGHVRQSURSUHFRPSWHXUG¶DGUHVVHG¶LQVWUXFWLRQ&HSHQGDQWLOQ¶HVWSDVXWLOHGH FRQQDvWUHO¶DUFKLWHFWXUH6,07VRXV&8'$FDUODSOXSDUWGXWHPSVODSHUIRUPDQFHOD PHLOOHXUHV¶REWLHQWORUVTXHGHQRPEUHXVHVWkFKHVH[pFXWHQWODPrPHLQVWUXFWLRQ • ODQRWLRQGHPpPRLUHSDUWDJpHHWGHV\QFKURQLVDWLRQGHWkFKHV &HSHQGDQWODYLUJXOHIORWWDQWHGRXEOHSUpFLVLRQQ¶pWDLWSDVSULVHHQFKDUJHVXUFHV SURFHVVHXUV

 )LJXUH&RPSDUDLVRQGXQRPEUHGH*)/23VGHSOXVLHXUVJpQpUDWLRQVGH&38HWGHFDUWHVJUDSKLTXHV>@ 6XUOD)LJXUHRQSHXWFRPSDUHUO¶pYROXWLRQGXQRPEUHGH*)/236WKpRULTXHV • GHV FDUWHV JUDSKLTXHV 19,',$ SUHQDQW HQ FKDUJH O¶XWLOLVDWLRQ GH QRPEUHV IORWWDQWV P GRXEOHSUpFLVLRQ P VLPSOHSUpFLVLRQ • GHV&38SUHQDQWHQFKDUJHO¶XWLOLVDWLRQGHQRPEUHVIORWWDQWV P GRXEOHSUpFLVLRQ P VLPSOHSUpFLVLRQ

 

/D JpQpUDWLRQ GH FDUWHV JUDSKLTXHV 19,',$ FRQWHQDQW XQ SURFHVVHXU GRQW O¶DUFKLWHFWXUHHVW • DQWpULHXUHjODWHFKQRORJLH&8'$HVWUHSUpVHQWpHSDUOHVFDUWHV); 8OWUDHW*7; • GXPrPHW\SHTXHFHOOHGX*HVWUHSUpVHQWpHSDUODFDUWH*7; • *7HVWUHSUpVHQWpHSDUODFDUWH*7; • *)HVWUHSUpVHQWpHSDUODFDUWH*7; , 'HX[LqPHDUFKLWHFWXUHXQLILpH&8'$O¶DUFKLWHFWXUH*7 (Q MXLQ  19,',$ D ODQFp XQH UpYLVLRQ PDMHXUH GH O¶DUFKLWHFWXUH * /¶DUFKLWHFWXUH XQLILpH GH VHFRQGH JpQpUDWLRQ ± OD *7 ODQFpH SRXU OD SUHPLqUH IRLV GDQVOHVSURFHVVHXUVJUDSKLTXHVGHVFDUWHV*H)RUFH*7;4XDGUR);HW7HVOD 7  ± D DXJPHQWp OH QRPEUH GH F°XUV GH WUDLWHPHQW PHQWLRQQpV SDU OD VXLWH VRXV OH QRPGHF°XUV&8'$ GHj /HQRPEUHGHUHJLVWUHV XWLOLVpVSRXUVWRFNHUOHVYDULDEOHV SDUPXOWLSURFHVVHXUD GRXEOpSHUPHWWDQWG¶H[pFXWHUXQQRPEUHSOXVLPSRUWDQWGHWkFKHVVXUSXFHjQ¶LPSRUWH TXHOPRPHQW /HUHJURXSHPHQWGHVDFFqVjODPpPRLUHPDWpULHOOH FRDOHVFLQJ DpWpDMRXWpSRXU DPpOLRUHUO¶HIILFDFLWpGHO¶DFFqVPpPRLUH/DPpPRLUHJOREDOH>@UpVLGHVXUODPpPRLUH GXSpULSKpULTXHHWRQDFFqGHjODPpPRLUHGXSpULSKpULTXHSDUGHVWUDQVIHUWVPpPRLUH G¶XQH GH WDLOOH GH   RX  RFWHWV /RUVTX¶XQ HQVHPEOH GH WkFKHV H[pFXWH XQH LQVWUXFWLRQ TXL QpFHVVLWH G¶DFFpGHU j OD PpPRLUH OHV DFFqV PpPRLUH GH FKDTXH WkFKH  VRQWUHJURXSpVHQXQRXSOXVLHXUVWUDQVIHUWVPpPRLUHVHORQ • ODWDLOOHGHVPRWVDFFpGpVSDUFKDTXHWkFKH • ODUpSDUWLWLRQGHVDGUHVVHVPpPRLUHDFFpGpHVSDUFKDTXHWkFKH 3RXU DFFpOpUHU OHV DFFqV j OD PpPRLUH LO HVW GRQF SUpIpUDEOH GH UHJURXSHU FRDOHVFLQJ OHVGRQQpHVG¶XQHQVHPEOHGHWkFKHVGDQVGHVHPSODFHPHQWVPpPRLUHGRQW OHVDGUHVVHVVHVXLYHQW /DSULVHHQFKDUJHGHODYLUJXOHIORWWDQWHGRXEOHSUpFLVLRQDpJDOHPHQWpWpDMRXWpH SRXUUpSRQGUHDX[EHVRLQVGHVDSSOLFDWLRQVGHFDOFXOKDXWHSHUIRUPDQFHRX+3& KLJK SHUIRUPDQFHFRPSXWLQJ RXGHVDSSOLFDWLRQVVFLHQWLILTXHV , /¶DUFKLWHFWXUH)HUPL /¶DUFKLWHFWXUH )HUPL UHSUpVHQWH HQ   OH ERQG HQ DYDQW OH SOXV VLJQLILFDWLI GDQVO¶DUFKLWHFWXUH*38GHSXLVOHSURFHVVHXU**UHSUpVHQWDLWODYLVLRQLQLWLDOHGH 19,',$ GH OD PDQLqUH GRQW GHYDLW IRQFWLRQQHU XQ SURFHVVHXU SDUDOOqOH XQLILp GH WUDLWHPHQW JUDSKLTXH HW GH FDOFXO /H SURFHVVHXU *7 D pWHQGX OD SHUIRUPDQFH HW OD IRQFWLRQQDOLWp GX * $YHF )HUPL WRXW FH TXL D pWp DSSULV GHV GHX[ SURFHVVHXUV DQWpULHXUV HW GHV DSSOLFDWLRQV pFULWHV SRXU HX[ D pWp XWLOLVp $X PRPHQW GH SRVHU OHV IRQGDWLRQVGH)HUPLXQHJUDQGHTXDQWLWpGHUHPDUTXHVG¶XWLOLVDWHXUVVXUOHFDOFXO*38 GHSXLVOHODQFHPHQWGHVSURFHVVHXUV*HW*7DpWpUDVVHPEOpH 2XWUH OH SDVVDJH GH  j  F°XUV GH WUDLWHPHQW OHV DPpOLRUDWLRQV VH VRQW FRQFHQWUpHVVXUOHVSRLQWVFOpVVXLYDQWV • 3ULVHHQFKDUJHGHVQRPEUHVIORWWDQWVGRXEOHSUpFLVLRQ ELWV  • 3ULVHHQFKDUJHGHFRGHFRUUHFWHXUG¶HUUHXURX(&& (UURU&RUUHFWLQJ&RGH  /¶(&& SHUPHW DX[ XWLOLVDWHXUV GH FDOFXOV *38 GH GpSOR\HU HQ WRXWH VpFXULWp GH JUDQGHV TXDQWLWpV GH SURFHVVHXUV JUDSKLTXHV GDQV OHV LQVWDOODWLRQV GH FHQWUHV GH GRQQpHV HW DXVVL GH V¶DVVXUHU TXH OHV DSSOLFDWLRQV GRQW OHV GRQQpHV VRQW VHQVLEOHV

 

FRPPH O¶LPDJHULH PpGLFDOH HW OD WDULILFDWLRQ G¶RSWLRQV ILQDQFLqUHV VRLHQW SURWpJpHV FRQWUHOHVHUUHXUVGHPpPRLUH • 8QHYUDLHKLpUDUFKLHGDQVODPpPRLUHFDFKH±&HUWDLQVDOJRULWKPHVSDUDOOqOHV pWDLHQWLQFDSDEOHVG¶XWLOLVHUODPpPRLUHSDUWDJpHGXSURFHVVHXUJUDSKLTXHHWFHUWDLQV XWLOLVDWHXUVUpFODPDLHQWXQHYUDLHDUFKLWHFWXUHGHPpPRLUHFDFKHSRXUOHVDLGHU • 'DYDQWDJH GH PpPRLUH SDUWDJpH ± GH QRPEUHX[ SURJUDPPHXUV &8'$ UpFODPDLHQWSOXVGHNRGHPpPRLUHSDUWDJpHSRXUDFFpOpUHUOHXUVDSSOLFDWLRQV 'DQV OH 7DEOHDX  RQ FRPSDUH SOXVLHXUV FDUDFWpULVWLTXHV GHV SULQFLSDOHV FDUWHV JUDSKLTXHV HQ SUHQDQWHQFKDUJHO¶HQYLURQQHPHQW&8'$ 7DEOHDX&DUWHVJUDSKLTXHV19,',$SUHQDQWHQFKDUJH&8'$Œ

&RPSXWH 6pULHHW 7\SH $3, &DSDELOLW\ DQQpHGH *38 &DUWH G¶DUFKLWHFWXUH JUDSKLTXH YHUVLRQV ODQFHPHQW GH*38 GH*38  *H)RUFH *7;8OWUD*76 *  7HVOD&'6);0  * *H)RUFH *6*7   * *7*76 *7*76 * *7*62 * *7*7;*; *76  *7 * 7HVOD   *DE   );     *DE  [ [[0  *DE 0 0 'LUHFW' -DQ  * 0  *DE 196

 *H)RUFH *7;  *7;  *7D *7;  *7;  *7;      E 7HVOD &0 6 4XDGUR &;); *7 7HVOD  *7 *H)RUFH  *7  );  *7  /3 0 0 196  *7 0   *H)RUFH *) *7;*7;  *7;  7HVOD & *)  &604XDGUR3OH[   $YU  *) *) *H)RUFH *7  *7  *7 *)  *76  *7;  *7; 'LUHFW' *) *)   7L *7;  7L 0  )HUPL  *) 4XDGUR     *)   *)   *H)RUFH *)  *7; *)  *7;*7;  *H)RUFH*7 *) 

 

, &RQVWLWXWLRQG¶XQHFDUWHJUDSKLTXH , 3UpVHQWDWLRQJpQpUDOHG¶XQHFDUWHJUDSKLTXH /D FDUWH JUDSKLTXH HVW O XQ GHV UDUHV SpULSKpULTXHV UHFRQQXV SDU OH 3& GqV O LQLWLDOLVDWLRQGHODPDFKLQH 6DIRQFWLRQJpQpUDOHHVWGHFRQYHUWLUGHVGRQQpHVQXPpULTXHVEUXWHVHQGRQQpHV SRXYDQWrWUHDIILFKpHVVXUXQSpULSKpULTXHGHVWLQpjFHWXVDJH pFUDQYLGpRSURMHFWHXU HWF  &HSHQGDQW VD IRQFWLRQ OD SOXV FRXUDQWH HVW G¶HQYR\HU j O¶pFUDQ GHV LPDJHV VWRFNpHVGDQVVDPpPRLUHjXQHIUpTXHQFHHWGDQVXQIRUPDWTXLGpSHQGHQWG¶XQHSDUWGH O¶pFUDQ XWLOLVp HW GX SRUW VXU OHTXHO LO HVW EUDQFKp HW G¶DXWUH SDUW GH VD FRQILJXUDWLRQ LQWHUQH /D SOXSDUW GHV FDUWHV JUDSKLTXHV RIIUHQW pJDOHPHQW FHUWDLQHV IRQFWLRQV VXSSOpPHQWDLUHV WHOOHV TXH O¶DFFpOpUDWLRQ GH O¶DIILFKDJH GH VFqQHV ' HW GH JUDSKLTXHV ' OD FDSWXUH YLGpR O¶DGDSWDWLRQ G¶XQ WXQHU 79 OH GpFRGDJH 03(*03(* O¶LQWHUIDFH)LUHZLUHOHFUD\RQRSWLTXHODVRUWLHWpOpYLVLRQRXODSRVVLELOLWpGHFRQQHFWHU SOXVLHXUV PRQLWHXUV '¶DXWUHV FDUWHV JUDSKLTXHV PRGHUQHV KDXWHV SHUIRUPDQFHV VRQW XWLOLVpHVjGHVILQVSOXVH[LJHDQWHVJUDSKLTXHPHQWWHOOHVTXHOHVMHX[YLGpR /HU{OHGHODFDUWHJUDSKLTXHQHVHOLPLWHFHSHQGDQWSDVjFHVIRQFWLRQVSXLVTX HOOH GpFKDUJHGHSOXVHQSOXVOHSURFHVVHXUFHQWUDOGHVFDOFXOVFRPSOH[HV' , )RQFWLRQQHPHQWJpQpUDOG¶XQHFDUWHJUDSKLTXH 'DQVXQVRXFLGHFRQFLVLRQQRXVQRXVOLPLWHURQVDXIRQFWLRQQHPHQWGHVFDUWHV OHVSOXVUpFHQWHV /RUVTXHTX¶XQHLQVWUXFWLRQG¶DIILFKDJHTXLWWHOH&38SRXUDOOHUDXPRQLWHXUHOOH SDVVH YRLU)LJXUH  • SDUOHEXVGHODFDUWHPqUHSRXUDOOHUGDQVOHSURFHVVHXUJUDSKLTXHYLDXQEXV VpULH 'DQVODFRQILJXUDWLRQTXHQRXVXWLOLVHURQVOHEXVXWLOLVpVHUDOHEXVVpULH3&,([SUHVV 3&,([SUHVV[*HQSRXUODFDUWH*7; FDGHQFpSDUXQHKRUORJHj*+] SRXUXQGpELWGH0RVSDUYRLHGRQF*RVSRXUXQFRQQHFWHXUjYRLHV • GXSURFHVVHXUJUDSKLTXHYHUVODPpPRLUHYLGpRDILQGHFUpHUXQHLPDJHGH O pFUDQjFHWHQGURLW GRQQpHVVRXVIRUPHQXPpULTXH  (QVXLWHVLRQXWLOLVH • XQPRQLWHXUDQDORJLTXH P O¶LPDJHYLGpRQXPpULTXHHVWWUDQVPLVHGHODPpPRLUHYLGpRYHUVOH &RQYHUWLVVHXU1XPpULTXH$QDORJLTXH 5$0'$& SRXUODFRQYHUWLUVRXV IRUPHDQDORJLTXH P ODYLGpRVRXVIRUPHDQDORJLTXHHVWHQVXLWHWUDQVPLVHGX5$0'$&YHUVOH PRQLWHXUYLDXQFRQQHFWHXU'9,$'9,,RX9*$ • XQPRQLWHXUQXPpULTXHOHVLJQDOQXPpULTXHHVWWUDQVPLVGHODPpPRLUHYLGpR YHUVOHPRQLWHXUYLDXQFRQQHFWHXU'9,,RX'9,' /H FRQQHFWHXU '9,, '9,,QWHJUDWHG  SHUPHW GH WUDQVPHWWUH XQ VLJQDO DQDORJLTXHRXQXPpULTXH 'DQV OD FRQILJXUDWLRQ TXH QRXV XWLOLVHURQV XQ PRQLWHXU QXPpULTXH HVW EUDQFKp VXUXQGHVGHX[FRQQHFWHXUV'9,,SUpVHQWVVXUODFDUWH*7; 

  

  3&  &DUWHPqUH &38

3&,([SUHVV[

&DUWHJUDSKLTXH 3URFHVVHXUJUDSKLTXH *38

0pPRLUH9LGpR 6LJQDOQXPpULTXH 6LJQDO 5$0'$& QXPpULTXH 6LJQDODQDORJLTXH &RQQHFWHXU'9,,

0RQLWHXUQXPpULTXH 0RQLWHXUDQDORJLTXH  )LJXUH(WDSHVGHFUpDWLRQHWRXGHWUDLWHPHQWG¶XQHLPDJHDYDQWDIILFKDJH , &RPSRVDQWVG¶XQHFDUWHJUDSKLTXH 8QHFDUWHJUDSKLTXHHVWFRPSRVpHGHTXDWUHpOpPHQWVSULQFLSDX[LPSRUWDQWVSRXU OHWUDLWHPHQWGHO¶LPDJHjDIILFKHU • OHSURFHVVHXUJUDSKLTXH • ODPpPRLUHYLGpR • OH%,26YLGpR • OH5$0'$& (OOHHVWFRPSRVpHpJDOHPHQWGHSOXVLHXUVpOpPHQWVDGGLWLRQQHOV • ODFRQQH[LRQDYHFODFDUWHPqUH • OHVHQWUpHVVRUWLHVYLGpRV • OHV\VWqPHGHUHIURLGLVVHPHQWGXSURFHVVHXU /HSURFHVVHXUJUDSKLTXH /DIRQFWLRQGXSURFHVVHXUJUDSKLTXHRX*38 *UDSKLFDO3URFHVVLQJ8QLW HVWGH OLEpUHUOHPLFURSURFHVVHXUGHODFDUWHPqUHHQSUHQDQWHQFKDUJHOHVFDOFXOVVSpFLILTXHVj O¶DIILFKDJHHWjODFRRUGLQDWLRQGHVJUDSKLVPHV' /H SURFHVVHXU HVW FRQoX HQ SDUWLFXOLHU SRXU UpDOLVHU GHV FDOFXOV HQ YLUJXOH IORWWDQWH TXL VRQW IRQGDPHQWDX[ SRXU O¶DIILFKDJH G¶LPDJHV ' RX' /HVSULQFLSDOHV FDUDFWpULVWLTXHVGX*38VRQWVDIUpTXHQFHG¶KRUORJHGHF°XUTXLV¶pWHQGW\SLTXHPHQWGH 0+]j*+]HWOHQRPEUHGHSLSHOLQHVTXLWUDQVIRUPHQWXQHLPDJH'FDUDFWpULVpH SDUGHVVRPPHWV RXYHUWH[ HWGHVOLJQHVHQXQHLPDJH'IRUPpHGHSL[HOV



Sur la Figure 3, on peut voir la photo d’un des processeurs graphiques précédant CUDA™.

Figure 3 : Le processeur graphique NV43 d’une GeForce 6600 GT Les processeurs graphiques modernes ont un fonctionnement massivement parallèle, et sont entièrement programmables. Leur puissance de calcul est sans commune mesure avec celle des CPU. En conséquence, ils concurrencent les CPU pour les calculs haute performance. La mémoire vidéo La mémoire vidéo conserve les données numériques qui doivent être converties en images par le processeur graphique et les images traitées par le processeur graphique avant leur affichage. Toutes les cartes graphiques supportent deux méthodes d’accès à leur mémoire. L’une est utilisée pour recevoir des informations en provenance du reste du système, l’autre est sollicitée pour l’affichage à l’écran. La première méthode est un accès direct conventionnel (RAM) comme pour les mémoires centrales, la deuxième méthode est généralement un accès séquentiel à la zone de mémoire contenant l’information à afficher à l’écran. La capacité mémoire de la plupart des cartes graphiques en 2011 s’étend de 128Mo à 4 Go. La mémoire vidéo est basée surtout sur de la mémoire DRAM de type DDR, DDR2, GDDR3, GDDR4 et GDDR5. Tableau 2 : Fréquence d’horloge et bande passante selon les types de mémoire

Type Fréquence d’horloge mémoire (MHz) Bande passante (GB/s) DDR 166 - 950 1.2 - 30.4 DDR2 533 - 1000 8.5 - 16 GDDR3 700 - 2400 5.6 - 156.6 GDDR4 2000 - 3600 128 - 200 GDDR5 900 - 5600 130 - 230

Le BIOS vidéo Le BIOS vidéo est à la carte graphique ce que le BIOS est à la carte mère. C’est un petit programme de base enregistré dans une mémoire ROM et qui contient certaines informations sur la carte graphique et dont une des fonctions est de démarrer la carte graphique. Le BIOS vidéo peut contenir des informations sur le cadencement de la

16 

PpPRLUH VXU OHV YLWHVVHV G¶RSpUDWLRQ HW OHV WHQVLRQV GX SURFHVVHXU JUDSKLTXH VXU OD 5$0HWG¶DXWUHVLQIRUPDWLRQV/H%,26YLGpRJqUHOHVRSpUDWLRQVGHODFDUWHJUDSKLTXH HWIRXUQLWOHVLQVWUXFWLRQVTXLSHUPHWWHQWjO¶RUGLQDWHXUHWDXORJLFLHOG¶LQWHUDJLUDYHFOD FDUWH /H5$0'$& /H5$0'$& 5DQGRP $FFHVV 0HPRU\ 'LJLWDOWR$QDORJ &RQYHUWHU FRQYHUWLW OHV LPDJHV QXPpULTXHV VWRFNpHVGDQVODPpPRLUHYLGpR IUDPH EXIIHU  GH OD PpPRLUH YLGpRHQVLJQDX[DQDORJLTXHVjHQYR\HUjXQPRQLWHXUXWLOLVDQWGHVHQWUpHVDQDORJLTXHV WHOTX¶XQPRQLWHXUjWXEHFDWKRGLTXH/DIUpTXHQFHGX5$0'$&GpWHUPLQHOHVWDX[GH UDIUDvFKLVVHPHQW QRPEUH G¶LPDJHV SDU VHFRQGH HQ +]  TXH OD FDUWH JUDSKLTXH SHXW SUHQGUHHQFKDUJH %LHQTXHOH5$0'$&VRLWHQFRUHSUpVHQWGDQVOHVFDUWHVJUDSKLTXHVDFWXHOOHVLO HVWGHPRLQVHQPRLQVXWLOLVpOHVPRQLWHXUVDFWXHOVpWDQWQXPpULTXHSRXUODSOXSDUW/H 5$0'$&QHUHVWHHQFRUHXWLOLVpTX¶DYHFXQPRQLWHXUDQDORJLTXHHWXQHLQWHUIDFH'9, $RX'9,, /DFRQQH[LRQDYHFODFDUWHPqUH /DFRQQH[LRQGHODFDUWHJUDSKLTXHDYHFODFDUWHPqUHVHIDLWjO¶DLGHG¶XQSRUW JUHIIp VXU XQ EXV PDLV GDQV EHDXFRXS GH GRFXPHQWDWLRQV WHFKQLTXHV RQ SDUOH SOXV VRXYHQWGHEXVTXHGHSRUWSRXUSDUOHUGHODFRQQH[LRQDYHFODFDUWHPqUH $XFRXUVGHVDQQpHVSOXVLHXUVWHFKQRORJLHVVHVRQWVXFFpGpHVSRXUVDWLVIDLUHOHV EHVRLQVGHYLWHVVHGHWUDQVIHUWVDQV FHVVH FURLVVDQWVGHVFDUWHV JUDSKLTXHV2QSHXWOHV GLYLVHUHQGHX[FDWpJRULHVSULQFLSDOHV • /HV EXV XWLOLVpV GDQV OH SDVVp PDLV DFWXHOOHPHQW REVROqWHV 6 ,6$ 1X%XV0&$(,6$9/%3&,83$$*33&,; • /HVEXVFRXUDPPHQWXWLOLVpVDFWXHOOHPHQW P 3&,([SUHVV 3&,H F¶HVWXQHLQWHUIDFHSRLQWjSRLQWVRUWLHHQjQH SDVFRQIRQGUHDYHF3&,; DPpOLRUDWLRQGHVVSpFLILFDWLRQVGXEXV3&,  /HGpELWGHGRQQpHVSHXWDOOHUMXVTX¶j P YHUVLRQ0RVSRXUXQHIUpTXHQFHGH*+] P YHUVLRQ0RVSRXUXQHIUpTXHQFHGH*+] /H3&,([SUHVVUHPSODFHWRXVOHVFRQQHFWHXUVG¶H[WHQVLRQG¶XQ3&GRQW OH 3&, HW O¶$*3 HW HVW HQFRUH   WUqV FRXUDPPHQW XWLOLVp GDQV OD SOXSDUWGHVFDUWHVJUDSKLTXHV2QSDUOHGHSRUWV3&,Hîîîîî HWîSRXUGLIIpUHQFLHUOHVSRUWVHQIRQFWLRQGXQRPEUHGHFRQQHFWHXUVGH OLJQH GRQW LOV GLVSRVHQW UHVSHFWLYHPHQW      RX  OLJQHV PD[LPXP 8QSRUWîYHUVLRQSHUPHWG DWWHLQGUHHQWKpRULHXQGpELW GH*RVVRLWIRLVOHGpELWGHVSRUWV$*3 P 86% FHUWDLQHV FDUWHV JUDSKLTXHV H[WHUQHV SURILWHQW GX KDXW GpELW  0RV  TX¶RIIUH OH EXV 86% GDQV VD YHUVLRQ  PDLV HOOHV Q¶DUULYHURQW j SOHLQHPDWXULWpTX¶DYHFO¶86%YHUVLRQ 0RV SHUPHWWDQWG¶DIILFKHU XQQRPEUHG¶LPDJHVSDUVHFRQGHVXIILVDQWSRXU SHUPHWWUHO¶DIILFKDJHGH YLGpRVHQPRGHSOHLQpFUDQ /DQRUPH86%DXQGpELWGH P YHUVLRQHW0ELWVV P YHUVLRQ0ELWVV 0RV  P YHUVLRQ*ELWVV 0RV  /HVLQWHUIDFHVYLGpR

 

,OH[LVWHGHX[W\SHVG¶LQWHUIDFH • /HV LQWHUIDFHV DQDORJLTXHV &HV LQWHUIDFHV pWDQW REVROqWHV RX HQ YRLH G¶REVROHVFHQFH QRXV QH OHV GpWDLOOHURQV SDV /HV WURLV SULQFLSDOHV LQWHUIDFHV DQDORJLTXHVD\DQWpWpXWLOLVpVVRQW P /¶LQWHUIDFH9*$ P /¶LQWHUIDFHYLGpRFRPSRVLWH FRGDJHVYLGpR176&6(&$0HW3$/  P /¶LQWHUIDFH6YLGpR • /HVLQWHUIDFHVQXPpULTXHV P /¶LQWHUIDFH'9, / LQWHUIDFH '9, 'LJLWDO 9LGHR ,QWHUIDFH  SHUPHW G HQYR\HU DX[ pFUDQV OH VXSSRUWDQW GHV GRQQpHV QXPpULTXHV &HFL SHUPHW G pYLWHU GHV FRQYHUVLRQV QXPpULTXHDQDORJLTXH SXLV DQDORJLTXH QXPpULTXHV LQXWLOHV 'H SOXV OD OLDLVRQ'9,DPpOLRUHVHQVLEOHPHQWODTXDOLWpGHO¶DIILFKDJHSDU UDSSRUW j OD FRQQH[LRQ9*$ ,OH[LVWHWURLVW\SHVGHSULVHV ƒ OH'9,$ '9,$QDORJ TXLWUDQVPHWXQLTXHPHQWOHVLJQDO DQDORJLTXH ƒ OH'9,' '9,'LJLWDO TXLWUDQVPHWXQLTXHPHQWOHVLJQDO QXPpULTXH ƒ OH'9,, '9,,QWHJUDWHG TXLWUDQVPHW VXUGHVEURFKHVVpSDUpHV VRLW OHVLJQDOQXPpULTXHGX'9,'VRLWOHVLJQDODQDORJLTXHGX'9,$ 6XUOD)LJXUHRQSHXWYRLUOHVGLIIpUHQWVW\SHVGHOLDLVRQ'9,H[LVWDQWV



)LJXUH7\SHVGHFRQQHFWHXUV'9, /¶LQWHUIDFH'9,H[LVWHHQPRGHVLPSOH ©VLQJOHª RXGRXEOH ©GXDOª 'DQV OH FDV GHV V\VWqPHV GH OLDLVRQ GRXEOH GHV EURFKHV VXSSOpPHQWDLUHV VRQW IRXUQLHVSRXUODGHX[LqPHVpULHGHVLJQDX[GHGRQQpHV 2QFKRLVLWOHPRGHGHOLDLVRQ VLPSOHRXGRXEOH GHODPDQLqUHVXLYDQWH ƒ /HVPRQLWHXUVXWLOLVDQWXQHKRUORJHLQIpULHXUHj0+]HWPRLQVGH ELWVSDUSL[HOGRLYHQWXWLOLVHUOHPRGHGHOLDLVRQVLPSOH ƒ /HVPRQLWHXUVXWLOLVDQWXQHIUpTXHQFHG¶KRUORJHGH0+]HWRX SOXVGHELWVSDUSL[HOGRLYHQWXWLOLVHUOHPRGHGHOLDLVRQGRXEOH



La liaison double (« dual link ») ne doit pas être confondue avec l’affichage dual (dual display également appelé dual head), qui décrit les situations pour lesquelles un ordinateur utilise deux moniteurs à la fois pour l’affichage des données. o L’interface HDMI Cette interface sortie en 2003 permet de relier la carte à un écran haute définition en transmettant également la partie audio. Ces signaux sont transmis numériquement et peuvent être cryptés (protection du contenu contre la copie). Elle permet d'interconnecter une source audio/vidéo - tel qu'un lecteur HD DVD ou Blu-ray, un ordinateur, une console de jeu ou un téléviseur HD. Cette interface se base sur l'interface DVI qu'elle étend et supporte aussi bien la vidéo standard que la haute définition. Il existe trois types de connecteurs HDMI : ° Type A : le plus courant ; il se compose de 19 broches. ° Type B : équivalent du Dual-link DVI mais qui est en partie rendu obsolète par la version 1.3 du HDMI - qui double la bande passante sur un câble de type A. ° Type C : apparu avec la norme 1.3 du HDMI, le type C est une version compacte du type A (avec donc 19 broches) spécialement dédié aux appareils portables tels que caméscopes et appareils photos numériques. ° Type D : ce type de connecteur est défini par la norme HDMI 1.4. Il garde les 19 broches des types A et C mais réduit la taille du connecteur jusqu’à une taille proche de celle d’un connecteur micro- USB. ° Type E : ce type de connecteur est un système de connection utilisé en aéronautique et défini par la norme HDMI 1.4 o L’interface DisplayPort Cette interface est une interface numérique pour écran mise en place par le consortium VESA (Video Electronics Standards Association). Il définit une nouvelle interconnexion numérique audio/vidéo, sans droit ni licence. Celle-ci est d’abord conçue pour relier un PC et ses moniteurs, ou un PC et un système de home cinema.

19

I.3 Architecture interne d’une carte graphique NVIDIA I.3.1 Présentation Pour comprendre le fonctionnement parallèle d’une carte graphique, on doit d’abord en connaître la constitution interne et en particulier la répartition de ses différents types de mémoire. Les cartes graphiques CUDA utilisent plusieurs espaces mémoire, dont les caractéristiques reflètent leurs utilisations. Ces espaces mémoire [6] peuvent être de type global, local, partagé, texture et registres comme il est montré sur la Figure 5. La Figure 5 montre l’architecture interne générale d’une carte graphique. Carte graphique GPU DRAM Multiprocesseur Multiprocesseur Multiprocesseur Vers l’hôte Mémoire locale Registres Mémoire partagée Mémoire globale

Mémoire de constantes Buffer de constantes et de textures Mémoire de texture

Figure 5 : Répartition des zones mémoire d’une carte graphique

Comme il est montré sur la Figure 5, la mémoire d’une carte graphique se répartit entre la mémoire DRAM et le processeur graphique (GPU). Parmi ces différents espaces mémoire, les mémoires de type globale et texture sont les plus étendues. Les mémoires de type global, local, et texture ont les temps d’accès les plus importants. Les mémoires de constantes, de registres et la mémoire partagée ont les temps d’accès les plus rapides. La mémoire de constante est plus lente d’accès que la mémoire de registre qui elle-même est plus lente que la mémoire partagée. La mémoire partagée est donc la mémoire la plus rapide d’accès. Dans le cadre de la programmation CUDA, les parties de la carte graphique les plus importantes à connaître sont le processeur graphique (GPU) et la mémoire DRAM (extérieure au processeur graphique). Pour bien comprendre l’utilité des différentes zones mémoire, on doit d’abord comprendre la structure d’un processeur graphique, ainsi que la manière dont il gère les calculs à exécuter. Un processeur graphique est divisé en un nombre variable de multiprocesseurs ou SM (Streaming Multiprocessor) eux-mêmes divisés en un nombre variable de cœurs de traitement également appelés processeurs de flux, ou SP (Streaming Processor). Un multiprocesseur est conçu pour exécuter des centaines de tâches identiques en même

20 

WHPSV/¶H[pFXWLRQG¶XQSURJUDPPH&8'$VXUFDUWHJUDSKLTXHQ¶HVWGRQFYDODEOHTXH GDQVOHVFDVRXQHLQVWUXFWLRQSHXWVHGLYLVHUHQGHQRPEUHXVHVWkFKHVLGHQWLTXHV3RXU JpUHUXQHWHOOHTXDQWLWp GHWkFKHVXQPXOWLSURFHVVHXU 60  HPSORLH XQH DUFKLWHFWXUH j LQVWUXFWLRQXQLTXHHWWkFKHVPXOWLSOHVRX6,07 6LQJOH,QVWUXFWLRQ0XOWLSOH7KUHDGV  /HODQJDJH&8'$&pWHQGOH&HQSHUPHWWDQWDXSURJUDPPHXUGHGpILQLUXQHIRQFWLRQ & DSSHOpH NHUQHO TXL ORUVTX¶HOOH HVW DSSHOpH HVW H[pFXWpH 1 IRLV HQ SDUDOOqOH SDU 1 WkFKHVLGHQWLTXHVVXU1F°XUVGHWUDLWHPHQWGLVWLQFWV/¶HQVHPEOHGHWRXWHVOHVWkFKHVj H[pFXWHUFRQVWLWXHFHTX¶RQDSSHOOHXQHJULOOHGHWkFKHV/DJULOOHGHWkFKHVHVWHOOHPrPH GLYLVpHHQSOXVLHXUVEORFVGHWkFKHV/HQRPEUHGHEORFVSDUJULOOHHWOHQRPEUHGHWkFKHV SDUEORFVVRQWFRQILJXUDEOHVSDUOHSURJUDPPHXUGDQVXQSURJUDPPH&8'$PDLVSRXU FH IDLUH XQH FRQGLWLRQ GRLW rWUH UHVSHFWpH OD WDLOOH GH JULOOH H[SULPpH HQ QRPEUH GH WkFKHV GRLWrWUHXQPXOWLSOHGHODWDLOOHGHEORF /D JULOOH SHXW FRPSRUWHU XQH GHX[ RX WURLV GLPHQVLRQV GpILQLHVSDUOH SURJUDPPHXU • qUHGLPHQVLRQQRPEUHGHOLJQHVGHEORFV • qPHGLPHQVLRQQRPEUHGHFRORQQHVGHEORFV • qPHGLPHQVLRQQRPEUHGHEORFVHQSURIRQGHXU 'HPrPHOHVEORFVSHXYHQWFRPSRUWHUXQHGHX[RXWURLVGLPHQVLRQVGpILQLHVSDU OHSURJUDPPHXU • qUHGLPHQVLRQQRPEUHGHOLJQHVGHWkFKHV • qPHGLPHQVLRQQRPEUHGHFRORQQHVGHWkFKHV • qPHGLPHQVLRQQRPEUHGHWkFKHVHQSURIRQGHXU /RUVTXHOHNHUQHOHVWDSSHOpSDUOHFRGH&8'$VXUOH&38K{WHOHSURFHVVHXUOH GpFRXSH HQ EORFV GH WkFKHV &HWWH GpFRXSH HQ EORFV HVW UpDOLVpHSDUXQHSDUWLHGX SURFHVVHXUJUDSKLTXHDSSHOpHOHJHVWLRQQDLUHGHWkFKHV /HV EORFV GH OD JULOOH VRQW DWWULEXpV DUELWUDLUHPHQW >@ EORF SDU EORF DX[ PXOWLSURFHVVHXUVGLVSRQLEOHV8QPXOWLSURFHVVHXU 60 SHXWH[pFXWHUGHjEORFVHQ SDUDOOqOH&HVEORFVWUDLWpVHQSDUDOOqOHHQSHUPDQHQFHVRQWDSSHOpVEORFVUpVLGHQWV /HJHVWLRQQDLUHGHWkFKHVFRQQDvWODOLVWHGHVEORFVUHVWDQWVjH[pFXWHUHWDWWULEXH GH QRXYHDX[ EORFV DX[ PXOWLSURFHVVHXUV j PHVXUH TXH O¶H[pFXWLRQGHVEORFV SUpFpGHPPHQW DOORXpV VH WHUPLQH /HV QRXYHDX[ EORFV DWWULEXpV GHYLHQQHQW j OHXU WRXU EORFVUpVLGHQWV,O\DGRQFWRXMRXUVHQSHUPDQHQFHQEORFVHQFRXUVG¶H[pFXWLRQGDQVXQ PXOWLSURFHVVHXU DYHF”Q”  /HVSUHPLHUVEORFVDWWULEXpVjXQPXOWLSURFHVVHXU 60 VRQWGRQFWRXVH[pFXWpV LPPpGLDWHPHQWHQSDUDOOqOHHWVRQWGHVEORFVUpVLGHQWVDXPRPHQWGHOHXUH[pFXWLRQ8QH IRLVFHVEORFVH[pFXWpVOHPXOWLSURFHVVHXU 60 SDVVHDXORWGHEORFVVXLYDQW DWWULEXp SDUOHJHVWLRQQDLUHGHWkFKHV TXLGHYLHQQHQWjOHXUWRXUGHVEORFVUpVLGHQWV/HQRPEUH GHEORFVUpVLGHQWVHVWFKRLVLSDUOHJHVWLRQQDLUHGHWkFKHVVHORQSOXVLHXUVSDUDPqWUHVPDLV FH QRPEUH UHVWH IL[H SRXU XQH JULOOH GH WkFKHV GRQQpH /H SURFHVVXV GH GpWHUPLQDWLRQ SDUOHJHVWLRQQDLUHGHWkFKHV GXQRPEUHGHEORFVUpVLGHQWVHVWGpFULWSOXVEDV /HV WkFKHV GH FKDTXH EORF UpVLGHQW G¶XQ PXOWLSURFHVVHXU 60  VRQW DSSHOpHV WkFKHVUpVLGHQWHV 6HORQ OH SURFHVVHXU JUDSKLTXH XWLOLVp OD )LJXUH  LOOXVWUH OD IDoRQ GRQW OH JHVWLRQQDLUH GH WkFKHV DWWULEXH GHV EORFV GH WkFKHV TXL GHYLHQQHQW UpVLGHQWV  DX[ PXOWLSURFHVVHXUVGLVSRQLEOHV

 

  *ULOOHGHEORFV   ,QVWDQWGHGpEXW %ORF  %ORF %ORF %ORF G¶H[pFXWLRQGH JURXSHVGH %ORF %ORF %ORF %ORF EORFVUpVLGHQWV 

&DV*38 DYHF60 &DV*38DYHF60 &DV*38DYHF60        60 60 60 60 60 60 60

   %ORF  %ORF %ORF %ORF  %ORF    %ORF   %ORF        

W    %ORF  %ORF  %ORF  %ORF %ORF %ORF  %ORF              

  %ORF  %ORF  %ORF         WǻW   %ORF  %ORF  %ORF        

 %ORF  60 0XOWLSURFHVVHXU 6WUHDPLQJ0XOWLSURFHVVRU    5HPDUTXH6LRQDSSOLTXDLWFHWH[HPSOHjXQSURFHVVHXU WǻW JUDSKLTXHFRPSRUWDQW60VRQSRXUUDLWH[pFXWHUXQHJULOOHGH  EORFVSHQGDQWXQHGXUpHǻW ([FDUWH*7 /HHUFDVFRUUHVSRQG %ORF  jODFDUWH*6   

 %ORF     WǻW  %ORF      )LJXUH5pSDUWLWLRQGHVEORFVGHWkFKHVGDQVOHFDVRVRQWDWWULEXpVEORFVUpVLGHQWVSDUPXOWLSURFHVVHXU 60  8QHIRLVTX¶XQRXSOXVLHXUVEORFVGHWkFKHVVRQWDWWULEXpVjXQPXOWLSURFHVVHXU 60 DILQG¶DWWULEXHUOHVWkFKHVDX[F°XUVGHWUDLWHPHQWOHPXOWLSURFHVVHXUSDUWLWLRQQH OHVEORFVUpVLGHQWVHQJURXSHPHQWVGHWkFKHVDSSHOpVZDUSV&¶HVWSRXUTXRLOHVEORFV GH WkFKHV GRLYHQW FRPSRUWHU XQ QRPEUH GH WkFKHV PXOWLSOH GX QRPEUH GH WkFKHV TXH FRPSRUWHXQZDUSF HVWjGLUHPXOWLSOHGH$O¶LQWpULHXUG¶XQPXOWLSURFHVVHXU 60 LO H[LVWHXQHXQLWpG¶LQVWUXFWLRQPXOWLWkFKH6,07TXLFUpHJqUHRUGRQQDQFHHWH[pFXWHOHV ZDUSVSUpOHYpVGDQVOHVEORFVUpVLGHQWV/HVWkFKHVG¶XQZDUSVRQWHQVXLWHUpSDUWLVj UDLVRQGH •  WkFKHV SDU F°XU GDQV OH FDV GH O¶DUFKLWHFWXUH )HUPL  F°XUVSDU PXOWLSURFHVVHXU  /¶LQVWUXFWLRQ G¶XQ ZDUS HVW DWWULEXpH DX[ F°XUVjHW O¶LQVWUXFWLRQGXZDUSVXLYDQWHVWDWWULEXpHDX[F°XUVj •  WkFKHV SDU F°XU H[pFXWpHV VpTXHQWLHOOHPHQW  GDQV OH FDV GH O¶DUFKLWHFWXUH 7HVOD F°XUVSDUPXOWLSURFHVVHXU 

 

4XHOOH TXH VRLW O¶DUFKLWHFWXUH * *7*)  FKDTXH ZDUS FRQWLHQW WRXMRXUV  WkFKHV /HV ZDUSV GH WRXV OHV EORFV UpVLGHQWV G¶XQ PXOWLSURFHVVHXU VRQW DSSHOpVZDUSVUpVLGHQWV8QPXOWLSURFHVVHXUSHXWJpUHUVLPXOWDQpPHQWXQQRPEUHIL[HGH ZDUSVUpVLGHQWV&KDTXHPXOWLSURFHVVHXUG¶XQ*38SHXWWUDLWHUMXVTX¶j •  ZDUSV UpVLGHQWV SRXU O¶DUFKLWHFWXUH * FRUUHVSRQGDQW j OD OLPLWH GH  WkFKHVUpVLGHQWHVPD[LPXP • ZDUSVUpVLGHQWVSRXUO¶DUFKLWHFWXUH*7FRUUHVSRQGDQWjODOLPLWHGH WkFKHVUpVLGHQWHVPD[LPXP • ZDUSVUpVLGHQWVSRXUO¶DUFKLWHFWXUH*)FRUUHVSRQGDQWjODOLPLWHGH WkFKHVUpVLGHQWHVPD[LPXP 8Q SURFHVVHXU JUDSKLTXH SRVVpGDQW OD WRWDOLWp GHV FDUDFWpULVWLTXHV GH O¶DUFKLWHFWXUH*) FRQWHQDQWPXOWLSURFHVVHXUV SHXWGRQFWUDLWHUXQPD[LPXPGH  ∗  WkFKHVUpVLGHQWHV 8QHDXWUHFRQWUDLQWHjUHVSHFWHUHVWTXHFKDTXHEORFQHGRLWSDVFRQWHQLUSOXVGH • WkFKHVGDQVOHFDVRO¶DUFKLWHFWXUH*38HVWGHW\SH7HVOD *HW*7  • WkFKHVGDQVOHFDVRO¶DUFKLWHFWXUH*38HVWGHW\SH)HUPL *)  ([HPSOH6XSSRVRQVTX¶RQVRXKDLWHYRLUFKDTXHPXOWLSURFHVVHXUH[pFXWHU WkFKHV GDQV XQ SURFHVVHXU GH W\SH *7 &RPPH RQ YLHQW GH OH YRLU MXVTX¶j  WkFKHV SHXYHQW rWUH DWWULEXpHV j FKDTXH PXOWLSURFHVVHXU 0DLV GDQV FHW H[HPSOH FHV WkFKHVGRLYHQWVrWUHUpSDUWLHVHQDXPRLQVEORFVpWDQWGRQQpTXHFKDTXHEORFQHSHXW SDVFRQWHQLUSOXVGHWkFKHV 6HORQOHFKRL[GXSURJUDPPHXUO¶DWWULEXWLRQGHVWkFKHVSHXWGRQFVHIDLUH VRXVXQHGHVIRUPHVVXLYDQWHV • EORFVGHWkFKHV • EORFVGHWkFKHV • EORFVGHWkFKHV &HWWHDWWULEXWLRQQHSHXWSDVVHIDLUHVRXVOHVGHX[IRUPHVVXLYDQWHV •  EORFV GH  WkFKHV FRQILJXUDWLRQ LPSRVVLEOH pWDQW GRQQp TXH FKDTXH PXOWLSURFHVVHXUQHSHXWSDVWUDLWHUSOXVGHEORFVVLPXOWDQpPHQW  • EORFGHWkFKHV FRQILJXUDWLRQLPSRVVLEOHFDUSRXUO¶DUFKLWHFWXUH*7 XQEORFQHGRLWSDVFRQWHQLUSOXVGHWkFKHV  2QUHSUpVHQWHXQHWkFKHLVROpHSDUOHV\PEROHGHOD)LJXUH

 )LJXUH6\PEROHG¶XQHWkFKH 6XUOD)LJXUHFKDTXHZDUSVHVWFRQVWLWXpGHWkFKHV /D)LJXUHPRQWUHODGpFRPSRVLWLRQGHVEORFVHQSOXVLHXUVZDUSV&KDTXHZDUS HVW FRQVWLWXp GH  WkFKHV GRQW OHV QXPpURV G¶LGHQWLILFDWLRQ VRQW FRQVHFXWLIV 'DQV FHW H[HPSOHWURLVEORFV EORFEORFHWEORF VRQWDWWULEXpVjXQPXOWLSURFHVVHXU&KDFXQ GHFHVWURLVEORFVUpVLGHQWVHVWGpFRXSpHQZDUSV 2QSHXWFDOFXOHUOHQRPEUHGHZDUSVUpVLGHQWVGDQVXQPXOWLSURFHVVHXUSRXUXQHWDLOOHHW XQQRPEUHGHEORFVGRQQpV6XUOD)LJXUHSDUH[HPSOHVLFKDTXHEORFFRPSRUWH

 

WkFKHV RQ SHXW GpWHUPLQHU TXH FKDTXH EORF FRPSRUWHUD      ZDUSV $YHF  EORFVSDUPXOWLSURFHVVHXULO\DGRQFZDUSVSDUPXOWLSURFHVVHXUFHTXLFRUUHVSRQGDX PD[LPXPSRVVLEOHSRXUXQHDUFKLWHFWXUHGHW\SH*)

« WW  W « WW  W « WW  W WW  W WW  W WW  W W W  W W W  W W W  W

:DUS :DUS :DUS :DUS :DUS :DUS :DUS :DUS :DUS %ORF %ORF %ORF

0XOWLSURFHVVHXU*)

8QLWpG¶LQVWUXFWLRQPXOWLWkFKH &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU &°XU  )LJXUH$WWULEXWLRQGHEORFVjXQPXOWLSURFHVVHXUG¶XQHDUFKLWHFWXUH*)>@ &KDTXHPXOWLSURFHVVHXUSRVVqGHGHX[SODQLILFDWHXUVGHZDUSV ZDUSVFKHGXOHU  FKDFXQGHVGHX[HVWDVVRFLpjXQHXQLWpG¶LQVWUXFWLRQPXOWLWkFKH6,078QHIRLVTXHOH JHVWLRQQDLUH GH WkFKHV GX *38 D DWWULEXp  EORFV SDU PXOWLSURFHVVHXU FKDTXH EORF UpVLGHQWHVWGpFRXSpHQZDUSVSDUOHSODQLILFDWHXUGHZDUSV TXHOTXHVRLWOHQXPpURGH EORF  /HV ZDUSV VRQW HQVXLWH VpOHFWLRQQpV VHORQ O¶pWDW GHV GRQQpHV RSpUDQGHV OHV GRQQpHVRSpUDQGHVSRXYDQWrWUHGLVSRQLEOHVRXQRQSRXUO¶LQVWUXFWLRQVXLYDQWHjH[pFXWHU j O¶LQWpULHXU G¶XQH WkFKH /RUVTX¶XQ ZDUS HVW VpOHFWLRQQp WRXWHV OHV WkFKHV TXL OH FRPSRVHQWH[pFXWHQWODPrPHLQVWUXFWLRQ 2QUDSSHOOHTXHFKDTXHWkFKHHVWFRPSRVpHGHSOXVLHXUVLQVWUXFWLRQVTXLSHXYHQW rWUHSDUH[HPSOH • $OORFDWLRQGHPpPRLUHSDUWDJpH • 7UDQVIHUWGHGRQQpHVRSpUDQGHVGHPpPRLUHJOREDOHYHUVPpPRLUHSDUWDJpH • &DOFXO • 7UDQVIHUWGXUpVXOWDWGHPpPRLUHGHUHJLVWUHVYHUVPpPRLUHJOREDOH &HUWDLQHVGHFHVLQVWUXFWLRQVQpFHVVLWHQWGHVGRQQpHVRSpUDQGHVSRXUSRXYRLUrWUH H[pFXWpHVG¶DXWUHV LQVWUXFWLRQV QRQ $XPRPHQWGHODVpOHFWLRQGHVZDUSVjH[pFXWHUGHX[FDVVRQWSRVVLEOHV

 

• O¶LQVWUXFWLRQ j H[pFXWHUSDU OHV WkFKHV G¶XQ ZDUS GLVSRVH GH WRXWHV VHV GRQQpHV RSpUDQGHV HUFDV DORUVOHZDUSFRQFHUQpHVWVpOHFWLRQQpHWHQYR\pjF°XUVSRXU H[pFXWHUO¶LQVWUXFWLRQGRQWOHVGRQQpHVRSpUDQGHVVRQWGLVSRQLEOHV • O¶LQVWUXFWLRQ j H[pFXWHUSDU OHV WkFKHV G¶XQ ZDUS QH GLVSRVH SDVGHWRXWHVVHV GRQQpHV RSpUDQGHV qPHFDV DORUVOHZDUSFRQFHUQpQ¶HVWSDV VpOHFWLRQQp FDU O¶LQVWUXFWLRQjH[pFXWHUHVWHQFRUHHQDWWHQWHGHVHVGRQQpHVRSpUDQGHV$ORUVFHZDUS HVWPLVHQDWWHQWHMXVTX¶jFHTXHVRQLQVWUXFWLRQjH[pFXWHUGLVSRVHGHVHVGRQQpHV RSpUDQGHV/HZDUSVXLYDQWVHVWDORUVFKRLVLVLVRQLQVWUXFWLRQjH[pFXWHUSRVVqGHVHV GRQQpHVRSpUDQGHV 7RXWVHSDVVHFRPPHVLOHSODQLILFDWHXUGHZDUSVUpSDUWLVVDLWOHVZDUSVHQGHX[ JURXSHVGLVWLQFWV UHPLVjMRXUHQSHUPDQHQFH  • O¶XQFRPSRVpGHZDUSVGLVSRVDQWGHOHXUVGRQQpHVRSpUDQGHV • O¶DXWUHFRPSRVpGHZDUSVHQDWWHQWHGHOHXUVGRQQpHVRSpUDQGHV HW VpOHFWLRQQDLW GHV ZDUSV XQLTXHPHQW GDQV OH JURXSH GLVSRVDQW GH VHV GRQQpHV RSpUDQGHV 8QHIRLVOHVZDUSVVpOHFWLRQQpVOHVZDUSVjH[pFXWHUVRQWHQYR\pVGHX[SDUGHX[ GH OD PDQLqUH VXLYDQWH 8Q GHV ZDUSV SUrWV j rWUH H[pFXWpV HVW HQYR\p SDU O¶XQLWp G¶LQVWUXFWLRQVPXOWLWkFKHV DX[SUHPLHUVF°XUV(QSDUDOOqOHO¶DXWUHSODQLILFDWHXUGH ZDUSVDVVRFLpjO¶DXWUHXQLWpG¶LQVWUXFWLRQVPXOWLWkFKHVHQYRLHpJDOHPHQWXQZDUSSUrWj O¶H[pFXWLRQ DX[  DXWUHV F°XUV GX PXOWLSURFHVVHXU 3DU FRQVpTXHQW FKDTXH F°XU GRLW WUDLWHUGHX[WkFKHVSDUPLOHVWkFKHVG¶XQZDUS SRXUO¶DUFKLWHFWXUH)HUPL  'DQV OH FDV GH SURFHVVHXUV JUDSKLTXHV GH W\SH 7HVOD * RX *7  pWDQW GRQQpTXHFKDTXHPXOWLSURFHVVHXUQHFRPSRUWHTXHF°XUVHWXQVHXOSODQLILFDWHXUGH ZDUSVPDLVTX¶XQZDUSHVWWRXMRXUVFRQVWLWXpGHWkFKHVFKDTXHF°XUWUDLWHWkFKHV F\FOHV G¶KRUORJH VRQW GRQF QpFHVVDLUHV SRXU SRXYRLU H[pFXWHU OHV  WkFKHV VXU OHV  F°XUV 'DQVOHFDVROHSURJUDPPHXUDWWULEXHUDLWXQHWDLOOHGHEORFQRQPXOWLSOHGH OHGHUQLHUZDUSGXEORFVHUDLWDXWRPDWLTXHPHQWUHPSOL SDUOHPXOWLSURFHVVHXU GHWkFKHV VXSSOpPHQWDLUHVILFWLYHV WkFKHVGH©ERXUUDJHª MXVTX¶jDWWHLQGUHWkFKHV /D)LJXUHLOOXVWUHOHVpTXHQFHPHQWGHO¶H[pFXWLRQGHVZDUSVGHOD)LJXUH  3ODQLILFDWHXUGHZDUSV 3ODQLILFDWHXUGHZDUSV

8QLWpG¶LQVWUXFWLRQPXOWLWkFKH6,07 8QLWpG¶LQVWUXFWLRQPXOWLWkFKH6,07 (WDSHQƒ

:DUS,QVWUXFWLRQ :DUS,QVWUXFWLRQ 

:DUS,QVWUXFWLRQ :DUS,QVWUXFWLRQ 

:DUS,QVWUXFWLRQ :DUS,QVWUXFWLRQ  V S NpWDSHV « « WHP :DUS,QVWUXFWLRQ :DUS,QVWUXFWLRQ N :DUS,QVWUXFWLRQ :DUS,QVWUXFWLRQ N

:DUS,QVWUXFWLRQ :DUS,QVWUXFWLRQ N  )LJXUH2UGRQQDQFHPHQWGHVZDUSVHWGHVLQVWUXFWLRQV>@

 

 /HVFKpPDGHOD)LJXUHSHXWV¶H[SOLTXHUHQGpFULYDQWFKDFXQHGHVpWDSHV (WDSHQƒOHVSUHPLHUVF°XUVH[pFXWHQWO¶LQVWUXFWLRQ FRPPXQHDX[WkFKHV  GXZDUSFDUOHVGRQQpHVRSpUDQGHVVRQWGLVSRQLEOHV (QSDUDOOqOHOHV DXWUHVF°XUV H[pFXWHQW O¶LQVWUXFWLRQ  GX ZDUS  FDU OHV GRQQpHV RSpUDQGHVVRQWGLVSRQLEOHV (WDSHQƒOHVSUHPLHUVF°XUVH[pFXWHQWO¶LQVWUXFWLRQGXZDUSFDUOHVGRQQpHV RSpUDQGHVVRQWGLVSRQLEOHV (QSDUDOOqOHOHV DXWUHVF°XUV H[pFXWHQW O¶LQVWUXFWLRQ  GX ZDUS  FDU OHV GRQQpHV RSpUDQGHVVRQWGLVSRQLEOHV (WDSHQƒOHVSUHPLHUVF°XUVH[pFXWHQWO¶LQVWUXFWLRQGXZDUSFDUOHVGRQQpHV RSpUDQGHVVRQWGLVSRQLEOHV (QSDUDOOqOHOHVDXWUHVF°XUVH[pFXWHQWO¶LQVWUXFWLRQGXZDUSFDUOHVGRQQpHV RSpUDQGHVVRQWGLVSRQLEOHV « (WDSH QƒN OHV  SUHPLHUV F°XUV H[pFXWHQW O¶LQVWUXFWLRQ  GX ZDUS  VXLWH GH O¶pWDSHQƒ FDUOHVGRQQpHVRSpUDQGHVVRQWGLVSRQLEOHV (QSDUDOOqOHOHVDXWUHVF°XUVH[pFXWHQWO¶LQVWUXFWLRQGXZDUS VXLWHGHO¶pWDSH Qƒ FDUOHVGRQQpHVRSpUDQGHVVRQWGLVSRQLEOHV (WDSHQƒNOHVGRQQpHVQpFHVVDLUHVjO¶H[pFXWLRQGHO¶LQVWUXFWLRQGXZDUS VXLWH GHO¶pWDSHQƒ QHVRQWSDVGLVSRQLEOHV&HZDUSHVWGRQFPLVGHF{WpHWXQDXWUHZDUSHVW VpOHFWLRQQp$ORUVjODSODFHOHVSUHPLHUVF°XUVH[pFXWHQWO¶LQVWUXFWLRQGXZDUS  VXLWHGHO¶pWDSHQƒ FDUOHVGRQQpHVRSpUDQGHVVRQWGLVSRQLEOHV (QSDUDOOqOHOHVDXWUHVF°XUVH[pFXWHQWO¶LQVWUXFWLRQGXZDUS VXLWHGHO¶pWDSH Qƒ FDUOHVGRQQpHVRSpUDQGHVVRQWGLVSRQLEOHV (WDSH QƒN FHWWH IRLVFL OHV GRQQpHV RSpUDQGHV TXL PDQTXDLHQW j O¶pWDSH N VRQW GLVSRQLEOHV 'RQF OHV  SUHPLHUV F°XUV SHXYHQW H[pFXWHU O¶LQVWUXFWLRQ  GX ZDUS  VXLWHGHO¶pWDSHQƒ FDUOHVGRQQpHVRSpUDQGHVVRQWGLVSRQLEOHV (QSDUDOOqOHOHVDXWUHVF°XUVH[pFXWHQWO¶LQVWUXFWLRQGXZDUS VXLWHGHO¶pWDSH Qƒ FDUOHVGRQQpHVRSpUDQGHVVRQWGLVSRQLEOHV , 7\SHVGHPpPRLUHSUpVHQWVVXUOHVFDUWHVJUDSKLTXHV19,',$ 2QDSSHOOH • K{WH KRVW OH&38GX3&FRQWHQDQWODFDUWHJUDSKLTXH • SpULSKpULTXHGHWUDLWHPHQW GHYLFH ODFDUWHJUDSKLTXH 'DQVODPpPRLUH'5$0G¶XQHFDUWHJUDSKLTXH • ODPpPRLUHJOREDOHVHUWjVWRFNHUO¶HQVHPEOHGHVGRQQpHVHQYR\pHVSDUO¶K{WH (OOHSRVVqGHXQHVSDFHPpPRLUHLPSRUWDQWPDLVHVWOHQWHG¶DFFqV(OOHHVWDFFHVVLEOH SDUODWRWDOLWpGHVWkFKHVG¶XQHJULOOH • OD PpPRLUH ORFDOH VHUW j VWRFNHU FHUWDLQHV YDULDEOHV DXWRPDWLTXHV (OOH HVW DFFHVVLEOH SDU XQH VHXOH WkFKH /HV YDULDEOHV DXWRPDWLTXHV VWRFNpHV SDU OH FRPSLODWHXUGDQVODPpPRLUHORFDOHVRQW P OHV WDEOHDX[ SRXU OHVTXHOV OH FRPSLODWHXU QH SHXW SDV VDYRLU V¶LOV FRQWLHQQHQWGHVQRPEUHVFRQVWDQWV P OHVVWUXFWXUHVGHJUDQGHWDLOOHRXOHVWDEOHDX[TXLFRQVRPPHUDLHQWWURS G¶HVSDFHGHUHJLVWUH P WRXWH YDULDEOH GDQV OH FDV R WRXV OHV UHJLVWUHV GLVSRQLEOHV VRQW GpMj XWLOLVpV

 

• OD PpPRLUH GH WH[WXUH HVW XQ W\SH GH PpPRLUH XWLOLVp XQLTXHPHQWSRXUOH WUDLWHPHQW JUDSKLTXH (OOH HVW DFFHVVLEOH SDU OD WRWDOLWp GHV WkFKHV G¶XQ WUDLWHPHQW JUDSKLTXH(OOHQ¶HVWGRQFSDVXWLOLVpHGDQVQRWUHFDV • OD PpPRLUH GH FRQVWDQWHV VHUW j VWRFNHU OHV FRQVWDQWHV HW HVW DFFHVVLEOH SDU OD WRWDOLWpGHVWkFKHVG¶XQHJULOOHGHWkFKHV 'DQVOHSURFHVVHXUJUDSKLTXH • /H EXIIHU GH FRQVWDQWHV VHUW j DFFpGHU SOXV UDSLGHPHQW j OD PpPRLUH GH FRQVWDQWHVGHODFDUWHJUDSKLTXH • /HEXIIHUGHWH[WXUHVHUWjDFFpGHUSOXVUDSLGHPHQWjODPpPRLUHGHWH[WXUHGHOD FDUWHJUDSKLTXH(OOHQ¶HVWXWLOLVpHTXHSRXUOHVWUDLWHPHQWVJUDSKLTXHV 'DQVFKDTXHPXOWLSURFHVVHXUGXSURFHVVHXUJUDSKLTXH • /D PpPRLUH SDUWDJpH VHUW j VWRFNHU OHV GRQQpHV j WUDLWHU &¶HVW XQH PpPRLUH SUpVHQWHHQTXDQWLWpOLPLWpHGDQVFKDTXHPXOWLSURFHVVHXUPDLVG¶DFFqVUDSLGH(OOH HVWDFFHVVLEOHSDUWRXWHVOHVWkFKHVG¶XQEORF • /DPpPRLUHGHUHJLVWUHVVHUWjVWRFNHUOHVYDULDEOHVGHFKDTXHWkFKH /D UHVVRXUFH HVW SDUWDJpH HQWUH WRXWHV OHV WkFKHV UpVLGHQWHV 8QH IRLV OH QRPEUH GH UHJLVWUHV SDU WkFKH IL[p XQH WkFKH VSpFLILTXH DXUD DFFqV j XQ FHUWDLQV QRPEUH GH UHJLVWUHVTXLQHVHURQWSDVDFFHVVLEOHVDX[DXWUHVWkFKHV/DPpPRLUHGHUHJLVWUHVHVW OLPLWpHjUHJLVWUHVGHELWV6LO¶HQVHPEOHGHVWkFKHVUpVLGHQWHVXWLOLVHSOXVGH UHJLVWUHVOHSURFHVVHXUUpGXLWOHQRPEUHGHEORFVUpVLGHQWVMXVTX¶jFHTXHOH QRPEUH GH UHJLVWUHV QpFHVVDLUHV DX[ WkFKHV UpVLGHQWHV VRLW LQIpULHXU DX QRPEUH GH UHJLVWUHVGLVSRQLEOHV /HV SULQFLSDOHV FDUDFWpULVWLTXHV GHV GLIIpUHQWHV ]RQHV PpPRLUHV XWLOLVpHV VXU OD FDUWH*7;VRQWUpVXPpHVGDQVOH7DEOHDX 7DEOHDX&DUDFWpULVWLTXHVGHVGLIIpUHQWHV]RQHVPpPRLUHGHODFDUWH*7;>@ 4XDQWLWpGHPpPRLUH *7; 0pPRLUH (PSODFHPHQW 3RUWpH 'XUpHGHYLH  >@ UHJLVWUHVGHELWV 5HJLVWUH 6XU*38 WkFKH 7kFKH FKDFXQ SDUPXOWLSURFHVVHXU  /RFDOH +RUV*38 WkFKH 7kFKH NRSDUWkFKH 7RWDOLWpGHVWkFKHVG¶XQ 3DUWDJpH 6XU*38 %ORFGHWkFKHV NRSDUPXOWLSURFHVVHXU EORFGHWkFKHV 'XUpH 7RWDOLWpGHVWkFKHV *OREDOH +RUV*38 G¶DOORFDWLRQSDU 0RGHPpPRLUH*''5 K{WH *38  O¶K{WH 'XUpH 7RWDOLWpGHVWkFKHV &RQVWDQWH +RUV*38 G¶DOORFDWLRQSDU NRSDUPXOWLSURFHVVHXU K{WH *38  O¶K{WH 'XUpH 7RWDOLWpGHVWkFKHV 7H[WXUH +RUV*38 G¶DOORFDWLRQSDU  K{WH *38  O¶K{WH '¶XQHPDQLqUHJpQpUDOHO¶DFFqVjODPpPRLUH*38HVWEHDXFRXSSOXVUDSLGHTXH O¶DFFqVjODPpPRLUH'5$0PDLVO¶HVSDFHPpPRLUH*38HVWEHDXFRXSSOXVOLPLWpTXH O¶HVSDFHPpPRLUH'5$0 'RQF SRXU RSWLPLVHU OHV FDOFXOV RQ GHYUD IDLUH IDLUH OH PD[LPXP SRVVLEOH GH FDOFXOVSDUDOOpOLVDEOHVVXUODFDUWHJUDSKLTXHPHWWUHOHPD[LPXPSRVVLEOHGHGRQQpHVHQ PpPRLUH '5$0 HW GpFRXSHU OH FDOFXO SRXU HQYR\HU HQ PpPRLUH SDUWDJpH GHV JURXSHPHQWVGHGRQQpHVDXIXUHWjPHVXUHGHVFDOFXOV,OIDXGUDpYLWHUGHIDLUHIDLUHSDU

 

OD FDUWH JUDSKLTXH GHV FDOFXOV QRQ SDUDOOqOLVDEOHV SRXU QH SDV VXUFKDUJHU OD PpPRLUH '5$0HWSRXUQHSDVSHUGUHGHWHPSVGDQVOHWUDQVIHUWGHVGRQQpHV , $UFKLWHFWXUHVGHVSURFHVVHXUVJUDSKLTXHVDQWpULHXUVj&8'$Œ 'DQV OHV WRXWHV SUHPLqUHV FDUWHV JUDSKLTXHV OHV WUDLWHPHQWV JUDSKLTXHV pWDLHQW UHODWLYHPHQW VLPSOHV 3XLV OHV WUDLWHPHQWV VH VRQW FRPSOH[LILpVHWVRQWGHYHQXVXQ SLSHOLQH TXL D FRQWLQXp HQVXLWH j VH GpYHORSSHU 3XLV FHUWDLQHV pWDSHV GHYHQXHV WURS FRPSOH[HV RQW pWp VpSDUpHV HQ SOXVLHXUV pWDSHV GLVWLQFWHV SRXU DERXWLU ILQDOHPHQW DX SLSHOLQH GH OD )LJXUH  UHSUpVHQWDQW OHV SULQFLSDOHV pWDSHV G¶XQ SLSHOLQH JUDSKLTXH FODVVLTXH MXVTX j O¶$3, JUDSKLTXH 'LUHFW;  LQFOXVH  &H W\SH GH SLSHOLQH HVW UHVWp G DFWXDOLWp MXVTX¶HQ  >@ /HV SURFHVVHXUV JUDSKLTXHV SUpFpGDQW &8'$Œ FRPSRUWDLHQW XQ SLSHOLQH XQLTXHPHQW JUDSKLTXH HW pWDLHQW GRQF HQFRUH LQFDSDEOH GH WUDLWHUGHVFDOFXOVHQSDUDOOqOH  6RPPHW

7ULDQJOH

3L[HO

523

0pPRLUH  )LJXUH3LSHOLQHGHV$3,JUDSKLTXHV'LUHFW;HWDQWpULHXUV>@ /H SLSHOLQH GH OD )LJXUH  PRQWUH OHV SULQFLSDOHV pWDSHV GH WUDLWHPHQW TX¶XQH LPDJH VXELW DYDQW VRQ DIILFKDJH /HV pWDSHV GH WUDLWHPHQW GHV SUHPLHUV SLSHOLQHV JUDSKLTXHV pWDLHQW UpDOLVpHV PDWpULHOOHPHQW SXLV LOV RQW pWp SURJUHVVLYHPHQW UHPSODFpV SDUGHVpWDSHVGHWUDLWHPHQWSURJUDPPpHVDSSHOpHVVKDGHUVHQDQJODLV8QVKDGHUHVWXQH VXLWHG LQVWUXFWLRQVSHUPHWWDQWGHUpDOLVHUGHVWUDLWHPHQWVSHUPHWWDQWG REWHQLUGHVHIIHWV JUDSKLTXHVVXUXQHLPDJHWHOVTXHSDUH[HPSOH • O DEVRUSWLRQHWODGLIIXVLRQGHODOXPLqUHVXUXQREMHW • ODUpIOH[LRQHWODUpIUDFWLRQGHODOXPLqUHVXUXQREMHW • OHVRPEUHVG XQREMHWpFODLUp $YDQW WRXW WUDLWHPHQW SDU FH SLSHOLQH WRXWH LPDJH ' HVW GpFRXSpH HQ XQH PXOWLWXGH GH VXUIDFHV pOpPHQWDLUHV GH IRUPH WULDQJXODLUH FKDTXH VXUIDFH WULDQJXODLUH pWDQWGpILQLHSDUVHVVRPPHWV/HVGLIIpUHQWHVpWDSHVGXSLSHOLQHGHOD)LJXUHVRQW • 7UDLWHPHQW GH VRPPHW 'DQV OHV SUHPLqUHV YHUVLRQV GH 'LUHFW; O pWDSH GH VRPPHW YHUWH[ VKDGHU  V DSSHODLW 7 / 7UDQVIRUP DQG /LJKWLQJ  (Q HIIHW FHWWH pWDSHpWDLWFRPSRVpHGHVRXVpWDSHV P 7UDQVIRUPpH 7UDQVIRUP  FHWWH pWDSH SHUPHWWDLW GH FRQYHUWLU GHV GRQQpHV VSDWLDOHV GHSXLV XQ HVSDFH YLUWXHO HQ  GLPHQVLRQV YHUV XQ HVSDFHj GLPHQVLRQV

 

P &OLSSLQJ /HV pOpPHQWV QRQ YLVLEOHV H[ SDUWLH GH GpFRU PDVTXpH SDU XQ SHUVRQQDJH GHODVFqQH'VRQWpOLPLQpVGDQVFHWWHpWDSH P (FODLUDJH /LJKWLQJ GDQVFHWWHpWDSHOHVREMHWVG XQHVFqQH'VRQWpFODLUpV OHV HIIHWV GH OD OXPLqUH RPEUHV UpIOH[LRQV HWF  VRQW FDOFXOpV SXLV OD VFqQH DLQVLFDOFXOpHHVWHQYR\pHjO pFUDQ &HWWHpWDSHDpYROXpMXVTX jVHUpGXLUH SRXU'LUHFW; jXQHpWDSHGHWUDLWHPHQWGH VRPPHW /H EXW GH FHWWH pWDSH HVW GH WUDQVIRUPHU FKDTXH SRVLWLRQ GH VRPPHW GH O HVSDFHYLUWXHO'HQFRRUGRQQpHV'TXLSXLVVHQWrWUHDIILFKpHVVXUXQpFUDQ • 7UDLWHPHQWGHWULDQJOH&HWWHpWDSHDSRXUIRQFWLRQG DVVHPEOHUOHVVRPPHWV SRXU IRUPHU GHV SULPLWLYHV FRRUGRQQpHV G XQ HQVHPEOH GH  VRPPHWV  3XLV OHV FRRUGRQQpHVGHWRXVOHVSL[HOVFRQVWLWXDQWODVXUIDFHGXWULDQJOHVRQWFDOFXOpVjSDUWLU GHVFRRUGRQQpHVGHVVRPPHWV • 7UDLWHPHQWGHSL[HO&HWWHpWDSHDSRXUEXWGHFDOFXOHUODFRXOHXUGHFKDTXH SL[HOGHODVXUIDFHGXWULDQJOHHQIRQFWLRQGHO pFODLUDJHGHVRPEUHVHWGHODWH[WXUH DSSOLTXpVjO REMHW8QHWH[WXUHHVWXQHLPDJH'DSSOLTXpHjXQYROXPH' • 7UDLWHPHQW 523 5DVWHU 2SHUDWLRQV  &HWWH pWDSH UDVVHPEOH O¶HQVHPEOH GHV WUDLWHPHQWVG¶LPDJH/HVLPDJHVQRQYLVLEOHVVRQWpOLPLQpHVGDQVFHWWHpWDSHFRPPH SDUH[HPSOHORUVTX XQHVFqQHGpSDVVHOHVOLPLWHVGHO pFUDQRXELHQTX XQSHUVRQQDJH RFFXOWHXQHSDUWLHGHODVFqQH /HVHIIHWVGHWUDQVSDUHQFHSOXVRXPRLQVSURQRQFpH VRQWWUDLWpVSDUFHWWHpWDSH H[REMHWVGDQVO HDXULGHDX[QXDJHVHWF  /HVSL[HOVWUDLWpVHWILQDOLVpVVRQWHQVXLWHHQYR\pVjODPpPRLUHYLGpRDYDQWG¶rWUH DIILFKpHVVXUOHPRQLWHXU &HSHQGDQWFHW\SHGHSLSHOLQHSUpVHQWHOHVSULQFLSDX[LQFRQYpQLHQWVVXLYDQWV • OHVGRQQpHVSUpVHQWHVHQWUHOHVpWDSHVGXSLSHOLQHVRQWWUqVSHXUpXWLOLVpHV • OD TXDQWLWp GH UHVVRXUFHV PDWpULHOOHV XWLOLVpHV VXELW G¶LPSRUWDQWHV YDULDWLRQV VHORQOHW\SHGHWUDLWHPHQWJUDSKLTXH VRXYHQWVRLWVRXVXWLOLVpHVVRLWVXUXWLOLVpHV  • OHMHXG¶LQVWUXFWLRQHWOHVW\SHVGHGRQQpHVVRQWOLPLWpV PDQTXHG¶LQVWUXFWLRQV VXUQRPEUHVHQWLHUVHWSUpFLVLRQHQYLUJXOHIORWWDQWHPDOGpILQLH  • OHVUpVXOWDWVSUpVHQWVHQPLOLHXGHSLSHOLQHQHSHXYHQWSDVrWUHpFULWVHQPpPRLUH SRXUrWUHUHOXVHQGpEXWGHSLSHOLQH • OHV UHVVRXUFHV VRQW OLPLWpHV HQ WHUPH GH UHJLVWUHV WH[WXUHV LQVWUXFWLRQV SDU VKDGHUHWF  &HV QRPEUHX[ SUREOqPHV RQW FRQGXLW j XQH DUFKLWHFWXUH WRWDOHPHQW QRXYHOOH EDVpHVXUOHSLSHOLQH'LUHFW;O¶DUFKLWHFWXUH*H)RUFH*38GLWH©XQLILpHª , 3UHPLqUHDUFKLWHFWXUHXQLILpHOHSURFHVVHXU*

, 3UpVHQWDWLRQ /¶DUFKLWHFWXUHGLWH ©XQLILpHªGHSUHPLqUHJpQpUDWLRQDpWpPLVHHQ°XYUHGDQV SOXVLHXUVSURFHVVHXUVJUDSKLTXHV WHOVTXHOH***** &HVGLIIpUHQWV SURFHVVHXUV JUDSKLTXHV SRVVpGDLHQW OD PrPH DUFKLWHFWXUH DSSHOpH DUFKLWHFWXUH 7HVOD  PDLV VH GLIIpUHQFLDLHQW SDU OH QRPEUH GH PXOWLSURFHVVHXUV XWLOLVDEOHV(QILQGH IDEULFDWLRQ j O¶LQWpULHXU GH FKDTXH SURFHVVHXU JUDSKLTXH OHV PXOWLSURFHVVHXUV QH VRQW SDV IRUFpPHQW WRXV RSpUDWLRQQHOV /HV SURFHVVHXUV JUDSKLTXHV VRQW GRQF WULpV SDU OH IDEULFDQWVHORQOHQRPEUHGHPXOWLSURFHVVHXUVRSpUDWLRQQHOV 'DQVFHWWHSDUWLHQRXVpWXGLHURQVOHSURFHVVHXUTXLPHWHQ°XYUHODWRWDOLWpGH FHWWH DUFKLWHFWXUH OH SURFHVVHXU JUDSKLTXH * XWLOLVp SRXU ODSUHPLqUHIRLVVXUOHV

 

FDUWHVJUDSKLTXHV*H)RUFH/¶DUFKLWHFWXUH*pWDLWSUpYXHSRXUIRQFWLRQQHUDYHF OHSLSHOLQHGHO¶$3,'LUHFW; 'DQVOHVSLSHOLQHVXWLOLVpVGDQVOHVDUFKLWHFWXUHVSUpFpGHQWHV SLSHOLQHVGHV$3, JUDSKLTXHV'LUHFW;HWDQWpULHXUV  FKDTXHpWDSHSRXYDLWUHQIHUPHUMXVTX¶jVRXV pWDSHV3DUVRQDUFKLWHFWXUHSLSHOLQHVKDGHUGLWH©XQLILpHªO¶RUJDQLVDWLRQGXSURFHVVHXU GH OD *H)RUFH  UpGXLW VLJQLILFDWLYHPHQW OH QRPEUH G¶pWDSHV GX SLSHOLQH GH O¶$3, 'LUHFW; SDUUDSSRUWDX[SLSHOLQHVSUpFpGHQWV /¶RUJDQLVDWLRQGXIOX[GHWUDLWHPHQW Q¶HVWSOXVIRUFpPHQWVpTXHQWLHOOH 'DQV OHV SUpFpGHQWHV DUFKLWHFWXUHV OHV XQLWpV GH FDOFXOV pWDLHQW DWWULEXpHV GH PDQLqUH IL[H XQ QRPEUH IL[H GH SURFHVVHXUV SDU WUDLWHPHQW  SRXU FKDTXH pWDSH GH WUDLWHPHQWHQWUDvQDQWSDUH[HPSOH VHORQO¶LPDJHjWUDLWHU  • VRLW XQH XWLOLVDWLRQ GH OD WRWDOLWp GHV XQLWpV GH FDOFXO GpGLpHV DX WUDLWHPHQW GH SL[HO DVVRFLpH j XQH VRXVXWLOLVDWLRQ GHV XQLWpV GH FDOFXO GpGLpHV DX WUDLWHPHQW GH VRPPHWV([JUDSKLVPHVFRQWHQDQWSHXGHILJXUHVJpRPpWULTXHV • VRLW XQH VRXVXWLOLVDWLRQ GHV XQLWpV GH FDOFXO GpGLpHV DX WUDLWHPHQW GH SL[HO DVVRFLpH j XQH XWLOLVDWLRQ WRWDOH GHV XQLWpV GH FDOFXO GpGLpHV DX WUDLWHPHQW GH VRPPHWV([GHVVLQVFRQWHQDQWEHDXFRXSGHILJXUHVJpRPpWULTXHV $YHF O¶DUFKLWHFWXUH XQLILpH OHV XQLWpV GH FDOFXO DWWULEXpHV j FKDTXH pWDSH GH WUDLWHPHQW VRQW VpOHFWLRQQpHV VHORQ OH W\SH GH WUDLWHPHQW j H[pFXWHU OHV GRQQpHV QpFHVVDLUHV j XQH pWDSH GX SLSHOLQH VRQW IRXUQLHV HQ HQWUpH GH SOXVLHXUV XQLWpV GH WUDLWHPHQW F°XUV HWOHVVRUWLHVVRQWpFULWHVHQUHJLVWUHVSXLVUpDOLPHQWpHVHQHQWUpHGHV XQLWpVGHWUDLWHPHQWSRXUOHWUDLWHPHQWGHO¶pWDSHVXLYDQWHGXSLSHOLQH $FKDTXHERXFOHOHVGRQQpHVVRQWGLVWULEXpHVGDQVOHVXQLWpVGHWUDLWHPHQWSXLV WUDLWpHVORUVG¶XQHpWDSHSXLVHOOHVVRQWUHQYR\pHVHWUHGLVWULEXpHVGHQRXYHDXHQHQWUpH GHVXQLWpVGHWUDLWHPHQWSRXUVXELUXQHDXWUHpWDSHGHWUDLWHPHQWHWDLQVLGHVXLWH&HV RSpUDWLRQV GLVWULEXWLRQ WUDLWHPHQW UHERXFODJH  VRQW HIIHFWXpHV MXVTX¶j FH TXH OH SL[HO VRLWWUDQVPLVDXVRXVV\VWqPH523 /H PRGqOH GH SLSHOLQH VpTXHQWLHO DYDQW 'LUHFW;   pWDLW DSSHOp ©PRGqOH GLVFUHWªFDUFKDTXHpWDSHGHWUDLWHPHQWpWDLWELHQVpSDUpHGHVDXWUHV/HQRXYHDXPRGqOH GH SLSHOLQH HVW DSSHOp ©PRGqOH XQLILpª FDU WRXW F°XU GH WUDLWHPHQW SHXW WUDLWHU LQGLIIpUHPPHQW O¶XQH GHV WURLV pWDSHV SDUDOOpOLVDEOHV TXL OXL HVW DWWULEXpH VRPPHW JpRPpWULHRXSL[HO &KDFXQHGHVWURLVpWDSHVGHWUDLWHPHQW VRPPHWJpRPpWULHSL[HO  GX SLSHOLQH 'LUHFW; UHSUpVHQWpVXUOD)LJXUH SHXWGRQFrWUHWUDLWpHSDUGHVF°XUVD\DQWGpMj VHUYLSRXUG¶DXWUHVpWDSHV&¶HVWODSDUWLHXQLILpH /¶DPpOLRUDWLRQFRQVLGpUDEOHHQWHUPHVGHIOH[LELOLWpHWGHTXDQWLWpGHPpPRLUHGH O¶DUFKLWHFWXUH * SHUPHW SRXU OD SUHPLqUH IRLV GDQV O¶KLVWRLUH GHV FDUWHV JUDSKLTXHV G¶HQYLVDJHU XQH XWLOLVDWLRQ DXWUH TXH JUDSKLTXH GHV SURFHVVHXUV HQ SDUWLFXOLHU XQH XWLOLVDWLRQ SRXU OD UpDOLVDWLRQ GH FDOFXOV GpOHVWDQW DLQVL OH &38 GH WRXV OHV FDOFXOV SDUDOOpOLVDEOHV &¶HVW SRXUTXRL GpVRUPDLV GHX[ PRGHV G¶XWLOLVDWLRQ GX *38 VRQW SRVVLEOHV GpILQLVVDQW DLQVL GHX[ SLSHOLQHV SRVVLEOHV FKDFXQ RUJDQLVp DXWRXU G¶XQH VWUXFWXUH FRPPXQH EDVpH VXU XQ WDEOHDX PRGXODEOH GH SURFHVVHXUV RX 63$ 6FDODEOH 3URFHVVRU$UUD\ >@&HVGHX[SLSHOLQHVSRVVLEOHVSHUPHWWHQWGHX[PRGHVG¶XWLOLVDWLRQ GX*38 • XQPRGHJUDSKLTXH )LJXUH  • XQPRGHFDOFXOV )LJXUH  1RXVpWXGLHURQVGRQFFHVGHX[SLSHOLQHVVpSDUpPHQW

 

• OHSLSHOLQHJUDSKLTXHSRXUIDLUHOHOLHQDYHFOHSLSHOLQHGHO¶$3,'LUHFW; • OH SLSHOLQH GH FDOFXO FRPSRUWDQW GHV PRGXOHV FRPPXQV DYHF OH SLSHOLQH JUDSKLTXH

, /HSLSHOLQHJUDSKLTXH /HSLSHOLQHJUDSKLTXHGHO¶DUFKLWHFWXUH*HVWEDVpVXUOHSLSHOLQH'LUHFW; 1RXVFRPPHQFHURQVGRQFSDUXQEUHIDSHUoXGXSLSHOLQH'LUHFW;SXLVQRXVYHUURQV GHTXHOOHPDQLqUHLOHVWPLVHQ°XYUHGDQVO¶DUFKLWHFWXUH* &RPPHOHYHXWO¶DUFKLWHFWXUHXQLILpHWRXWFDOFXORXWRXWHpWDSHSDUDOOpOLVDEOHHVW DWWULEXpHjGHVSURFHVVHXUVFKRLVLVHQIRQFWLRQGXW\SHGHWkFKHjH[pFXWHU/HVF°XUVGH WUDLWHPHQWSHXYHQWGRQFrWUHPLVjFRQWULEXWLRQSOXVLHXUVIRLVDILQG¶H[pFXWHUSOXVLHXUV pWDSHVGXSLSHOLQHGHO¶$3,'LUHFW;UHSUpVHQWpHVXUOD)LJXUH 6XU OD )LJXUH  OHV pWDSHV WUDLWpHV SDU GHV F°XUV VRQW UHSUpVHQWpHV SDU GHV ©DUURQGLVª /HV pWDSHV UHSUpVHQWpHV SDU GHV UHFWDQJOHV QH VRQW SDV H[pFXWpHV SDU GHV F°XUVPDLVSDUGHVPRGXOHVVSpFLDOLVpVGXSURFHVVHXUJUDSKLTXH

 5HVVRXUFHVPpPRLUH %XIIHU7H[WXUHHW %XIIHUGH&RQVWDQWHV  $VVHPEODJHG¶HQWUpH

7UDLWHPHQWGHVRPPHW

7UDLWHPHQWGHJpRPpWULH

6RUWLHGHIOX[

5DVWpULVDWLRQ

7UDLWHPHQWGHSL[HO

,QWpJUDWLRQGHVRUWLH

 )LJXUH3LSHOLQH'LUHFW;>@ /HVGLIIpUHQWHVpWDSHVGHOD)LJXUHVRQWGpFULWHVFLGHVVRXV • $VVHPEODJHG¶HQWUpHOHEXWFHWWHpWDSHHVWG¶DVVHPEOHUWURLVVRPPHWV DSSHOpV SULPLWLYHV HQXQWULDQJOHpOpPHQWDLUH>@

 

• 7UDLWHPHQWGHVRPPHWOHEXWGHFHWWHpWDSHHVWGHWUDQVIRUPHUOHVVRPPHWVGH WULDQJOHGHO HVSDFHYLUWXHO'HQFRRUGRQQpHV'TXLSXLVVHQWrWUHDIILFKpHVVXUXQ pFUDQ • 7UDLWHPHQW GH JpRPpWULH FHWWH pWDSH SHUPHW GH PRGLILHU OD JpRPpWULH GH FKDTXHWULDQJOHHWpYHQWXHOOHPHQWGHFUpHUGHQRXYHDX[WULDQJOHV&HWWHpWDSHWUDLWH GHV SULPLWLYHV HQWLqUHV OHV WURLV VRPPHWV G¶XQ WULDQJOH  &KDTXH SULPLWLYH SHXW LQFOXUHOHVGRQQpHVGHVRPPHWGHVSULPLWLYHVYRLVLQHVF HVWjGLUHDXPD[LPXPWURLV VRPPHWVHQSOXV • 6RUWLH GH IOX[ FHWWH pWDSH HQYRLH GH PDQLqUH FRQWLQXH OHV GRQQpHV GHV SULPLWLYHVGXSLSHOLQHYHUVODPpPRLUHDSUqVOHWUDLWHPHQWGHJpRPpWULH/HVGRQQpHV GpYLpHV YHUV OD PpPRLUH SHXYHQW rWUH UDPHQpHV GDQV OH SLSHOLQH FRPPH GRQQpHV G¶HQWUpHRXELHQOXHVSDUOH&38>@ • 5DVWpULVDWLRQ OHV FRRUGRQQpHV GH WRXV OHV SL[HOV FRQVWLWXDQW OD VXUIDFH GX WULDQJOHVRQWFDOFXOpHVjSDUWLUGHVFRRUGRQQpHVGHVVRPPHWVGXWULDQJOH>@&HWWH pWDSHVHUWjFRQYHUWLUOHVSULPLWLYHVHQXQHLPDJHGHWUDPH FRPSRVpHGHSL[HOV  • 7UDLWHPHQWGHSL[HOFHWWHpWDSHDSRXUEXWGHFDOFXOHUODFRXOHXUGHFKDTXH SL[HOGHODVXUIDFHGXWULDQJOHHQIRQFWLRQGHO pFODLUDJHGHVRPEUHVHWGHODWH[WXUH DSSOLTXpVjXQREMHWGDQVXQHVFqQH8QHWH[WXUHHVWXQHLPDJH'DSSOLTXpHjXQ YROXPH'>@ • ,QWHJUDWLRQGHVRUWLHOHVLPDJHVQRQYLVLEOHVVRQWpOLPLQpHVGDQVFHWWHpWDSH FRPPH SDU H[HPSOH ORUVTX XQH VFqQH GpSDVVH OHV OLPLWHV GH O pFUDQ RX ELHQ TX XQ SHUVRQQDJHRFFXOWHXQHSDUWLHGHODVFqQH/HVHIIHWVGHWUDQVSDUHQFHSOXVRXPRLQV SURQRQFpHVRQWWUDLWpVSDUFHWWHpWDSH H[REMHWVGDQVO HDXULGHDX[QXDJHVHWF /D FRXOHXUILQDOHGHFKDTXHSL[HOHVWGpWHUPLQpHjFHWWHpWDSH  +{WH &38 0RGXOHV UpVHUYpVDX WUDLWHPHQW $VVHPEOHXUG¶HQWUpH JUDSKLTXH 5DVWpULVDWLRQ

0XOWLSURFHVVHXU $WWULEXWLRQGHWkFKHV $WWULEXWLRQGHWkFKHV $WWULEXWLRQGHWkFKHV VRPPHW GHJpRPpWULH SL[HO &°XU

73& 73& 73& 73& 73& 73& 73& 73& 3URFHVVHXUGHWkFKHV

0pPRLUH 0pPRLUH 0pPRLUH 0pPRLUH 0pPRLUH 0pPRLUH 0pPRLUH 0pPRLUH FDFKH/ FDFKH/ FDFKH/ FDFKH/ FDFKH/ FDFKH/ FDFKH/ FDFKH/

523 523 523 523 523 523 / / / / / /

%XIIHUGH %XIIHUGH %XIIHUGH %XIIHUGH %XIIHUGH %XIIHUGH WUDPH WUDPH WUDPH WUDPH WUDPH WUDPH  

 

)LJXUH3LSHOLQHGHWUDLWHPHQWJUDSKLTXHGXSURFHVVHXU*>@ 6XU OD )LJXUH  RQ SHXW REVHUYHU OH SLSHOLQH GH WUDLWHPHQW JUDSKLTXH GX SURFHVVHXU*F HVWjGLUHODIDoRQGRQWHVWPLVHQ°XYUHOHSLSHOLQHGHO¶$3,'LUHFW; GDQVOHSURFHVVHXU*6XUFHVFKpPD • RQUHWURXYHOHVpWDSHVGXSLSHOLQH'LUHFW;TXLVRQWH[pFXWpHVHQGHKRUVGHV F°XUVGDQVGHVPRGXOHVVSpFLDOLVpV $VVHPEODJHG¶HQWUpH5DVWpULVDWLRQ  • RQQHUHWURXYHSDVOHVDXWUHVpWDSHV WUDLWHPHQWGHVRPPHWGHJpRPpWULHHWGH SL[HO FDUHOOHVVRQWH[pFXWpHVSDUOHVF°XUV(OOHVQHVRQWGRQFSDVYLVLEOHV6HXOHV OHVPRGXOHVG¶DWWULEXWLRQGHVWkFKHVDVVRFLpHVVRQWYLVLEOHV /D FRUUHVSRQGDQFH HQWUH OH SLSHOLQH 'LUHFW;  HW OH SLSHOLQH JUDSKLTXH GX SURFHVVHXU*HVWGpFULWHGDQVOHVOLJQHVTXLVXLYHQW • 6XUOD)LJXUHOHSLSHOLQHGHWUDLWHPHQWJUDSKLTXHFRPPHQFHSDUO¶HQYRLSDU OH&38GHVGRQQpHVQpFHVVDLUHVjO¶DVVHPEOHXUG¶HQWUpHGX*38 • /¶DVVHPEOHXU G¶HQWUpH HVW XQ PRGXOH *38 VSpFLDOLVp TXL H[pFXWH OD SUHPLqUH pWDSHGHWUDLWHPHQWGXSLSHOLQH'LUHFW;GHOD)LJXUH • 3XLVOHWUDLWHPHQWGHVRPPHWGXSLSHOLQH'LUHFW;HVWGpFRXSpHQWkFKHVTXL VRQWDWWULEXpHVDX[SURFHVVHXUVSDUO¶pWDSHG¶DWWULEXWLRQGHWkFKHVVRPPHW • /HV SURFHVVHXUV FKRLVLV H[pFXWHQW OH WUDLWHPHQW GH VRPPHW SXLV HQYRLHQW OHV GRQQpHVWUDLWpHVDXSURFHVVHXUGHWkFKHVTXLVDLWjTXHOQLYHDXGXSLSHOLQH'LUHFW; VHWURXYHOHWUDLWHPHQWJUDSKLTXH • /HSURFHVVHXUGHWkFKHVFRQQDvWOHVGLIIpUHQWHVpWDSHVjH[pFXWHUGDQVOHSLSHOLQH 'LUHFW;HWGpFLGHjTXHOPRGXOHGHWUDLWHPHQWVHURQWHQYR\pHVOHVGRQQpHVVHORQ OHV pWDSHV GpMj H[pFXWpHV GDQV OD VpTXHQFH GH WUDLWHPHQWV 'DQV OH FDV R VHXO OH WUDLWHPHQWGHVRPPHWDpWpH[pFXWpOHSURFHVVHXUGHWkFKHVWUDQVPHWOHVGRQQpHVj O¶pWDSHG¶DWWULEXWLRQGHWkFKHVGHJpRPpWULH • /HWUDLWHPHQWGHJpRPpWULHHVWHQVXLWHGpFRXSpHQWkFKHVTXLVRQWDWWULEXpHVDX[ SURFHVVHXUVSDUO¶pWDSHG¶DWWULEXWLRQGHWkFKHVGHJpRPpWULH • /HV SURFHVVHXUV FKRLVLV H[pFXWHQW OH WUDLWHPHQW GH JpRPpWULH GX SLSHOLQH 'LUHFW;SXLVUHQYRLHQWOHVGRQQpHVWUDLWpHVDXSURFHVVHXUGHWkFKHV • /HSURFHVVHXUGHWkFKHVHQYRLHHQVXLWHOHVGRQQpHVDXPRGXOHGHUDVWpULVDWLRQ • /HPRGXOHGHUDVWpULVDWLRQH[pFXWHO¶pWDSHGHUDVWpULVDWLRQGXSLSHOLQH'LUHFW; 3XLVOHVGRQQpHVVRQWHQYR\pHVDXPRGXOHG¶DWWULEXWLRQGHWkFKHVSL[HO • /HWUDLWHPHQWGHSL[HOHVWGpFRXSpHQWkFKHVTXLVRQWDWWULEXpHVDX[SURFHVVHXUV SDUO¶pWDSHG¶DWWULEXWLRQGHWkFKHVSL[HO • /HVSURFHVVHXUVFKRLVLVH[pFXWHQWOHWUDLWHPHQWGHSL[HOGXSLSHOLQH'LUHFW; SXLVUHQYRLHQWOHVGRQQpHVWUDLWpHVDXPRGXOH523 • /HPRGXOH523 5DVWHU2SHUDWLRQV H[pFXWHO¶pWDSHG¶LQWpJUDWLRQGHVRUWLHGX SLSHOLQH'LUHFW; • /HV GRQQpHV WUDLWpHV VRQW DORUV HQYR\pHV j OD PpPRLUH YLGpR DYDQW G¶rWUH DIILFKpHVVXUOHPRQLWHXU %LHQHQWHQGXORUVTX¶XQPRGXOHGHWUDLWHPHQWRXORUVTXHTX¶XQHSDUWLHGHVF°XUV IDLWVXELUXQHpWDSHGXSLSHOLQH'LUHFW;jXQORWGHGRQQpHVOHVDXWUHVPRGXOHVGH WUDLWHPHQW RX OHV DXWUHV F°XUV SHXYHQW WUqV ELHQ WUDLWHU G¶DXWUHV ORWV GH GRQQpHV HQ SDUDOOqOHMXVWLILDQWDLQVLOHWHUPHGHSLSHOLQH /H SLSHOLQH JUDSKLTXH EDVp VXU OH SLSHOLQH 'LUHFW;  HVW FHQWUp VXU XQH DUFKLWHFWXUH GLWH 63$ /¶DUFKLWHFWXUH 63$ FRQVLVWH HQ XQ FHUWDLQ QRPEUH GH EORFV GH WUDLWHPHQWGH • WH[WXUHRX73& 7H[WXUH3URFHVVLQJ&OXVWHU SRXUOHPRGHWUDLWHPHQWJUDSKLTXH

 

• WkFKHVRX73& 7KUHDG3URFHVVLQJ&OXVWHU SRXUOHPRGHFDOFXOSDUDOOqOH /HQRPEUHGH73&SHXWDOOHUGHj'HPrPHFKDTXH73&HVWFRPSRVpG¶XQ FHUWDLQVQRPEUHGHPXOWLSURFHVVHXUVGHIOX[RX60 6WUHDPLQJ0XOWLSURFHVVRU SRXYDQW DOOHUGHj EORFVGHKXLWFDUUpVYHUWVVXUOD)LJXUH  &KDTXHPXOWLSURFHVVHXUFRQWLHQWKXLWF°XUVUHSUpVHQWpVVXUOD)LJXUHHWVXUOD )LJXUHSDUGHVFDUUpVYHUWV/HVF°XUVVRQWpJDOHPHQWDSSHOpV©SURFHVVHXUGHIOX[ª RX 63 6WUHDPLQJ 3URFHVVRU  RX HQFRUH ©SURFHVVHXU GH WkFKHª 7KUHDG 3URFHVVRU  &KDTXH PXOWLSURFHVVHXU FRQWLHQW pJDOHPHQW GHV PRGXOHV GH WUDLWHPHQW GpGLpV DX WUDLWHPHQWJUDSKLTXH (QGpEXWGHPpPRLUHOH3&XWLOLVppWDLWpTXLSpG¶XQHFDUWHJUDSKLTXH*H)RUFH *6 /DFDUWH*H)RUFH*6H[LVWHHQYHUVLRQVXQHYHUVLRQFRPSRUWDQW • FRHXUV XQVHXO73&GHGHX[PXOWLSURFHVVHXUV DYHFKRUORJHGH0+] • FRHXUV XQVHXO73&FRPSRUWDQWXQVHXOPXOWLSURFHVVHXU DYHFXQHKRUORJHGH 0+] &¶HVWODYHUVLRQFRPSRUWDQWVHXOPXOWLSURFHVVHXUGHFRHXUVTXLpWDLWXWLOLVpH DXGpEXWGHFHSURMHW&HSHQGDQWDSUqVXQHpWXGHGHVHVFDUDFWpULVWLTXHVLOV¶HVWDYpUp TXHFHWWHFDUWHpWDLWSDUWLFXOLqUHPHQWSHXSHUIRUPDQWHSDUUDSSRUWDX[FDUWHVH[LVWDQWHV 3DUFRQVpTXHQWFHWWHFDUWHDpWpUHPSODFpHSDUXQHFDUWHSOXVSHUIRUPDQWHOD*H)RUFH *7; /D FDUWH *7;  HVW EDVpH VXU OH SURFHVVHXU *) TXL XWLOLVH  GHV  F°XUVTX¶RIIUHO¶DUFKLWHFWXUH)HUPLŒ/¶DUFKLWHFWXUH)HUPLVHUDGpWDLOOpHSOXVORLQGDQV FHFKDSLWUH

, /HSLSHOLQHGHFDOFXO 6XUOD)LJXUHRQFRQVWDWHTXHOHVEORFVGHWUDLWHPHQW 73& HWO¶DVVHPEOHXU G¶HQWUpHXWLOLVpVVRQWOHVPrPHVTXHFHX[GXSLSHOLQHJUDSKLTXH2QFRQVWDWHDXVVLXQH UpGXFWLRQLPSRUWDQWHGXQRPEUHG¶pWDSHVFHTXLHVWQRUPDOpWDQWGRQQpTXHFHVRQWGHV FDOFXOVTXLVRQWWUDLWpVSDUFHSLSHOLQHHWQRQSOXVGHVLPDJHVjDIILFKHU 

 

+{WH &38

$VVHPEOHXUG¶HQWUpH

*HVWLRQQDLUHGHVWkFKHV

73&73&73& 73& 73&73& 73& 73&

&DFKHGH &DFKHGH &DFKHGH &DFKHGH &DFKHGH &DFKHGH &DFKHGH &DFKHGH GRQQpHV GRQQpHV GRQQpHV GRQQpHV GRQQpHV GRQQpHV GRQQpHV GRQQpHV SDUDOOqOHV SDUDOOqOHV SDUDOOqOHV SDUDOOqOHV SDUDOOqOHV SDUDOOqOHV SDUDOOqOHV SDUDOOqOHV

7H[WXUH 7H[WXUH 7H[WXUH 7H[WXUH 7H[WXUH 7H[WXUH 7H[WXUH 7H[WXUH

&KDUJHPHQW &KDUJHPHQW &KDUJHPHQW &KDUJHPHQW &KDUJHPHQW &KDUJHPHQW 6WRFNDJH 6WRFNDJH 6WRFNDJH 6WRFNDJH 6WRFNDJH 6WRFNDJH

0pPRLUHJOREDOH  )LJXUH3LSHOLQHGHWUDLWHPHQWGHFDOFXOVGXSURFHVVHXU*>@ qUHJpQpUDWLRQ  , $UFKLWHFWXUHXQLILpHVHFRQGHJpQpUDWLRQOHSURFHVVHXU*7 'H PrPH TXH SRXU O¶DUFKLWHFWXUH GHV SURFHVVHXUV JUDSKLTXHV GH SUHPLqUH JpQpUDWLRQO¶DUFKLWHFWXUHXQLILpHVHFRQGHJpQpUDWLRQDpWpPLVHHQ°XYUHGDQVSOXVLHXUV SURFHVVHXUV JUDSKLTXHV WHOV TXH OH *DE *7DE *7 *7 *7  &HV GLIIpUHQWVSURFHVVHXUVJUDSKLTXHVSRVVpGDLHQWODPrPHDUFKLWHFWXUHPDLVQ¶XWLOLVDLHQWSDV WRXMRXUV OD WRWDOLWp GHV SRVVLELOLWpV GHO¶DUFKLWHFWXUH 'DQV FHWWH SDUWLH QRXV pWXGLHURQV O¶DUFKLWHFWXUH GX SURFHVVHXU TXL XWLOLVH OD WRWDOLWp GHV SRVVLELOLWpV GH FHWWH QRXYHOOH JpQpUDWLRQG¶DUFKLWHFWXUHOH*7TXLDpWpXWLOLVpSRXUODSUHPLqUHIRLVVXUODFDUWH JUDSKLTXH*7; /¶DUFKLWHFWXUHGHVSURFHVVHXUVJUDSKLTXHV19,',$GHVHFRQGHJpQpUDWLRQHVWWUqV VLPLODLUH j FHOOH GHV SURFHVVHXUV GH SUHPLqUH JpQpUDWLRQ &HSHQGDQW DYHF FHWWH qPH JpQpUDWLRQRQHPSORLHEHDXFRXSSOXVOHWHUPHG¶DUFKLWHFWXUHTXHFHOXLGHSLSHOLQHFDUOHV QRPEUHXVHV LQWHUDFWLRQV HW ERXFOHV HQWUH PRGXOHV QH SHUPHWWHQW SOXV GH GpILQLU XQH GLUHFWLRQ XQLTXH GH IRQFWLRQQHPHQW 2Q Q¶D SOXV GH IOqFKHV LQGLTXDQW OHV VHQV GH SDUFRXUV GHV PRGXOHV 6HXO OH JHVWLRQQDLUH GH WkFKH FRQQDvW O¶RUGUH GDQV OHTXHO OHV GLIIpUHQWHVpWDSHVGRLYHQWrWUHH[pFXWpHVHWHQIRQFWLRQGHVpWDSHVHQFRXUVGLVWULEXHGHV WkFKHVDX[SURFHVVHXUVRXDX[PRGXOHVVSpFLDOLVpV/HVpWDSHVVRQW • OHVpWDSHVGXSLSHOLQH'LUHFW;SRXUOHWUDLWHPHQWJUDSKLTXH

 

• OHVLQVWUXFWLRQVG¶XQSURJUDPPHSRXUOHWUDLWHPHQWGHFDOFXOV 2QDGRQFXQHDUFKLWHFWXUHUpVHUYpHDXWUDLWHPHQWJUDSKLTXHHWXQHDUFKLWHFWXUH UpVHUYpH DX WUDLWHPHQW GH WkFKHV GH FDOFXO 'DQV FHWWH SDUWLH QRXV Q¶pWXGLHURQV TXH O¶DUFKLWHFWXUHGHFDOFXOO¶DUFKLWHFWXUHJUDSKLTXHQ¶pWDQWSDVXWLOHSRXUODFRPSUpKHQVLRQ GH&8'$Œ /¶DUFKLWHFWXUH GH VHFRQGH JpQpUDWLRQ PLVH HQ °XYUH GDQV OHV SURFHVVHXUV JUDSKLTXHVGHODVpULH*H)RUFH*7; HVWEDVpHVXUXQHDUFKLWHFWXUH63$pWHQGXH DPpOLRUpHHWUpRUJDQLVpH>@ /D QRXYHOOH DUFKLWHFWXUH 63$ GH VHFRQGH JpQpUDWLRQ GHV *H)RUFH *7;  DPpOLRUHODSHUIRUPDQFHSDUUDSSRUWDX[PRGqOHV*HW*GHODJpQpUDWLRQSUpFpGHQWH VXUGHX[QLYHDX[ • /HQRPEUHGHPXOWLSURFHVVHXUVSDU73&SDVVHGHGHX[jWURLV • /HQRPEUHGH73&SDUSXFHJUDSKLTXHSDVVHGHj&HVGHX[FKDQJHPHQWV DERXWLVVHQWjXQHVWUXFWXUHJOREDOHGHF°XUV 'DQV FHWWH QRXYHOOH DUFKLWHFWXUH RQ D WRXMRXUV XQ JHVWLRQQDLUH GH WkFKH TXL SODQLILHOHVWkFKHVGDQVOHV73& 'DQV FHWWH DUFKLWHFWXUH OD PpPRLUH ORFDOH SDUWDJpH HVW GpVRUPDLV LQFOXVH GDQV FKDTXH PXOWLSURFHVVHXU GX 73& DORUV TXH GDQV O¶DUFKLWHFWXUH GH SUHPLqUH JpQpUDWLRQ FHWWHPpPRLUHSDUWDJpHpWDLWFRPPXQHjGHX[PXOWLSURFHVVHXUVG¶XQ73& /H 7DEOHDX  SUpVHQWH XQ UpVXPp GHV SULQFLSDOHV GLIIpUHQFHV HQWUH DUFKLWHFWXUH XQLILpHGHSUHPLqUHHWGHVHFRQGHJpQpUDWLRQ 7DEOHDX'LIIpUHQFHVG¶DUFKLWHFWXUHHQWUHOHVSURFHVVHXUVGHVVpULHV*H)RUFHHW*H)RUFH*7;

*38 1RPEUHGH 1RPEUHGHF°XU 1RPEUH 1RPEUH FRUUHVSRQGDQWj PXOWLSURFHVVHXUV 60  SDU GHF°XUV GH73& ODVpULH SDU73& PXOWLSURFHVVHXU WRWDO *H)RUFHHW     *H)RUFH*7;     , $UFKLWHFWXUH)HUPLŒSUHPLqUHPLVHHQ°XYUHDYHFOHSURFHVVHXU*) (QOHGHUQLHU*38GH19,',$QRPPp*)HVWOHSUHPLHUSURFHVVHXU JUDSKLTXHEDVpVXUO¶DUFKLWHFWXUH)HUPLŒ>@ /¶DUFKLWHFWXUH)HUPLŒHVWPLVHHQ°XYUHGDQVSOXVLHXUVSURFHVVHXUVJUDSKLTXHV WHOV TXH *) *) *) *)  &HV GLIIpUHQWV SURFHVVHXUV JUDSKLTXHV SRVVpGHQWODPrPHDUFKLWHFWXUHPDLVQ¶XWLOLVHQWSDVWRXMRXUVODWRWDOLWpGHVSRVVLELOLWpVGH O¶DUFKLWHFWXUH& HVWjGLUHTX¶XQHSDUWLHVHXOHPHQWGHVSURFHVVHXUVHVWGLVSRQLEOH'DQV FHWWH SDUWLH QRXV pWXGLHURQV O¶DUFKLWHFWXUH G¶XQ SURFHVVHXU TXL XWLOLVH OD WRWDOLWp GHV SRVVLELOLWpVGHFHWWHQRXYHOOHDUFKLWHFWXUHOHSURFHVVHXU*) &RPPH SRXU OHV DUFKLWHFWXUHV SUpFpGHQWHV OHV SURFHVVHXUV *)RQWGHX[ PRGHVGHIRQFWLRQQHPHQWSRVVLEOH • WUDLWHPHQWJUDSKLTXHXWLOLVDQWO¶DUFKLWHFWXUHJUDSKLTXHGXSURFHVVHXU • WUDLWHPHQWGHFDOFXOXWLOLVDQWO¶DUFKLWHFWXUHGHFDOFXOGXSURFHVVHXU /¶DUFKLWHFWXUHJUDSKLTXHHVWEDVpHVXUOHSLSHOLQHGHO¶$3,JUDSKLTXH'LUHFW; 1RXVQ¶HQWUHURQVSDVGDQVOHVGpWDLOVGHO¶DUFKLWHFWXUHJUDSKLTXHGX*)pWDQW GRQQp TXH FHWWH DUFKLWHFWXUH Q¶HVW SDV XWLOLVpH SRXU OH WUDLWHPHQW GH FDOFXOV 1RXV

  pWXGLHURQVGRQFXQLTXHPHQWO¶DUFKLWHFWXUHGHFDOFXOGRQWODPDMHXUHSDUWLHHVWFRPPXQH DYHFO¶DUFKLWHFWXUHJUDSKLTXH /¶DUFKLWHFWXUHGHFDOFXOG¶XQSURFHVVHXU*)HVWEDVpHVXUXQQRPEUHYDULDEOH GHPXOWLSURFHVVHXUVRX60 6WUHDPLQJ0XOWLSURFHVVRU  8Q SURFHVVHXU *) PHW HQ °XYUH VHL]H PXOWLSURFHVVHXUV &KDFXQGHV SURFHVVHXUV JUDSKLTXHV EDVpV VXU O¶DUFKLWHFWXUH GX SURFHVVHXU *) FRQWLHQW GRQF GLIIpUHQWHVFRQILJXUDWLRQVGHPXOWLSURFHVVHXUV3DUH[HPSOHODFDUWHJUDSKLTXHXWLOLVpH GDQVOHFDGUHGHFHPpPRLUH *7; HVWEDVpHVXUXQSURFHVVHXUGHW\SH*)PDLV QHGLVSRVHTXHGHPXOWLSURFHVVHXUVVXUOHVSRVVLEOHV &KDTXH PXOWLSURFHVVHXU 60  FRPSRUWH  SURFHVVHXUV &8'$ RX F°XUV±XQH FRQFHQWUDWLRQ TXDWUH IRLV VXSpULHXUH j FHOOHV GHV DUFKLWHFWXUHV DQWpULHXUHV GH PXOWLSURFHVVHXUV &KDTXH F°XU GLVSRVH G¶XQH XQLWp DULWKPpWLTXH HW ORJLTXH $/8  FRPSRVpHGHGHX[XQLWpVGHFDOFXOXQHXQLWpGHFDOFXOSRXUODPDQLSXODWLRQGHVQRPEUHV  • HQWLHUV • HQYLUJXOHIORWWDQWH &KDFXQHGHFHVGHX[XQLWpVGHFDOFXOIDLWSDUWLHG¶XQSLSHOLQH 'DQVOHVDUFKLWHFWXUHVSUpFpGHQWHVOHV*38XWLOLVDLHQWODQRUPH,((( SRXUO¶DULWKPpWLTXHYLUJXOHIORWWDQWH$ODGLIIpUHQFHGHVHVSUpGpFHVVHXUVOH*)PHW HQ°XYUHODQRXYHOOHQRUPHYLUJXOHIORWWDQWH,(((GLVSRVDQWGHO¶LQVWUXFWLRQ PXOWLSOLFDWLRQDGGLWLRQ IXVLRQQpH RX )0$ )XVHG 0XOWLSO\$GG  SRXU O¶DULWKPpWLTXH PDQLSXODQWGHVQRPEUHVSRXYDQWrWUHGHW\SH • VLPSOHSUpFLVLRQ • GRXEOHSUpFLVLRQ /HV LQVWUXFWLRQV 0$' HW )0$ H[pFXWHQW WRXWHV OHV GHX[ OH SURGXLW GH GHX[ QRPEUHVVXLYLGHO¶DGGLWLRQG¶XQqPHQRPEUHDYHFOHUpVXOWDWGXSURGXLW/DGLIIpUHQFH HQWUHOHVGHX[HVWTXHFRQWUDLUHPHQWjO¶LQVWUXFWLRQ0$'O¶LQVWUXFWLRQ)0$QHWURQTXH SDVOHVELWVHQWURSGXUpVXOWDWGXSURGXLWFHTXLGRQQHXQHSUpFLVLRQELHQPHLOOHXUH 'DQV O¶DUFKLWHFWXUH )HUPL *)  O¶XQLWp G¶LQVWUXFWLRQ PXOWLWkFKH 6,07 pYRTXpHGDQVOHSDUDJUDSKH,VHFRPSRVHGHGHX[HQVH PEOHVFRPSUHQDQWFKDFXQ • XQSODQLILFDWHXUGHZDUSV ZDUSVFKHGXOHU  • XQHXQLWpGHUpSDUWLWLRQ GLVSDWFKXQLW  &KDTXHPXOWLSURFHVVHXUFRPSUHQGGHX[SODQLILFDWHXUVGHZDUSVHWGHX[XQLWpVGH UpSDUWLWLRQ G¶LQVWUXFWLRQV SHUPHWWDQW DLQVL j GHX[ ZDUSV G¶rWUH DWWULEXpV HW H[pFXWpV VLPXOWDQpPHQW &H GRXEOH SODQLILFDWHXU GH ZDUSV )HUPLŒ VpOHFWLRQQHGHX[ZDUSVHW DWWULEXHXQHLQVWUXFWLRQGHFKDTXHZDUSjXQJURXSHGHF°XUV XQLWpVG¶H[pFXWLRQ  XQLWpVGHFKDUJHPHQWVWRFNDJHRXTXDWUH6)8>@ /D)LJXUHPRQWUH • O¶DUFKLWHFWXUHLQWHUQHG¶XQPXOWLSURFHVVHXU)HUPL DXFHQWUH  • O¶DUFKLWHFWXUHG¶XQGHVF°XUVG¶XQPXOWLSURFHVVHXU jJDXFKH  • XQGHVPXOWLSURFHVVHXUVGHOD)LJXUH jGURLWH 

 

 60 0pPRLUHFDFKHG¶LQVWUXFWLRQ 3ODQLILFDWHXU GH 3ODQLILFDWHXU GH ZDUS ZDUS 8QLWpGHUpSDUWLWLRQ 8QLWpGHUpSDUWLWLRQ

&°XU&8'$ )LFKLHUGHUHJLVWUHV [ELWV  3RUWGHUpSDUWLWLRQ /'67 &ROOHFWHXUG¶RSpUDQGH &°XU &°XU &°XU &°XU /'67 6)8 /'67 &°XU &°XU &°XU &°XU 8QLWpYLUJXOH 8QLWpQRPEUH /'67 IORWWDQWH HQWLHU /'67 &°XU F°XU &°XU &°XU /'67 6)8 4XHXHGHUpVXOWDWV /'67 &°XU &°XU &°XU &°XU /'67 /'67 &°XU &°XU &°XU &°XU /'67 6)8 /'67 &°XU &°XU &°XU &°XU /'67 /'67 &°XU &°XU &°XU &°XU 60H[WUDLWGH /'67 O¶DUFKLWHFWXUH 6)8 /'67 GHFDOFXO &°XU &°XU &°XU &°XU /'67

5pVHDXG¶LQWHUFRQQH[LRQ

0pPRLUHSDUWDJpH.R&DFKH/

0pPRLUHFDFKHXQLIRUPH  )LJXUH$UFKLWHFWXUHG¶XQPXOWLSURFHVVHXU)HUPLŒ /DPpPRLUHSDUWDJpH • SHUPHWDX[WkFKHVjO¶LQWpULHXUG¶XQPrPHEORFGHWkFKHVGHFRRSpUHU • IDFLOLWHXQHODUJHUpXWLOLVDWLRQGHVGRQQpHVVXUSXFH • UpGXLWFRQVLGpUDEOHPHQWOHWUDILFKRUVSXFH /HV SURFHVVHXUV * HW *7 GH O¶DUFKLWHFWXUH 7HVOD SRVVqGHQW  NR GH PpPRLUH SDUWDJpH SDU PXOWLSURFHVVHXU 'DQV O¶DUFKLWHFWXUH )HUPLŒ FKDTXH PXOWLSURFHVVHXUSRVVqGHNRGHPpPRLUHVXUSXFHTXLSHXWrWUHFRQILJXUpHHQ • NRGHPpPRLUHSDUWDJpHDVVRFLpVDYHFNRGHPpPRLUHFDFKH/ RXHQ • NRGHPpPRLUHSDUWDJpHDVVRFLpVDYHFNRGHPpPRLUHFDFKH/ /D)LJXUHUHSUHQGSRXUFKDTXHPXOWLSURFHVVHXUXQHUHSUpVHQWDWLRQFRPSDFWH WHOOHTXHFHOOHSUpVHQWpHVXUODSDUWLHGURLWHGHOD)LJXUH&RPPHOHPRQWUHOD)LJXUH OHVPXOWLSURFHVVHXUVG¶XQHDUFKLWHFWXUH)HUPLŒVRQWFHQWUpVDXWRXUG¶XQHPpPRLUH FDFKHFRPPXQH/



Unité de partage et de répartition des warps DRAM DRAM DRAM

Hôte

Interface

Mémoire cache L2 DRAM

GigaThread DRAM

DRAM

Cœur Multiprocesseur

Figure 15 : Architecture Fermi™ en mode calculs

Dans l’architecture Fermi™, la distribution de blocs se fait de la même façon que pour les architectures antérieures à la différence que le gestionnaire de tâches s’appelle ici « moteur GigaThread ». Le processeur possède également 6 Go de mémoire globale de type DRAM GDDR5 répartis en 6 partitions. Chacune de ces partitions est accessible via une interface mémoire de 64 bits. Les six interfaces réalisent donc une interface mémoire totale de 384 bits.

39 

,, 8WLOLVDWLRQGHO¶DUFKLWHFWXUH&8'$Œ ,, 3UpVHQWDWLRQGHO¶DUFKLWHFWXUH&8'$Œ /¶DUFKLWHFWXUH &8'$Œ &RPSXWH 8QLILHG 'HYLFH $UFKLWHFWXUH  HVW XQH DUFKLWHFWXUH XQLILpH VSpFLDOLVpH GDQV O¶H[pFXWLRQ GH FDOFXOV 2Q UDSSHOOH TX¶XQH DUFKLWHFWXUHXQLILpHHVWXQHDUFKLWHFWXUHIOH[LEOHGDQVODTXHOOHOHVF°XUVG¶XQSURFHVVHXU JUDSKLTXHSHXYHQWrWUHUpXWLOLVpVSOXVLHXUVIRLVSRXU • GLIIpUHQWHVpWDSHVGHWUDLWHPHQWJUDSKLTXHV • O¶H[pFXWLRQGHFDOFXOVQRQJUDSKLTXHV /¶DUFKLWHFWXUH &8'$Œ HVW XQH WHFKQRORJLH GH W\SH *3*38 *HQHUDO3XUSRVH FRPSXWLQJ RQ *UDSKLFV 3URFHVVLQJ 8QLWV  F HVWjGLUH TX RQ XWLOLVH XQ SURFHVVHXU JUDSKLTXH *38  SRXU H[pFXWHU GHV FDOFXOV JpQpUDX[ KDELWXHOOHPHQW H[pFXWpV SDU OH SURFHVVHXU FHQWUDO &38  /¶HQYLURQQHPHQW &8'$ SHUPHW GH SURJUDPPHU GHV SURFHVVHXUVJUDSKLTXHVHQODQJDJH& 3RXUXQSURJUDPPHXU&8'$OHV\VWqPHLQIRUPDWLTXHGHFDOFXOFRQVLVWHHQXQ K{WHTXLHVWXQ&38WUDGLWLRQQHOHWXQRXSOXVLHXUVSpULSKpULTXHVGHWUDLWHPHQW GHYLFH  TXL VRQW GHV SURFHVVHXUV j IRQFWLRQQHPHQW PDVVLYHPHQW SDUDOOqOHV pTXLSpV G¶XQ JUDQG QRPEUHG¶XQLWpVG¶H[pFXWLRQVDULWKPpWLTXHV 8Q SURJUDPPH &8'$ FRQVLVWH HQ XQH RX SOXVLHXUV SKDVHV H[pFXWpHV VRLW VXU O¶K{WH &38 VRLWVXUXQSpULSKpULTXHGHWUDLWHPHQWWHOTX¶XQSURFHVVHXUJUDSKLTXH/HV SKDVHV SUpVHQWDQW SHX RX SDV GHSDUDOOpOLVPHGHGRQQpHVVRQWPLVHV HQ °XYUH GDQV OH FRGHK{WH/HVSKDVHVTXLSUpVHQWHQWXQHLPSRUWDQWHTXDQWLWpGHSDUDOOpOLVPHVRQWPLVHV HQ°XYUHGDQVOHFRGHGXSpULSKpULTXHGHWUDLWHPHQW 8QSURJUDPPH&8'$HVWXQFRGHVRXUFHHQJOREDQWjODIRLV • OHFRGHK{WH • OHFRGHGHSpULSKpULTXHGHWUDLWHPHQW /DSDUWLH&8'$G¶XQSURJUDPPHHVWFRPSLOpHSDUOHFRPSLODWHXU19,',$TXLVH QRPPH QYFF 19,',$ & &RPSLOHU  &H FRPSLODWHXU VpSDUH OHV GHX[ W\SHV GH FRGH SHQGDQWOHSURFHVVXVGHFRPSLODWLRQ • /HFRGHK{WHHVWXQFRGH&$16,RUGLQDLUHLOHVWFRPSLOpSDUOHVFRPSLODWHXUV VWDQGDUGGHO¶K{WHHWV¶H[pFXWHFRPPHXQSURFHVVXV&38RUGLQDLUH • /H FRGH GH SpULSKpULTXH GH WUDLWHPHQW HVW pFULW DYHF GHV LQVWUXFWLRQV &8'$ EDVpHVVXUOHODQJDJH&&HVLQVWUXFWLRQV &8'$ VRQW IDFLOHPHQW LGHQWLILDEOHV FDU HOOHVFRPSRUWHQWOHPRW©DVEBªGHYDQWO¶LQVWUXFWLRQ&FRUUHVSRQGDQWH3DUH[HPSOH O¶LQVWUXFWLRQ &8'$ ©DVEB.BMMPDª FRPSRUWH OH PRW ©DVEBª HW D XQ IRQFWLRQQHPHQW SURFKH GH OD IRQFWLRQ & ©NBMMPDª /H FRGH GH SpULSKpULTXH GH WUDLWHPHQW HVW W\SLTXHPHQW FRPSLOp SDU OH FRPSLODWHXU QYFF HW H[pFXWp VXU XQ SpULSKpULTXHGHWUDLWHPHQW*38 /HNHUQHO YRLU†, JpQqUHW\SLTXHPHQWXQQRPEUHLPSRUWDQWGHWkFKHVSRXU H[SORLWHUOHSDUDOOpOLVPHGHGRQQpHV /¶H[pFXWLRQ GX SURJUDPPH FRPPHQFH SDU O¶H[pFXWLRQ VXU O¶K{WH &38  /RUVTX¶XQH IRQFWLRQ NHUQHO HVW DSSHOpH O¶H[pFXWLRQ VH GpSODFH VXU XQ SpULSKpULTXH GH WUDLWHPHQW *38 VXUOHTXHOXQJUDQGQRPEUHGHWkFKHVVRQWJpQpUpHVSRXUEpQpILFLHUGX SDUDOOpOLVPHGHGRQQpHV2QUDSSHOOHTXHO¶HQVHPEOHGHVWkFKHVJpQpUpHVSDUXQNHUQHO ORUVG¶XQDSSHOIRUPHFHTX¶RQDSSHOOHXQHJULOOH YRLU†, 

 

Lorsque toutes les tâches d’un kernel terminent leur exécution, la grille de tâches correspondante prend fin et l’exécution continue sur l’hôte jusqu’à l’appel d’un autre kernel. La Figure 16 montre la structure globale d’un programme CUDA-C, ainsi que sa division en grille de tâches.

#include …

int main(void) { instructions C ; instructions CUDA ; instructions C ; instructions CUDA ; kernel<<<…,…>>>(…,…,…) ; Exécuté sur l’hôte instructions CUDA ; instructions C ; instructions CUDA ; Lorsque le kernel est appelé par le CPU, le kernel est instructions C ; envoyé au GPU. Le calcul exécuté par le kernel est } ensuite divisé par le gestionnaire de tâches du GPU en un ensemble de tâches, chacune réalisant un calcul élémentaire. Cet ensemble de tâches est appelé « grille ». // Description du kernel ; void kernel(…,…,…) La partie du programme intitulée « Description du { kernel » décrit l’ensemble des instructions exécutées par instructions C ; une tâche élémentaire particulière. instructions CUDA ; instructions C ; Exécuté sur le GPU instructions CUDA ; instructions C ; }

Figure 16 : Structure d’un programme CUDA-C

41 

,, 'HVFULSWLRQG¶XQSURJUDPPH&8'$GHEDVH /¶HQYLURQQHPHQW &8'$ pWDQW SDUWLFXOLqUHPHQW ELHQ DGDSWp j O¶H[pFXWLRQ GH WkFKHVHQSDUDOOqOHLOHVWGRQFELHQDGDSWpDXFDOFXOG¶DGGLWLRQVRXGHPXOWLSOLFDWLRQVGH YHFWHXUV VpULHGHQRPEUHVVXUXQHVHXOHGLPHQVLRQ RXGHPDWULFHVjGHX[YRLUHWURLV GLPHQVLRQV &¶HVW SRXUTXRL O¶pWXGH GH &8'$Œ HW GH VHV ELEOLRWKqTXHV GH IRQFWLRQV SRUWHUDSUHVTXHWRXMRXUVVXUGHVPDWULFHVRXGHVYHFWHXUV 1RXVpWXGLHURQVGRQFGDQVXQSUHPLHUWHPSVOHFDOFXOOHSOXVVLPSOHjUpDOLVHU GDQV O¶HQYLURQQHPHQW &8'$ XQH DGGLWLRQ GH YHFWHXUV FRQWHQDQW SDU H[HPSOH GHV GRQQpHVGHW\SHHQWLHU JOU 2QSUHQGGHVGRQQpHVHQWLqUHVSRXUJDUGHUFHSURJUDPPH GHEDVHOHSOXVVLPSOHSRVVLEOH 8QSURJUDPPH&8'$&GHEDVHHVW FRQVWLWXp SULQFLSDOHPHQW GHV SDUWLHV VXLYDQWHV • GpFODUDWLRQGHVYDULDEOHV&38HW*38 • DOORFDWLRQGHPpPRLUH&38SRXUOHVWRFNDJHGHVGRQQpHVRSpUDQGHVGXFDOFXOj H[pFXWHU • UHPSOLVVDJHGHV]RQHVPpPRLUHDOORXpHV • DOORFDWLRQGHPpPRLUH*38SRXUOHVWRFNDJHVXU*38GHVGRQQpHVRSpUDQGHV GXFDOFXOjH[pFXWHU • WUDQVIHUWVGHVGRQQpHVRSpUDQGHV&38YHUV*38 • H[pFXWLRQGXFDOFXOVXUODFDUWHJUDSKLTXH • WUDQVIHUWVGXUpVXOWDW*38YHUV&38 • OLEpUDWLRQGHV]RQHVPpPRLUHVDOORXpHVVXU*38 • OLEpUDWLRQGHV]RQHVPpPRLUHVDOORXpHVVXU&38 'DQV O¶H[HPSOH VXLYDQW RQ VH FRQWHQWHUD GH IDLUH O¶DGGLWLRQ GH GHX[ YHFWHXUV FRPSRUWDQWXQVHXOpOpPHQWFKDFXQ9RLFLXQSURJUDPPH&8'$UpGXLWjVDSOXVVLPSOH H[SUHVVLRQ JODMVEFTUEJPI  JODMVEFDVEBI   @@HMPCBM@@WPJEBEE JOUB JOUC JOUE  \ EB C ^  JOUNBJO WPJE  \ %ÏDMBSBUJPOEFMBWBSJBCMFEFSÏTVMUBU JOUSFT %ÏDMBSBUJPOEFQPJOUFVSTVS(16 JOU EFW@D "MMPDBUJPONÏNPJSF(16 DVEB.BMMPD  WPJE EFW@D TJ[FPG JOU   $BMDVMTVS(16 BEE    EFW@D  5SBOTGFSUEVSÏTVMUBU(16WFST$16 DVEB.FNDQZ SFT EFW@D TJ[FPG JOU DVEB.FNDQZ%FWJDF5P)PTU  "GGJDIBHFEVSÏTVMUBUEVDBMDVM

 

printf( "2 + 7 = %d\n", res ); // Libération de la mémoire GPU cudaFree( dev_c ); return 0; } On déclare d’abord la variable de résultat avec la ligne : int res; Puis on déclare un pointeur qui servira à pointer l’emplacement mémoire (de la carte graphique) contenant le résultat avant son transfert de la carte graphique vers le CPU : int *dev_c; On utilise le préfixe « dev » pour montrer que le pointeur concerne la carte graphique (device). On réserve de la mémoire pour ce pointeur sur la carte graphique : cudaMalloc( (void**)&dev_c, sizeof(int) ); Cet appel se comporte de façon similaire à un appel à malloc() en C standard, mais le préfixe cuda permet de le différencier. Le premier argument de l’appel à la fonction cudaMalloc est un pointeur sur le pointeur qui devra contenir l’adresse de la mémoire qui vient d’être allouée. Le second argument est la taille de l’allocation qu’on veut utiliser. Ici la taille allouée se réduit à celle d’un entier puisqu’on travaille sur un vecteur d’une valeur seulement. Ensuite le kernel est appelé : add<<<1,1>>>( 2, 7, dev_c ); Ce kernel est similaire à la fonction : add( 2, 7, dev_c ); La différence entre l’appel d’un kernel et l’appel d’une fonction ordinaire est qu’une fonction ordinaire est exécutée une fois seulement à chaque appel alors qu’un kernel est d’abord découpé en plusieurs blocs de tâches, puis les blocs de tâches sont exécutés simultanément en parallèle. L’ensemble de toutes les tâches constitue une grille de tâches. Les deux nombres contenus entre les crochets obliques définissent la façon dont seront découpés les blocs et les tâches d’un kernel. Le premier nombre représente le nombre de blocs voulus dans la grille et le deuxième nombre représente le nombre de tâches par bloc. On constate donc que la taille et le nombre de blocs sont configurables par le programmeur. Dans le kernel, ci-dessus, on a un seul bloc d’une seule tâche. Comme, nous n’avons qu’une seule opération à fournir, il n’y a donc pas de parallélisme. Les arguments dans la parenthèse de la fonction ont la même utilité que dans une fonction C ordinaire. 2 et 7 sont les deux nombres à additionner et dev_c est le pointeur sur le résultat. Les données opérandes (2 et 7) sont transmises directement du CPU, c’est pourquoi il n’y a pas eu de transfert CPU vers GPU utilisant cudaMemcpy. Dans la pratique, plus un calcul comporte de tâches élémentaires, plus l’utilisation de la carte graphique est valable pour les calculs. Par conséquent, dans les calculs sur carte graphique, l’utilisation de cudaMemcpy est quasiment systématique pour le transfert des

43 

RSpUDQGHVVXUODFDUWHJUDSKLTXHFRPPHSRXUOHWUDQVIHUWGXUpVXOWDWGHODFDUWHJUDSKLTXH YHUVOH&38 8QH IRLV OH FDOFXO UpDOLVp RQ WUDQVIqUH OH UpVXOWDW GH OD FDUWH JUDSKLTXH YHUV OH &38DYHFO¶LQVWUXFWLRQ DVEB.FNDQZ SFT EFW@D TJ[FPG JOU DVEB.FNDQZ%FWJDF5P)PTU  'DQVFHWWHIRQFWLRQ&8'$ • O¶DUJXPHQW SFT UHSUpVHQWH O¶DGUHVVH GH GHVWLQDWLRQ VXU OH &38 F HVWjGLUH O¶DGUHVVHGXUpVXOWDWVXUOH&38 • O¶DUJXPHQWEFW@DHVWOHSRLQWHXU*38VXUODYDOHXUjWUDQIpUHU • O¶DUJXPHQW TJ[FPG JOU UHSUpVHQWHODTXDQWLWp WRWDOHG¶RFWHWV jWUDQVIpUHU /H UpVXOWDW Q¶XWLOLVDQW G¶XQ VHXO HQWLHU OD TXDQWLWp G¶RFWHWV j WUDQVIpUHU HVW GRQF GH OD WDLOOHG¶XQJOU • O¶DUJXPHQWDVEB.FNDQZ%FWJDF5P)PTUHVWXQHFRQVWDQWHSUpGpILQLH>@GHW\SH DVEB.FNDQZ,JOE UHSUpVHQWDQW OD GLUHFWLRQ GX WUDQVIHUW j UpDOLVHU ,FL RQ D GRQF XQ WUDQVIHUW©SpULSKpULTXH *38 YHUVK{WH &38 ª 3XLVRQOLEqUHODPpPRLUH*38jO¶DLGHGHODIRQFWLRQDVEB'SFF (QGpEXWGHSURJUDPPHHVW GpFULWH OD IRQFWLRQ BEE &HWWH IRQFWLRQ D OH PrPH IRQFWLRQQHPHQWTXHWRXWHIRQFWLRQ&RUGLQDLUH /HVHXO FKDQJHPHQWHVW ODSUpVHQFHGX VSpFLILFDWHXUGHGpFODUDWLRQ@@HMPCBM@@/HTXDOLILFDWHXU@@HMPCBM@@HVWSUpGpILQLGDQV &8'$HWSHUPHWGHGpFODUHUTXHODIRQFWLRQBEEHVWXQNHUQHO8QHIRQFWLRQFRPSRUWDQW FH TXDOLILFDWHXU HVW H[pFXWpH VXU OD FDUWH JUDSKLTXH PDLV QH SHXW rWUH DSSHOpH TXH SDU O¶K{WH>@ ,O H[LVWH GHX[ DXWUHV TXDOLILFDWHXUV GH IRQFWLRQV SUpGpILQLV SRXYDQW rWUH XWLOLVpV GDQVXQFRGH&8'$ • @@EFWJDF@@H[pFXWpVXUODFDUWHHWDSSHOpXQLTXHPHQWSDUODFDUWHJUDSKLTXH • @@IPTU@@ H[pFXWp VXU O¶K{WH OH &38  HW DSSHOp XQLTXHPHQW SDU O¶K{WH

 

,, ,QWpJUDWLRQG¶XQSURJUDPPH&8'$GDQVXQHIRQFWLRQ0(; 3RXUSRXYRLUWUDQVIpUHUGHVGRQQpHVjSDUWLUG¶XQSURJUDPPH0$7/$%YHUVXQ SURJUDPPHHQ&RXHQ&8'$&RQGRLWXWLOLVHUGDQVOHSURJUDPPH&RX&8'$&XQH IRQFWLRQ0(; 0$7/$%(;HFXWDEOH TX¶LOVXIILUDG¶DSSHOHUjSDUWLUG¶XQHLQVWUXFWLRQ G¶XQSURJUDPPH0$7/$%3RXUXWLOLVHUXQHIRQFWLRQ0(;RQUHPSODFHO¶HQWrWHNBJO GXSURJUDPPHSULQFLSDOSDUO¶HQWrWHNFY'VODUJPO/DIRQFWLRQNFY'VODUJPO pJDOHPHQW DSSHOpH©URXWLQHSDVVHUHOOHª FRPSRUWHTXDWUHSDUDPqWUHVXWLOLVpVSRXUWUDQVPHWWUHjOD IRQFWLRQ&8'$OHVGRQQpHVYHQDQWGH0$7/$%&HVTXDWUHSDUDPqWUHVVRQWGpFODUpV GHODPDQLqUHVXLYDQWH JOUOMIT NY"SSBZ QMIT<> JOUOSIT DPOTUNY"SSBZ QSIT<> /HVSDUDPqWUHVGHODNFY'VODUJPOFRUUHVSRQGHQWDX[DUJXPHQWVTXH0$7/$% GRQQHjODIRQFWLRQORUVGHVRQDSSHO>@9RLFLXQHGHVFULSWLRQGHFHVSDUDPqWUHV • OSIT  QRPEUH G¶DUJXPHQWV RSpUDQGHV DUJXPHQWV G¶HQWUpH  GRQQpV SDU 0$7/$%jODIRQFWLRQ • OMIT QRPEUH G¶DUJXPHQWV UpVXOWDWV DUJXPHQWV GH VRUWLH  GHYDQW rWUH UHQYR\pV SDUODIRQFWLRQj0$7/$% • QSIT  SRLQWHXU VXU OHV DUJXPHQWV G¶HQWUpH GRQQpV SDU 0$7/$% j OD IRQFWLRQ SUKVHVWXQWDEOHDX  • QMITSRLQWHXUVXUOHVDUJXPHQWVGHVRUWLHGHYDQWrWUHUHQYR\pVSDUODIRQFWLRQj 0$7/$% SOKVHVWXQWDEOHDX  /H ODQJDJH 0$7/$% IRQFWLRQQH DYHF XQ W\SH G¶REMHWXQLTXH  OH WDEOHDX 0$7/$%7RXWHVOHVYDULDEOHV0$7/$%\FRPSULVOHVYDULDEOHVLVROpHVOHVYHFWHXUV OHV PDWULFHV OHV FKDvQHV GH FDUDFWqUHV OHV WDEOHDX[ OHV VWUXFWXUHV HW OHV REMHWV VRQW VWRFNpHVHQWDQWTXHWDEOHDX[0$7/$%(Q&OHWDEOHDX0$7/$%HVWGpFODUpFRPPH pWDQWGHW\SHNY"SSBZ/DVWUXFWXUHNY"SSBZFRQWLHQWHQWUHDXWUHV • OHW\SHGHGRQQpHV • OHVGLPHQVLRQVGXWDEOHDX • OHVGRQQpHVDVVRFLpHVjFHWDEOHDX • HQFDVGHGRQQpHVQXPpULTXHVOHW\SHGHGRQQpHVUpHORXFRPSOH[H • HQFDVGHPDWULFHFUHXVHVHVLQGLFHVHWVHVpOpPHQWVPD[LPXPQRQQXOV • HQFDVGHVWUXFWXUHRXG¶REMHWOHQRPEUHGHFKDPSVHWOHVQRPVGHFKDPS • XQSRLQWHXUVXUOHVSDUWLHV P UpHOOHV SU  P LPDJLQDLUHV SL  GHVGRQQpHV /DYDULDEOHQSITHVWGpFODUpHDPOTU>@&HTXLVLJQLILHTXHOHVYDOHXUVSDVVpHV GDQVOHILFKLHU0(;QHGRLYHQWSDVrWUHPRGLILpHV/HVYDOHXUVSUpVHQWHVGDQVQMITVRQW LQYDOLGHVDXGpEXWGHO¶H[pFXWLRQGHODIRQFWLRQFDUOHVGRQQpHVUHQYR\pHVj0$7/$% F HVWjGLUHOHUpVXOWDWGXFDOFXO QHVRQWpYLGHPPHQWSDVFRQQXHVHQGpEXWG¶H[pFXWLRQ GX SURJUDPPH /HV GRQQpHV GH W\SH NY"SSBZ VXU OHVTXHOOHV QSITHWQMIT SRLQWHQW GRLYHQWH[SOLFLWHPHQWrWUHFUppHVDYDQWTX¶HOOHVQHSXLVVHQWrWUHXWLOLVpHV 3RXUSRXYRLUHQYR\HUGHVGRQQpHV0$7/$%jODIRQFWLRQ&8'$ • RQFUpHXQILFKLHUNVRXV0$7/$% • GDQVOHILFKLHUNRQIDLWXQDSSHODXILFKLHUEMM FRQWHQDQWOHFRGH&&8'$ HWODNFY'VODUJPO HQLQGLTXDQWVRQQRPVDQVPHQWLRQQHUVRQH[WHQVLRQEMM /DV\QWD[H0$7/$%G¶DSSHOGXILFKLHU0(;&8'$HVWODVXLYDQWH

  

<9>BEE : ;  /HQRPBEEGRQQpjFHWWHIRQFWLRQHVWGRQFOHPrPHTXHFHOXLFRUUHVSRQGDQWj XQHIRQFWLRQ&&8'$TXLVHUDLWDSSHOpHBEEDHWFRQWHQDQWODNFY'VODUJPO 2QFRQVWDWHTXHODIRQFWLRQBEEFRPSRUWHGHX[DUJXPHQWVG¶HQWUpH :HW; HWXQH YDULDEOHGHVRUWLH 9  /HVJURXSHVGHOHWWUHVMITHWSITUHSUpVHQWHQWO¶DEUpYLDWLRQGHOHIWKDQGVLGH F{Wp JDXFKH HWGHULJKWKDQGVLGH F{WpGURLW OKVHWUKVIRQWUpIpUHQFHjO¶pFULWXUHKDELWXHOOH RO¶RQWURXYH • jGURLWHOHVDUJXPHQWVSDVVpVjODIRQFWLRQ • jJDXFKHODYDOHXUUHWRXUQpHSDUODIRQFWLRQ OMIT UHSUpVHQWH GRQF OH QRPEUH YDULDEOHV GH UHWRXU F{Wp JDXFKH  HW OSIT UHSUpVHQWHOHQRPEUHG¶DUJXPHQWV YDULDEOHVRXFRQVWDQWHV SDVVpVjODIRQFWLRQ0(; /HVDUJXPHQWVSDVVpVjODNFY'VODUJPOSHXYHQWrWUHUHSUpVHQWpVSDUOHVFKpPDGH OD)LJXUH

 <9>NVMNBU : ; QOKV 

QUKV  SOKV>@ SOKV 9 SUKV>@ SUKV : SUKV>@ ;  )LJXUH'HVFULSWLRQGXSDVVDJHG¶DUJXPHQWV0$7/$%jXQHIRQFWLRQ0(;>@ 6XU OD )LJXUH  QMITHWQSIT VRQW GHX[ WDEOHDX[ SHUPHWWDQW G¶DFFpGHU DX[ SRLQWHXUV VXU OHV GRQQpHV RSpUDQGHV GRQQpHV G¶HQWUpH  HW VXU OHV GRQQpHV UpVXOWDW GRQQpHVGHVRUWLH  /¶HQWUpHHVWQSITXQWDEOHDX&GHGHX[pOpPHQWV OSIT  /HSUHPLHUpOpPHQW QSIT<> HVWXQSRLQWHXUVXUXQWDEOHDXGHW\SHNY"SSBZQRPPp:HWOHVHFRQGpOpPHQW QSIT<> HVWXQSRLQWHXUVXUXQWDEOHDXGHW\SHNY"SSBZQRPPp; /DVRUWLHHVWQMITXQWDEOHDX&GHXQpOpPHQW OMIT  GDQVOHTXHOO¶pOpPHQW XQLTXHHVWXQSRLQWHXUOVMM/HSDUDPqWUHQMITHVWXQSRLQWHXUQRQDOORXpFDUWDQWTXHOD URXWLQHQHV¶H[pFXWHSDVODVRUWLH9Q¶HVWSDVFUppH /DURXWLQHSDVVHUHOOH NFY'VODUJPO GRLWFUpHUOHWDEOHDXGHVRUWLHVXUOHTXHOHOOH LQLWLDOLVHXQSRLQWHXUGDQVQMIT<> 'DQVODVXLWHGXSURJUDPPHRQV¶DVVXUHGDQVXQSUHPLHUWHPSVTXHOHQRPEUH G¶DUJXPHQWVG¶HQWUpHHWGHVRUWLHHVWFRKpUHQWDYHFFHTXLHVWDWWHQGXHWRQDIILFKHXQ PHVVDJHGDQVOHFDVFRQWUDLUH JG OSIT NFY&SS.TH5YU %FVYFOUSÏFTEFNBOEÏFT  JG OMIT NFY&SS.TH5YU 6OFTPSUJFTFVMFNFOUEFNBOEÏF  (QVXLWH SRXU SRXYRLU DOORXHU GH O¶HVSDFH PpPRLUH VXU O¶K{WH RX VXU OD FDUWH JUDSKLTXHRQGRLWFRQQDvWUHOHVGLPHQVLRQVGHVPDWULFHVRSpUDQGHV PDWULFHVG¶HQWUpH  2QXWLOLVHGRQFXQHIRQFWLRQSHUPHWWDQWG¶H[WUDLUHFHVGLPHQVLRQVjSDUWLUGHQSIT2Q

 

H[WUDLW OH QRPEUH GH OLJQHV GH FKDTXH PDWULFH G¶HQWUpHDYHF OD IRQFWLRQ NY(FU. HW OH QRPEUHGHFRORQQHVDYHFODIRQFWLRQNY(FU/ NSPXT"  VOTJHOFE JOU NY(FU. QSIT<>    /C EF MJHOFT EF MB QSFNJÒSFNBUSJDF  ODPMT"  VOTJHOFE JOU NY(FU/ QSIT<>    /C EF DPMPOOFT EF MB QSFNJÒSFNBUSJDF  NSPXT#  VOTJHOFE JOU NY(FU. QSIT<>    /C EF MJHOFT EF MB EFVYJÒNFNBUSJDF  ODPMT#  VOTJHOFE JOU NY(FU/ QSIT<>    /C EF DPMPOOFT EF MB EFVYJÒNFNBUSJDF  2QDFFqGHDX[GRQQpHVYLDGHVSRLQWHXUVTXLIRQWSDUWLHGHODVWUXFWXUHNY"SSBZ 2QUpFXSqUHODYDOHXUGHFHVSRLQWHXUVDXPR\HQGHODIRQFWLRQNY(FU1S 3RXUVWRFNHUODYDOHXUGHFHVSRLQWHXUVQRXVDYRQVSULV EPVCMF I@" I@# I@$ I@"NY(FU1S QSIT<>  I@#NY(FU1S QSIT<>  &HFLQRXVSHUPHWWUDGDQVODVXLWHGXSURJUDPPHG¶DFFpGHUDX[GRQQpHVYLDOHV SRLQWHXUVI@"HWI@# /HW\SHEPVCMFDpWpFKRLVLSRXUOHVGRQQpHVFDU0$7/$%QHPDQLSXOHTXHGHV QRPEUHV IORWWDQWV GRXEOHSUpFLVLRQ SDU GpIDXW HW OD FDUWH JUDSKLTXH XWLOLVpH *7;  SUHQG HQ FKDUJH OHV QRPEUHV IORWWDQWV GRXEOHSUpFLVLRQ /HV GRQQpHV VHURQW WRXMRXUV FRQVLGpUpHVGHW\SHEPVCMFGDQVODWRWDOLWpGXSURJUDPPH&8'$& $QRWHUTXHODFDUWHJUDSKLTXH*6XWLOLVpHHQGpEXWGHSURMHW YRLU†, QH SUHQDLWSDVHQFKDUJHOHVQRPEUHVIORWWDQWVGRXEOHSUpFLVLRQ 'DQVFHSURJUDPPHGHPXOWLSOLFDWLRQGHPDWULFHVQRXVQRPPHURQV • PDWULFH"ODSUHPLqUHGHVGHX[PDWULFHVRSpUDQGHV • I@"XQSRLQWHXUVXUODSUHPLqUHYDOHXUGHODPDWULFH" • PDWULFH#ODGHX[LqPHGHVGHX[PDWULFHVRSpUDQGHV • I@#XQSRLQWHXUVXUODGHX[LqPHYDOHXUGHODPDWULFH# /DOHWWUHIGHVSRLQWHXUVI@"HWI@#VHUWjPRQWUHUTXHFHSRLQWHXUSRLQWHVXUXQH ]RQHPpPRLUHGHO¶K{WH OH&38  1RXVDYRQVYXSUpFpGHPPHQWTXHOHSDUDPqWUHQMITHVWXQSRLQWHXUQRQDOORXp RQ GRLW GRQF OXL DVVLJQHU XQH ]RQH PpPRLUH HW XQ W\SH GH GRQQpHV 2Q XWLOLVH O¶LQVWUXFWLRQ QMIT<>NY$SFBUF%PVCMF.BUSJY NSPXT" ODPMT# NY3&"-  $YHF FHWWH LQVWUXFWLRQ OH SDUDPqWUH QMIT SRLQWH GpVRUPDLV VXU XQH VWUXFWXUH NY"SSBZGHYDOHXUVUpHOOHVGHW\SHGRXEOH /DWDLOOHGHODPDWULFHUpVXOWDWGRLWrWUHDGDSWpHHQIRQFWLRQ • GHFHTXHSURGXLWOHFDOFXO      3RXUVDYRLUVLXQHFDUWHJUDSKLTXHSUHQGHQFKDUJHOHVQRPEUHV IORWWDQWV GRXEOHSUpFLVLRQ LO VXIILW GH YpULILHUTXHODYHUVLRQGHFDUWH FRPSXWHFDSDELOLW\ OHVSUHQGHQFKDUJH

 

• GHODWDLOOHGHVPDWULFHVRSpUDQGHV &¶HVWDXSURJUDPPHXUGHIL[HUFRUUHFWHPHQWODWDLOOHGHODPDWULFHUpVXOWDW /¶DUJXPHQW NY3&"- HVW XQ GUDSHDX GH W\SH NY$PNQMFYJUZ /H W\SH NY$PNQMFYJUZ SHXW rWUH VRLW NY3&"- VRLW NY$0.1-&9 SRXU SUpFLVHU VL OD GRQQpH TX¶RQ PHWGDQVNY"SSBZHVWUpHOOHRXFRPSOH[H'DQVFHSURJUDPPHRQXWLOLVHGRQFNY3&"- FDURQPDQLSXOHGHVQRPEUHVUpHOV 4XHOHVGRQQpHVVRLHQWUpHOOHVRXFRPSOH[HVODIRQFWLRQNY$SFBUF%PVCMF.BUSJY LQLWLDOLVHjWRXWHVOHVYDOHXUVG¶XQNY"SSBZ 0DLQWHQDQW TXH OH SRLQWHXU QMIT HVW DOORXp RQ DWWULEXH DX SRLQWHXU K{WH I@$ O¶DGUHVVHGHODSUHPLqUHYDOHXUUpHOOHSRLQWpHSDUQMIT<>JUDFHjO¶LQVWUXFWLRQ I@$NY(FU1S QMIT<>  2Q SHXW GRQF GpVRUPDLV XWLOLVHU OH SRLQWHXU K{WH I@$ SRLQWDQW VXU OD PDWULFH UpVXOWDW PDWULFH GH VRUWLH  &HWWH LQVWUXFWLRQ HVW LQGLVSHQVDEOH SRXU TXH OD FDUWH JUDSKLTXHSXLVVHWUDQVIpUHUOHUpVXOWDWVXUO¶K{WH  

 

,, $SSOLFDWLRQGH&8'$ŒjODPXOWLSOLFDWLRQGHPDWULFHV ,, 'HVFULSWLRQGHODURXWLQHSDVVHUHOOH NFY'VODUJPO  8QH URXWLQH SDVVHUHOOH FRPSRUWDQW GHV LQVWUXFWLRQV HQ &8'$& GRLW FRPSRUWHU OHVpWDSHVVXLYDQWHV • GpFODUDWLRQGHVYDULDEOHVHWGHVSRLQWHXUV&38 VXUOHVGRQQpHVRSpUDQGHV  • LQLWLDOLVDWLRQGHVSRLQWHXUVGHODURXWLQHSDVVHUHOOH QSIT<>HWQSIT<>  • GpFODUDWLRQGHSRLQWHXUV*38 • WUDQVIHUWGHVGRQQpHV&38YHUV*38 • H[pFXWLRQGXFDOFXOVXUODFDUWHJUDSKLTXH • LQLWLDOLVDWLRQGXSRLQWHXUQMIT<>GHODURXWLQHSDVVHUHOOH • WUDQVIHUWGXUpVXOWDW*38YHUV&38DXPR\HQGXSRLQWHXUQMIT<> • OLEpUDWLRQGHV]RQHVPpPRLUHV&38HW*38 /¶LQLWLDOLVDWLRQGHVSRLQWHXUVGHODURXWLQHSDVVHUHOOHD\DQWGpMjpWppWXGLpH YRLU †,, QRXVQHUHYLHQGURQVSDVGHVVXV 8QHIRLVTXHOHVGRQQpHVYHQDQWGH0$7/$%RQWpWpUHWURXYpHVDYHFNY(FU1SHW VWRFNpHV j O¶DGUHVVH PpPRLUH SRLQWpH SDU I@"HWI@# HW TXH OHXUV GLPHQVLRQV RQW pWp VWRFNpHVGDQVNSPXT"NSPXT#ODPMT"HWODPMT#RQSHXWFRPPHQFHUjOHVXWLOLVHU$ILQ GH IDFLOLWHU OH GpURXOHPHQW GHV LQVWUXFWLRQV RQ GpILQLW G¶DERUG XQ W\SH GH VWUXFWXUH LQWLWXOp.BUSJYTXLFRQWLHQGUDOHVGLPHQVLRQVG¶XQHPDWULFHGRQQpHHWXQSRLQWHXUVXUOHV GRQQpHVFRQWHQXHVGDQVODPDWULFH UZQFEFGTUSVDU\ JOUXJEUI JOUIFJHIU JOUTUSJEF EPVCMF FMFNFOUT ^.BUSJY 8QHIRLVOHW\SH.BUSJYFUppRQSHXWGpVRUPDLVUpVHUYHUGHODPpPRLUHSRXUGHV GRQQpHVGHW\SH.BUSJYVXUODFDUWHJUDSKLTXH 2Q GpFODUH HQVXLWH GHV SRLQWHXUV VXU OHV ]RQHV GH OD PpPRLUH GH OD FDUWH TXL FRQWLHQGURQW OHV GHX[ PDWULFHV G¶HQWUpH E@"HWE@#  HW OD PDWULFH GH VRUWLH E@$  /D OHWWUHEFRQWHQXHGDQVOHVQRPVGHFHVSRLQWHXUVVHUWjGLUHTXHOHSRLQWHXUSRLQWHVXUXQH ]RQHPpPRLUHGHODFDUWHJUDSKLTXH GHYLFH 3XLVRQLQLWLDOLVHOHVGLIIpUHQWVSDUDPqWUHV GHODVWUXFWXUH .BUSJYE@" E@"XJEUIE@"TUSJEFODPMT"E@"IFJHIUNSPXT" 'DQV OD VWUXFWXUH E@" OH SDUDPqWUH TUSJEF SHUPHW GH IDLUH OH OLHQ HQWUH OH VWRFNDJH OLQpDLUH GDQV OD PpPRLUH HW OD UHSUpVHQWDWLRQ PDWULFLHOOH &H SDUDPqWUH FRUUHVSRQGSRXUQRWUHFDVDXQRPEUHGHFRORQQHV&HSHQGDQWULHQQ¶LQWHUGLWGHSUHQGUH GHVLQWHUYDOOHVLQIpULHXUVRXVXSpULHXUVDXQRPEUHGHFRORQQHVG¶XQHPDWULFHVLOHFDOFXO OHQpFHVVLWH 2QDOORXHGHODPpPRLUHVXUODFDUWHJUDSKLTXHDX[SRLQWHXUVGHVPDWULFHVDYHFOD IRQFWLRQ DVEB.BMMPD3RXUDOORXHUGHODPpPRLUHRQGpFODUHG¶DERUGODYDULDEOH TJ[F GHW\SHTJ[F@U SRXUFRQWHQLUOHQRPEUHG¶RFWHWVjDOORXHUVXUODFDUWH/HW\SHTJ[F@U

 

est un type prédéfini du langage C et équivalent à un type unsigned int renvoyé par un opérateur sizeof [17]. size_t size = ncolsA * mrowsA * sizeof(double); cudaMalloc((void**)&d_A.elements, size); La fonction cudaMalloc alloue size octets de mémoire sur la carte graphique et renvoie dans d_A.elements le pointeur sur la mémoire allouée [14]. On effectue les mêmes opérations pour les pointeurs d_B et d_C. Le pointeur d_C pointant sur la matrice de résultat on utilise comme hauteur (height) de matrice la hauteur de la matrice A (c'est-à-dire le nombre de lignes), et comme largeur (width) de matrice la largeur (c'est-à-dire le nombre de colonnes) de la matrice B. Une fois la mémoire allouée sur la carte graphique, on peut transférer les données de l’hôte sur la carte. On transfère donc les deux matrices avec les instructions : cudaMemcpy(d_A.elements, h_A, size, cudaMemcpyHostToDevice); cudaMemcpy(d_B.elements, h_B, size, cudaMemcpyHostToDevice); On utilise la fonction cudaMemcpy pour transférer les données du CPU vers le GPU. Dès que les données ont été transférées en mémoire, on peut demander à la carte graphique d’exécuter les calculs voulus. Le détail du calcul parallèle sera décrit plus loin (§II.4.2). Une fois le calcul exécuté sur la carte graphique, on transfère le résultat sur l’hôte avec la fonction : cudaMemcpy(h_C, d_C.elements, size, cudaMemcpyDeviceToHost); La taille du transfert est définie par la déclaration préalable de size : size_t size = ncolsB * mrowsA * sizeof(double); Le résultat est transféré de la zone mémoire GPU pointée par d_C.elements vers la zone mémoire CPU pointée par h_C. La direction choisie est : GPU vers CPU (cudaMemcpyDeviceToHost). Une fois le résultat transféré sur l’hôte, il est aussitôt renvoyé à MATLAB puisque h_C pointe sur la même zone mémoire que plhs[0] (voir §II.3). Il ne reste ensuite qu’à libérer les zones mémoires réservées sur la carte graphique avec l’instruction : cudaFree(d_A.elements);

50 

,, 'HVFULSWLRQGXNHUQHO

,, $SSHOGXNHUQHO 'DQV OD NFY'VODUJPO SRXU ODQFHU O¶H[pFXWLRQ SDUDOOqOH OD IRQFWLRQ NHUQHO HVW VLPSOHPHQWDSSHOpHFRPPHRQO¶DYXSUpFpGHPPHQW †,,HW ,, /DIRQFWLRQNHUQHOHVW DSSHOpH SDU O¶K{WH SRXU rWUH H[pFXWpH VXU OD FDUWH JUDSKLTXH FHTXLHVWSUpFLVpDX FRPSLODWHXUSDUO¶HPSORLGH@@HMPCBM@@GHYDQWODGpFODUDWLRQGHODIRQFWLRQ @@HMPCBM@@WPJE.BU.VM,FSOFM DPOTU.BUSJY DPOTU.BUSJY .BUSJY  8QHIRLVTXHOHVGRQQpHVRQWpWpWUDQVIpUpHVHQPpPRLUHRQSHXWGHPDQGHUjOD FDUWHJUDSKLTXHG¶H[pFXWHUOHVFDOFXOVYRXOXV&HSHQGDQWSRXUTXHOHNHUQHOSXLVVHrWUH H[pFXWpRQGRLWOXLGRQQHUODWDLOOHGHODJULOOHGHWkFKHV HQWHUPHGHEORFV HWODWDLOOHGH EORF HQWHUPHGHWkFKHV  &RPPHLODpWpYXGDQVOHSDUDJUDSKH ,ODJULOOHHWOHVEORFVSHXYHQWDYRLU SOXVLHXUVGLPHQVLRQV&HVGLPHQVLRQVVRQWFRQILJXUDEOHVSDUOHSURJUDPPHXU 2QGRLWGRQFGpILQLUOHQRPEUHGHGLPHQVLRQV RX  • GHFKDTXHEORFHWODWDLOOHGHFKDFXQHGHFHVGLPHQVLRQV QRPEUHGHFRORQQHV GHOLJQHVHWF  • GHODJULOOHHWOHVWDLOOHVGHFKDFXQHGHFHVGLPHQVLRQV 3RXUXQFDOFXOGHPXOWLSOLFDWLRQGHPDWULFHVRQVRXKDLWHREWHQLUXQUpVXOWDWVRXV IRUPHGHPDWULFH&KDTXHWkFKHGHODJULOOHGHWkFKHVFDOFXOHXQpOpPHQWGHODPDWULFH UpVXOWDW,O\DGRQFDXWDQWGHWkFKHVGDQVODJULOOHTXHG¶pOpPHQWVGDQVODPDWULFHUpVXOWDW 3DUFRQVpTXHQWO¶LGpDOHVWGHFKRLVLUOHVPrPHVGLPHQVLRQVSRXUODJULOOHGHWkFKHVTXH SRXUODPDWULFHUpVXOWDW2QSHXWGRQFFKRLVLUOHVGLPHQVLRQVGHJULOOHHQIRQFWLRQGHV GLPHQVLRQV VRXKDLWpHV SRXU OD PDWULFH UpVXOWDW TXL HOOHPrPH GpSHQG GH OD WDLOOH GHV GHX[PDWULFHVRSpUDQGHV /DPDWULFHUpVXOWDWD\DQWGHX[GLPHQVLRQVRQFKRLVLWGRQFGHX[GLPHQVLRQVSRXU ODJULOOHGHWkFKHV3RXUOHVPrPHVUDLVRQVRQFKRLVLUDGHVEORFVjGHX[GLPHQVLRQV ,OH[LVWHXQHVWUXFWXUH&8'$SUpGpILQLHDSSHOpHEJNHWFRQWHQDQWSDUDPqWUHV GH W\SH VOTJHOFE JOULQLWLDOLVpVjSDUGpIDXW ORUVTX¶LOVQHVRQWSDVVSpFLILpVSDU OH SURJUDPPHXU/HVSDUDPqWUHVGHFHWWHVWUXFWXUHVRQWDFFHVVLEOHVSDUOHVFKDPSVYZHW[ 3RXU SRXYRLU GRQQHU OHV GLPHQVLRQV GH JULOOH HW GH EORF DX NHUQHO RQ GpFODUH SUpDODEOHPHQWGHX[VWUXFWXUHVGHW\SHEJN • EJN#MPDL SRXUGpILQLUODGLPHQVLRQGHEORF  • EJN(SJE SRXUGpILQLUODGLPHQVLRQGHJULOOH  EJN#MPDLHWEJN(SJE FRPSUHQQHQW GRQF FKDFXQ  SDUDPqWUHV Y Z [ FRUUHVSRQGDQWDXQRPEUHG¶pOpPHQWVGHFKDFXQHGHOHXUVGLPHQVLRQV $LQVL XQH JULOOH FRPSUHQDQW SDU H[HPSOH  OLJQHV   FRORQQHV GHEORFVHVW GpILQLHSDU • EJN(SJEY  • EJN(SJEZ  • EJN(SJE[  'H PrPH RQ GpILQLW OHV GLPHQVLRQVGHVEORFVGDQVXQHVWUXFWXUH EJN DSSHOpH EJN#MPDLHWLQGLTXDQWOHQRPEUHGHWkFKHVGHFKDFXQHGHVWURLVGLPHQVLRQV

  

$LQVLXQEORFFRPSUHQDQWSDUH[HPSOHOLJQHV FRORQQHVGHWkFKHVHVWGpILQL SDU • EJN#MPDLY  • EJN#MPDLZ  • EJN#MPDL[  (WDQWGRQQpTX¶RQQ¶XWLOLVHTXHGHX[GLPHQVLRQVGDQVFHPpPRLUHRQLQLWLDOLVHUD XQLTXHPHQWOHVGHX[SUHPLHUVSDUDPqWUHV YHWZ [pWDQWLQLWLDOLVpjSDUGpIDXW 2QDYXGDQVOHSDUDJUDSKH,TXHODWDLOOHGHODJULOOHGRLWrWUHXQPXOWLSOHGH ODWDLOOHGHEORF3RXUrWUHHQFRUHSOXVSUpFLVODWDLOOHGHJULOOHVHORQODGLPHQVLRQ • [GRLWrWUHPXOWLSOHGHODWDLOOHGHEORFVHORQODGLPHQVLRQ[ • \GRLWrWUHPXOWLSOHGHODWDLOOHGHEORFVHORQODGLPHQVLRQ\ • ]GRLWrWUHPXOWLSOHGHODWDLOOHGHEORFVHORQODGLPHQVLRQ] (WDQWGRQQpTXHOHQRPEUHGHWkFKHVGDQVODJULOOHHVWIL[HOHQRPEUHGHEORFV GDQVODJULOOHGpSHQGGRQFGLUHFWHPHQWGXQRPEUHGHWkFKHVSDUEORF 3DUH[HPSOHGDQVOHFDVG¶XQHJULOOHFRPSRUWDQWWkFKHVVXUODqUHGLPHQVLRQHW WkFKHVVXUODqPHGLPHQVLRQ )LJXUHHW)LJXUH  • VLRQFKRLVLWGHVEORFVFRPSRUWDQWWkFKHVVXUODqUHGLPHQVLRQHWWkFKHVVXU ODqPHGLPHQVLRQ )LJXUH RQDXUDGRQFXQHJULOOHFRPSRUWDQW P  EORFVVXUODqUHGLPHQVLRQ P  EORFVVXUODqPHGLPHQVLRQ  WkFKHV

%ORFGH  WkFKHV WkFKHV

*ULOOHGH WkFKHV 3RXUXQHJULOOHFRPSRUWDQW WkFKHV HWGHVEORFVGH  WkFKHVODWDLOOHGHODJULOOHVHUDGH EORFV  )LJXUH'pWHUPLQDWLRQGHODWDLOOHGHJULOOH HQWHUPHGHEORFV SRXUGHVEORFVGHWDLOOH  • VLRQFKRLVLWGHVEORFVFRPSRUWDQWWkFKHVVXUODqUHGLPHQVLRQHWWkFKHVVXU ODqPHGLPHQVLRQ )LJXUH RQDXUDGRQFXQHJULOOHFRPSRUWDQW

 

P  EORFVVXUODqUHGLPHQVLRQ P  EORFVVXUODqPHGLPHQVLRQ  WkFKHV

%ORFGH WkFKHV WkFKHV

*ULOOHGH WkFKHV 3RXUXQHJULOOHFRPSRUWDQW WkFKHV HWGHVEORFVGH  WkFKHVODWDLOOHGHODJULOOHVHUDGH EORFV  )LJXUH'pWHUPLQDWLRQGHODWDLOOHGHJULOOH HQWHUPHGHEORFV SRXUGHVEORFVGHWDLOOH  2QGpFODUHDLQVLSRXUXQHPDWULFHFDUUpHOHVGLPHQVLRQVGHJULOOHHWGHEORFGHOD PDQLqUHVXLYDQWH EJNEJN#MPDL #-0$,@4*%& #-0$,@4*%&  EJNEJN(SJE ODPMT#EJN#MPDLY NSPXT"EJN#MPDLZ  $SUqVO¶H[pFXWLRQGHFHVGHX[LQVWUXFWLRQVRQDGRQF • EJN#MPDLY #-0$,@4*%& HUDUJXPHQW  • EJN#MPDLZ #-0$,@4*%& qPHDUJXPHQW  • EJN#MPDL[  • EJN(SJEYODPMT#EJN#MPDLY • EJN(SJEYNSPXT"EJN#MPDLZ • EJN(SJEY 8QHIRLVOHVGLPHQVLRQVGHJULOOHHWGHEORFpWDEOLHVLOVXIILWG¶DSSHOHUOHNHUQHO DYHFO¶LQVWUXFWLRQ .BU.VM,FSOFMEJN(SJE EJN#MPDL E@# E@" E@$  /H NHUQHO .BU.VM,FSOFM HVWGpILQLFRPPHXQHIRQFWLRQ&RUGLQDLUH /DVHXOH FKRVHTXLPRQWUHTXHFHWWHIRQFWLRQHVWXQNHUQHOHVWODSUpVHQFHGHVFURFKHWVREOLTXHVj O¶DSSHO GH OD IRQFWLRQ &HX[FL VLJQDOHQW XQ FDOFXO PXOWLWkFKH HW HQ SUpFLVHQW OHV GLPHQVLRQVHQEORFV SRXUODJULOOH HWHQWkFKHV SRXUFKDFXQGHVEORFV 2QQHWURXYH

 

FHVFURFKHWVREOLTXHVTX¶jO¶DSSHOGHODIRQFWLRQ/HGpWDLOGHO¶H[pFXWLRQSDUDOOqOHVHUD pWXGLpGDQVOHVSDUDJUDSKHVVXLYDQWV

,, *ULOOHHWEORFVjXQHGLPHQVLRQ 3RXUVLPSOLILHUO¶pWXGHGHODVWUXFWXUDWLRQGHODJULOOHHQEORFVHWHQWkFKHVRQVH OLPLWHUDGDQVXQSUHPLHUWHPSVjpWXGLHUXQHPDWULFHQHFRPSRUWDQWTX¶XQHVHXOHOLJQH XQHVHXOHGLPHQVLRQOHVFRORQQHV  3RXU VLPSOLILHU OHV VFKpPDV VXLYDQWV FKDTXH WkFKH VHUD UHSUpVHQWpH SDU OH V\PEROHGHOD)LJXUH 

 )LJXUH7kFKHLVROpH /HVWkFKHVVRQWUHJURXSpHVGDQVXQEORFFRPPHLOHVWPRQWUpVXUOD)LJXUH   1XPpURVGHWkFKH 

)RQFWLRQH[pFXWpHVLPXOWDQpPHQWSDUOHVWkFKHV

 )LJXUH%ORFGHWkFKHVH[pFXWpHVVLPXOWDQpPHQW /HVWkFKHVjO¶LQWpULHXUG¶XQEORFFRRSqUHQWHQWUHHOOHVYLDXQH]RQHGHPpPRLUH SDUWDJpHGpGLpHDXEORFFRQFHUQp/HVWkFKHVGHEORFVGLIIpUHQWVQHSHXYHQWSDVFRRSpUHU YLDODPpPRLUHSDUWDJpH /¶HQVHPEOHGHSOXVLHXUVEORFVFRQVWLWXHXQHJULOOHGHWkFKHVFRPPHLOHVWPRQWUp VXUOD)LJXUH  *ULOOHGHQEORFV %ORF %ORF %ORFQ

0pPRLUHSDUWDJpHDFFHVVLEOH 0pPRLUHSDUWDJpH DFFHVVLEOH 0pPRLUHSDUWDJpH DFFHVVLEOH DX[WkFKHVGXEORF DX[WkFKHVGXEORF DX[WkFKHVGXEORFQ

 )LJXUH*ULOOHGHWkFKHVGpFRXSpHHQQEORFVGHWkFKHV 2QVDLWTXHFKDTXHWkFKHH[pFXWHODPrPHIRQFWLRQHQPrPHWHPSVTXHOHVDXWUHV WkFKHV,OH[LVWHXQPR\HQFODLUSRXULGHQWLILHUFHVWkFKHV/RUVGHO¶H[pFXWLRQG¶XQHJULOOH GHWkFKHVGDQVOHSURFHVVHXUJUDSKLTXH • FKDTXH WkFKH HVW LGHQWLILDEOH j O¶LQWpULHXU G¶XQ EORF SDU XQ QXPpUR G¶LGHQWLILFDWLRQ GH WkFKH TX¶RQ DSSHOOHUD ©LQGLFH GH WkFKHª  SRXU FKDFXQH GHV GLPHQVLRQVGXEORFFRQFHUQp

 

• FKDTXH EORF HVW LGHQWLILDEOH j O¶LQWpULHXU GH OD JULOOH SDU XQ QXPpUR G¶LGHQWLILFDWLRQ GH EORF TX¶RQ DSSHOOHUD ©LQGLFH GH EORFª  SRXU FKDFXQH GHV GLPHQVLRQVGHODJULOOH &KDTXHWkFKHXWLOLVHjODIRLVVHVSURSUHVLQGLFHVGHWkFKHHWO¶LQGLFHGXEORFGDQV ODTXHOOHHOOHVHWURXYHGDQVOHEXWGHFDOFXOHUOHVDGUHVVHVPpPRLUH • GHVGRQQpHVDX[TXHOOHVHOOHDFFqGH • GHVYDULDEOHVGHODPDWULFHUpVXOWDWTX¶HOOHPHWjMRXU>@ 3RXU FDOFXOHU OHV ]RQHV PpPRLUH DX[TXHOOHV HOOH GRLW DFFpGHU FKDTXH WkFKH D DFFqVDX[YDULDEOHVSUpGpILQLHVVXLYDQWHVPLVHVjMRXUDXWRPDWLTXHPHQW • UISFBE*EYYQXPpURGHWkFKHjO¶LQWpULHXUG¶XQEORF jSDUWLUGH  • CMPDL*EYYQXPpURGHEORFjO¶LQWpULHXUG¶XQHJULOOH jSDUWLUGH  • CMPDL%JNYQRPEUHGHWkFKHVSDUEORFV 7RXWHVOHVIRQFWLRQVSRVVpGDQWOHTXDOLILFDWHXU @@HMPCBM@@HW @@EFWJDF@@GDQV OHXU GpFODUDWLRQ RQW DFFqV j TXDWUH YDULDEOHV SUpGpILQLHV UISFBE*EY  CMPDL*EY  CMPDL%JN HSJE%JN>@&HVYDULDEOHVVRQWWRXWHVGHVVWUXFWXUHVSUpGpILQLHVFRQWHQDQW WURLVSDUDPqWUHV GLPHQVLRQV PLVjMRXUDXWRPDWLTXHPHQW /¶HQYLURQQHPHQW&8'$UHSRVHVXUXQIRQFWLRQQHPHQW6,07 6LQJOH,QVWUXFWLRQ 0XOWLSOH 7KUHDG  F HVWjGLUH TXH GH QRPEUHXVHV WkFKHV H[pFXWHQW XQH LQVWUXFWLRQ XQLTXH&HSHQGDQWHQSUDWLTXHOHIRQFWLRQQHPHQWHVWWUqVSURFKHG¶XQIRQFWLRQQHPHQW 6,0' FDU WUqV VRXYHQW VRXV &8'$ OHV WkFKHV H[pFXWHQW OD PrPH LQVWUXFWLRQ VXU GHV GRQQpHVGLIIpUHQWHV2QGRLWGRQFDYRLUXQPR\HQGHUHSpUHUOHVGRQQpHVDX[TXHOOHVXQH WkFKH D DFFqV &¶HVW SRXUTXRL OH V\VWqPH G¶LQGLFH TXH QRXV YHQRQV GH YRLU HVW LQGLVSHQVDEOHSRXUTXHFKDTXHWkFKHSXLVVHDFFpGHUjODGRQQpHFRUUHFWH /DPpPRLUHGXSpULSKpULTXHSHXWrWUHDOORXpH • VRLWHQWDQWTXHPpPRLUHOLQpDLUH • VRLWHQWDQWTXHWDEOHDX[&8'$ /HV WDEOHDX[ &8'$ VRQW GHV DJHQFHPHQWV GH OD PpPRLUH RSWLPLVpV SRXU OH WUDLWHPHQW JUDSKLTXH >@ 3DU FRQVpTXHQW QRXV XWLOLVHURQV OD PpPRLUH OLQpDLUH SRXU UpDOLVHU OHV FDOFXOV /D PpPRLUH OLQpDLUH V¶DFFqGH YLD GHV SRLQWHXUV (OOH HVW W\SLTXHPHQW • DOORXpHHQXWLOLVDQWHQXWLOLVDQWDVEB.BMMPD  • OLEpUpHHQXWLOLVDQWDVEB'SFF  $YHFFHW\SHGHPpPRLUHOHWUDQVIHUWGHGRQQpHVHQWUHPpPRLUHK{WHHWPpPRLUH GHSpULSKpULTXHOLQpDLUHHVWW\SLTXHPHQWUpDOLVpHQXWLOLVDQWDVEB.FNDQZ  /HVGRQQpHVVRQWGRQFWRXMRXUVVWRFNpHVHQPpPRLUHOLQpDLUHVRXVIRUPHGH WDEOHDXjXQHGLPHQVLRQ XQSRLQWHXU TXHOOHTXHVRLWOHW\SHGHUpSUpVHQWDWLRQGHV GRQQpHVPDQLSXOpHV • YHFWHXU GLPHQVLRQ  • PDWULFH GLPHQVLRQV  • PDWULFHGHYHFWHXUV GLPHQVLRQV  'DQVOHFDVG¶XQHJULOOHHWGHEORFVjXQHGLPHQVLRQRQQHSDUOHUDGRQFTXHGH YHFWHXUV2QDGRQFXQHJULOOHGHWkFKHVFRQVWLWXpHG¶XQHVHXOHOLJQHGHEORFVHWFKDTXH EORFFRQVWLWXpG¶XQHVHXOHOLJQHGHWkFKHV*OREDOHPHQWRQWUDLWHGRQFXQHJULOOHG¶XQH VHXOHOLJQHGHWkFKHV /HVYHFWHXUVRSpUDQGHVHWOHYHFWHXUUpVXOWDWVRQWUDQJpVGDQVGHVWDEOHDX[

 

3RXU SRXYRLU FDOFXOHU XQ pOpPHQW GX YHFWHXU UpVXOWDW FKDTXH WkFKH GH OD JULOOH GRLW SRXYRLU DFFpGHU DX[ GRQQpHV DSSURSULpHV GDQV OHV WDEOHDX[FRQWHQDQW OHV YHFWHXUV RSpUDQGHV 2QDYXSUpFpGHPPHQWTXHFKDTXHWkFKHGHODJULOOHFDOFXOHXQ pOpPHQWGHOD PDWULFHUpVXOWDW LFLGXYHFWHXUUpVXOWDW LO\DGRQFXQHWkFKHSDUpOpPHQWGHODPDWULFH UpVXOWDW&¶HVWSRXUTXRLRQXWLOLVHUDOHVLQGLFHVGHODJULOOHGHWkFKHVSRXULGHQWLILHUOHV pOpPHQWV GH OD PDWULFH UpVXOWDW HW HQ GpGXLUH OHV LQGLFHV GHV pOpPHQWV GHV PDWULFHV RSpUDQGHVQpFHVVDLUHVDXFDOFXO 3RXUDFFpGHUjO¶pOpPHQWYRXOXGXWDEOHDXFRQWHQDQWOHYHFWHXUUpVXOWDWODWkFKH FRQFHUQpHGRLWFRQQDvWUHO¶LQGLFHDSSURSULpGXWDEOHDXjXQHGLPHQVLRQ 3RXUFRQQDvWUHO¶LQGLFHNGXWDEOHDXYHFWHXUUpVXOWDWXQHWkFKHDDFFqV • DXQRPEUHGHWkFKHVSDUEORFQRWp1 • DXQXPpURG¶LGHQWLILFDWLRQGHODWkFKHGDQVXQEORFQRWpL • DXQXPpURG¶LGHQWLILFDWLRQGXEORFGDQVODJULOOHQRWpM $ORUVO¶LQGLFHNGDQVOHYHFWHXUUpVXOWDWHVWGRQQpSDU N M ∗ 1  L  /D)LJXUHLOOXVWUHODIDoRQGRQWLOHVWSRVVLEOHGHJpUHUFRUUHFWHPHQWO¶DFFqVDX WDEOHDXFRPPXQHQGpWHUPLQDQWSRXUFKDTXHWkFKHOHERQLQGLFH  *ULOOHGHEORFV EORFN,G[[   

EORFN'LP[ 

WKUHDG,G[[               

,QGLFHGHWDEOHDX                ,QGLFHGHWDEOHDX NLqPHFRORQQH  EORFN,G[[ EORFN'LP[WKUHDG,G[[  )LJXUH*ULOOHGHWkFKHVGpFRXSpHHQEORFVGHWkFKHV 3DU H[HPSOH VXU OD )LJXUH  OD WkFKH  GX EORF  UDQJHUD OH UpVXOWDW GDQV OD FRORQQHNGXWDEOHDXUpVXOWDWDYHFN ∗   

,, *ULOOHHWEORFVjGHX[GLPHQVLRQV /HV\VWqPHG¶LGHQWLILFDWLRQYXSUpFpGHPPHQW • G¶XQHWkFKHGDQVXQHJULOOHjXQHGLPHQVLRQ • G¶XQpOpPHQWGDQVOHWDEOHDXFRQWHQDQWOHYHFWHXUUpVXOWDW GLPHQVLRQ  HVWJpQpUDOLVDEOHSRXUGHVGRQQpHVUHSUpVHQWpHVVXUGHX[GLPHQVLRQV PDWULFHV  2Q UDSSHOOH TXH TXHOOHV TXH VRLHQWOHXUVGLPHQVLRQVOHVPDWULFHVVRQWWRXMRXUV VWRFNpHVGDQVGHVWDEOHDX[jXQHGLPHQVLRQ 'DQVOHFDVG¶XQHJULOOHHWGHEORFVjGHX[GLPHQVLRQVRQQHSDUOHUDGRQFTXHGH PDWULFHV2QDGRQFXQHJULOOHGHWkFKHVFRQVWLWXpHGHSOXVLHXUVFRORQQHVGHEORFV qUH GLPHQVLRQ HWGHSOXVLHXUVOLJQHVGHEORFV qPHGLPHQVLRQ &KDTXHEORFHVWFRQVWLWXpGH SOXVLHXUVFRORQQHVGHWkFKHVHWGHSOXVLHXUVOLJQHVGHWkFKHV

 

/HVPDWULFHVRSpUDQGHVHWODPDWULFHUpVXOWDWVRQWUDQJpHVGDQVGHVWDEOHDX[ 3RXUSRXYRLUFDOFXOHUXQpOpPHQWGHODPDWULFHUpVXOWDWFKDTXHWkFKHGHODJULOOH GRLWSRXYRLUDFFpGHU DX[GRQQpHVDSSURSULpHVGDQVOHVWDEOHDX[FRQWHQDQWOHVPDWULFHV RSpUDQGHV 2Q UDSSHOOH TXH FKDTXH WkFKH GH OD JULOOH FDOFXOH XQ pOpPHQW GH OD PDWULFH UpVXOWDW &¶HVW SRXUTXRL RQ XWLOLVHUD OHV LQGLFHV XWLOLVpV GDQV OD JULOOH GH WkFKHV SRXU LGHQWLILHUOHVpOpPHQWVFRQFHUQpVGDQVODPDWULFHUpVXOWDW (WDQWGRQQpTX¶RQpWXGLHXQHJULOOHHWGHVEORFVjGHX[GLPHQVLRQVRQXWLOLVHUD GRQF SRXU VH UpSpUHU GDQV OD PDWULFH UpVXOWDW RX GDQV OD JULOOH GH WkFKHV XQ V\VWqPH VLPLODLUH DX V\VWqPH FDUWpVLHQ [ \  /D GLIIpUHQFH HVW TXH O¶XQLWp \ QH VHUD SDV UHSUpVHQWpHGXEDVYHUVOHKDXW FRPPHGDQVOHV\VWqPHFDUWpVLHQ PDLVGXKDXWYHUVOH EDV SRXU SRXYRLU UDLVRQQHU SOXV IDFLOHPHQW VXU GHV GRQQpHV VWRFNpHV HQ PpPRLUH 'H SOXVOHVQRPEUHVXWLOLVpVVRQWGHVQRPEUHVHQWLHUVFRPPHQFDQWj 'DQV OHV GLIIpUHQWHV VWUXFWXUHV SUpGpILQLHV XWLOLVpHV UISFBE*EY CMPDL*EY CMPDL%JNHSJE%JN RQXWLOLVHUDGRQFOHFKDPS • [SRXUGpVLJQHUOHVFRORQQHV • \SRXUGpVLJQHUOHVOLJQHV 3DUH[HPSOH • [ YRXGUDGLUH©FRORQQHª • \ YRXGUDGLUH©OLJQHª 'HODPrPHPDQLqUHSRXUODVWUXFWXUHUISFBE*EY • ©UISFBE*EYY ªYRXGUDGLUH©ODWkFKHVHVLWXHGDQVODFRORQQHGHWkFKHV QƒGXEORFª • ©UISFBE*EYZ ªYRXGUDGLUH©ODWkFKHVHVLWXHGDQVODOLJQHGHWkFKHVQƒ GXEORFª 3RXUODVWUXFWXUHCMPDL*EY • ©CMPDL*EYY  ª YRXGUD GLUH ©OD WkFKH VH VLWXH GDQV OD FRORQQH GH EORFV Qƒª • ©CMPDL*EYZ ªYRXGUDGLUH©ODWkFKHVHVLWXHGDQVODOLJQHGHEORFVQƒª 'DQVODVXLWHGXWH[WHFHVQXPpURVG¶LGHQWLILFDWLRQGHWkFKHHWGHEORFVWRFNpV GDQVOHVVWUXFWXUHVUISFBE*EYHWCMPDL*EYVHURQWDSSHOpV©LQGLFHGHWkFKHªHW©LQGLFH GHEORFªFRPPHSUpFpGHPPHQW 3RXUODVWUXFWXUHCMPDL%JN • ©CMPDL%JNY ªYRXGUDGLUH©FKDTXHEORFFRQWLHQWFRORQQHVGHWkFKHVª • ©CMPDL%JNZ ªYRXGUDGLUH©FKDTXHEORFFRQWLHQWOLJQHVGHWkFKHVª 3RXUODVWUXFWXUHHSJE%JN • ©HSJE%JNY ªYRXGUDGLUH©ODJULOOHFRQWLHQWFRORQQHVGHEORFVª • ©HSJE%JNZ ªYRXGUDGLUH©ODJULOOHFRQWLHQWOLJQHVGHEORFVª 3RXUDFFpGHUjO¶pOpPHQWYRXOXGXWDEOHDXFRQWHQDQWODPDWULFHUpVXOWDWODWkFKH FRQFHUQpHGRLWFRQQDvWUHO¶LQGLFHDSSURSULp GXWDEOHDXjXQHGLPHQVLRQ TXLSHUPHWWUD G¶DFFpGHUDXLqPHpOpPHQWGXMqPHEORFGHODPDWULFHUpVXOWDW (WDQWGRQQpTXHUISFBE*EYUHSUpVHQWHO¶LQGLFHG¶XQHWkFKHGDQVXQEORFHWQRQ SDV GDQV OD JULOOH SRXU SRXYRLU FDOFXOHU FHW LQGLFH GH WDEOHDX OD WkFKH GRLW G¶DERUG FDOFXOHUO¶LQGLFHGHODWkFKHGDQVODJULOOH

 

1RXVDSSHOHURQV • ©DPMªO¶LQGLFHFRORQQH [ G¶XQHWkFKHGDQVODJULOOH • ©SPXªO¶LQGLFHOLJQH \ G¶XQHWkFKHGDQVODJULOOH 8QHWkFKHGHYUDGRQFFDOFXOHU • VRQLQGLFH©DPMªjSDUWLUGH P VRQLQGLFHGHFRORQQH UISFBE*EYY jO¶LQWpULHXUGXEORFGDQVOHTXHOHOOHVH WURXYH P O¶LQGLFHGHFRORQQHGXEORF CMPDL*EYY GDQVOHTXHOHOOHVHWURXYH P OHQRPEUHGHWkFKHV CMPDL%JNY TXHFRPSRUWHXQHOLJQHGHWkFKHVG¶XQEORF • VRQLQGLFH©SPXªjSDUWLUGH P VRQ LQGLFH GH OLJQH UISFBE*EYZ  j O¶LQWpULHXU GX EORF GDQV OHTXHO HOOH VH WURXYH P O¶LQGLFHGHOLJQHGXEORF CMPDL*EYZ GDQVOHTXHOHOOHVHWURXYH P GXQRPEUHGHWkFKHV CMPDL%JNZ TXHFRPSRUWHXQHFRORQQHGHWkFKHVG¶XQ EORF /¶LQGLFH ©DPMª VH FDOFXOH GH PDQLqUH WUqV VLPLODLUH j O¶LQGLFH XWLOLVp SRXU DFFpGHUjXQWDEOHDXjXQHGLPHQVLRQFRQWHQDQWXQYHFWHXU 2QUDSSHOOHTXHSRXUXQYHFWHXUFKDTXHWkFKHDYDLWDFFqV • DXQRPEUHGHWkFKHV1QRPEUHGHWkFKHVSDUEORF • jODWkFKHLQXPpURG¶LGHQWLILFDWLRQGHWkFKHGDQVXQEORF • DXEORFMQXPpURG¶LGHQWLILFDWLRQGHEORFGDQVODJULOOH /¶LQGLFH N GDQV OH WDEOHDX FRQWHQDQW OH YHFWHXU UpVXOWDW  GH O¶pOpPHQW FDOFXOp FRUUHVSRQGDQWjODWkFKHLGXEORFMpWDLWGRQQpSDU N M ∗ 1  L  ,FLSRXUODGLPHQVLRQ©FRORQQHª [ LOVXIILUDGHUHPSODFHU • 1SDUCMPDL%JNY • LSDUUISFBE*EYY • MSDUCMPDL*EYY 2QDXUDGRQF DPM CMPDL*EYY CMPDL%JNYUISFBE*EYY 'HPrPHSPXVHFDOFXOHGHIDoRQWUqVVLPLODLUH SPX CMPDL*EYZ CMPDL%JNZUISFBE*EYZ /D)LJXUHUHSUpVHQWHO¶RUJDQLVDWLRQGHVWkFKHVDYHF • XQHJULOOHGHOLJQHVHWFRORQQHVGHEORF • GHVEORFVFRPSRUWDQWFKDFXQOLJQHVHWFRORQQHVGHWkFKHV 8QHWkFKHSDUWLFXOLqUHHVWLGHQWLILpHGHIDoRQXQLTXHGDQVOHEORFSDUVHVLQGLFHV UISFBE*EYYHWUISFBE*EYZ HWXQEORFHVWLGHQWLILppJDOHPHQWGHIDoRQXQLTXHGDQV ODJULOOHGHWkFKHVSDUVHVLQGLFHV CMPDL*EYYHWCMPDL*EYZ  'RQF OD FRQQDLVVDQFH GHV LQGLFHV UISFBE*EYY UISFBE*EYZ CMPDL*EYYHW CMPDL*EYZLGHQWLILHFRPSOqWHPHQWXQHWkFKHSDUPLWRXWHVFHOOHVGHODJULOOH$SDUWLUGH FHV LQGLFHV RQ SHXW DORUV GpWHUPLQHU O¶HPSODFHPHQW R GRLW rWUH VWRFNp OH UpVXOWDW GX FDOFXOGDQVODPDWULFHUpVXOWDW&HWHPSODFHPHQWHVWGRQQpSDUSPXHWDPMWHOTXH • SPXCMPDL*EYZ CMPDL%JNZ UISFBE*EYZ • DPMCMPDL*EYY CMPDL%JNY UISFBE*EYY

 

3DUH[HPSOHFDOFXORQVO¶LQGLFHSPXHWDPMGHODWkFKH  GXEORF  VXUOD )LJXUH '¶DERUGRQLGHQWLILHOHVLQGLFHVXWLOHV • UISFBE*EYY • UISFBE*EYZ • CMPDL*EYY • CMPDL*EYZ • CMPDL%JNY • CMPDL%JNZ  \  *ULOOHjGLPHQVLRQV • OLJQHVGHEORFVJULG'LP\  • FRORQQHVGHEORFVJULG'LP[  EORFN,G[ %ORF   %ORF   %ORF   

%ORF   %ORF   %ORF   

EORFN,G[[    \

 %ORF   GLPHQVLRQV • OLJQHVGHWkFKHVEORFN'LP\  • FRORQQHVGHWkFKHVEORFN'LP[  WKUHDG,G[ 7kFKH  7kFKH  7kFKH  7kFKH  

7kFKH  7kFKH  7kFKH  7kFKH  

7kFKH  7kFKH  7kFKH  7kFKH  

WKUHDG,G[[      )LJXUH'HVFULSWLRQGXV\VWqPHG¶LQGLFHV GHVEORFVHWWkFKHV  2QSHXWDORUVIDLUHOHFDOFXODLVpPHQW • SPX   • DPM  

 

/DWkFKHHQTXHVWLRQHVWGRQFVLWXpH • VXUODOLJQHGHWkFKHVQƒGHODJULOOH • VXUODFRORQQHGHWkFKHVQƒGHODJULOOH 8QHIRLVTXHODWkFKHDFDOFXOpVHVLQGLFHVGHWkFKHVDPMHWSPXGDQVODJULOOHHOOH SHXWHQGpGXLUHO¶LQGLFHGHO¶pOpPHQWUpVXOWDWjFDOFXOHUGDQVOHWDEOHDXjXQHGLPHQVLRQ FRQWHQDQWODPDWULFHUpVXOWDW 2QUDSSHOOHTXHO¶LQGLFHGHWkFKHHVWOHPrPHTXHO¶LQGLFHGHO¶pOpPHQWUpVXOWDWj FDOFXOHUGDQVOHWDEOHDX jXQHGLPHQVLRQ FRQWHQDQWODPDWULFHUpVXOWDW&¶HVWSRXUTXRL GDQVO¶H[HPSOHTXLVXLWQRXVQHSDUOHURQVSOXVGHWkFKHPDLVGHGRQQpH $YDQWGHFDOFXOHUFHWLQGLFHLOIDXWVDYRLUTXH&8'$VWRFNHOHVPDWULFHV©SDU OLJQHªGDQVXQWDEOHDXjXQHGLPHQVLRQ& HVWjGLUHTXHODSUHPLqUHOLJQHGHODPDWULFH HVW G¶DERUG VWRFNpH GDQV OH WDEOHDXODGHX[LqPHOLJQHHVWVWRFNpH j OD VXLWH GH OD SUHPLqUHHWDLQVLGHVXLWHMXVTX¶jODGHUQLqUHOLJQHGHODPDWULFH /D)LJXUHLOOXVWUHOHUDQJHPHQWSDUOLJQHG¶XQHPDWULFHGDQVXQWDEOHDXjXQH GLPHQVLRQ

 M  

 ; ; ; ;

 ; ; ; ;

L  ; ; ; ;

 ; ; ; ; 0DWULFHjWUDLWHU

/LJQH /LJQH /LJQH /LJQH

;; ; ;; ; ; ; ; ; ; ; ; ; ; ; 0DWULFHUDQJpHSDUOLJQH URZPDMRU  GDQVXQWDEOHDXjXQHGLPHQVLRQ  )LJXUH6\VWqPHGHUDQJHPHQWSDUOLJQHG¶XQHPDWULFHGDQVXQWDEOHDXjXQHGLPHQVLRQ &RPPHQoRQVG¶DERUGSDUXQH[HPSOHVLPSOHSRXUFDOFXOHUO¶LQGLFHG¶XQHGRQQpH G¶XQHPDWULFHVWRFNpHGDQVXQWDEOHDX3RXUFDOFXOHUO¶LQGLFHGHODGRQQpH;LOVXIILW GH • FRPSWHUOHQRPEUHGHGRQQpHVSDUOLJQHQ  • FRPSWHU OH QRPEUH GH OLJQHV SUpFpGHQW OD OLJQH FRQWHQDQW OD GRQQpH ; &H QRPEUHHVWOHPrPHTXHO¶LQGLFHGHODOLJQHFRQWHQDQWODGRQQpH;F¶HVWjGLUHL   • FRPSWHUOHQRPEUHGHFRORQQHVSUpFpGHQWODOLJQHFRQWHQDQWODGRQQpH;&H QRPEUHHVWOHPrPHTXHO¶LQGLFHGHODFRORQQHFRQWHQDQWODGRQQpH;F HVWjGLUH M  • FDOFXOHUOHQRPEUHGHGRQQpHVSUpFpGDQWODGRQQpHGRQWRQUHFKHUFKHO¶LQGLFHN &H QRPEUH GH GRQQpHV HVW OH PrPH TXH O¶LQGLFH UHFKHUFKp 3DU FRQVpTXHQW SRXU FDOFXOHUO¶LQGLFHLOVXIILWGHFDOFXOHUOHQRPEUHGHGRQQpHV SUpFpGDQWODGRQQpHGRQW RQUHFKHUFKHO¶LQGLFH jSDUWLUGHQLHWM2QDGRQF N L ∗ Q  M 'DQVFHWH[HPSOH

RQDGRQFN  ∗    (QHIIHWHQFRPSWDQWjSDUWLUGHRQUHPDUTXHTXH; HVWELHQjO¶LQGLFHGDQVOHWDEOHDXjXQHGLPHQVLRQ FRQWHQDQWODPDWULFH 

 

&HWWH IDoRQ GH FDOFXOHU O¶LQGLFH HVW JpQpUDOLVDEOH j XQH PDWULFH UpVXOWDW VL O¶RQ FRQQDvWOHVLQGLFHVGHWkFKHVGDQVODPDWULFH LQGLFHVSPXHWDPMGpFULWSUpFpGHPPHQW  'RQFSRXUWRXWHPDWULFHRQREWLHQWO¶LQGLFHNG¶XQHGRQQpHGHODPDWULFH VWRFNpH GDQVXQWDEOHDX HQUHPSODoDQWGDQVOHFDOFXOGHNSUpFpGHQW • Q SDU OD ODUJHXU GH OD PDWULFH UpVXOWDW F HVWjGLUH XJEUI XJEUI VHUD DSSHOpH "TUSJEFGDQVOHSURJUDPPH • LSDUSPX • MSDUDPM /¶LQGLFHG¶XQHGRQQpHGHODPDWULFHUpVXOWDWGDQVXQWDEOHDXjXQHGLPHQVLRQHVW GRQF N URZ∗ ZLGWK  FRO  /D)LJXUHHWOD)LJXUHLOOXVWUHQWFHV\VWqPHGHFDOFXOG¶LQGLFH  EORFN,G[\ WKUHDG,G[\ URZ  EORFN,G[[    FRO  WKUHDG,G[[                          ; JULG'LP\ EORFV JULG'LP\   WkFKHV KHLJKW  

   WkFKHV  EORFN'LP\      EORFN'LP[  WkFKHV JULG'LP[ EORFV ZLGWK WkFKHV

&DOFXOGHO¶LQGLFHGHWkFKHGDQVXQHPDWULFH FRQWHQXHSDUXQWDEOHDX&jXQHGLPHQVLRQ jSDUWLUGH VHVFRRUGRQQpHVGHX[GLPHQVLRQV OHVOLJQHVGHODPDWULFHVRQWUDQJpHVOHVXQHVjODVXLWHGHVDXWUHV GDQVOHWDEOHDXXQHGLPHQVLRQ  N URZ JULG'LP[FRO URZ ZLGWKFRO ([HPSOHV &DOFXOGHO¶LQGLFHGHWDEOHDXSRXUODWkFKHGpVLJQpHSDU©;ª URZ EORFN,G[\ EORFN'LP\WKUHDG,G[\    FRO EORFN,G[[ EORFN'LP[WKUHDG,G[[    N URZ ZLGWKFRO    QXPpURGHWkFKHGDQVXQWDEOHDXjXQHGLPHQVLRQ FRPPHQoDQWSDUODWkFKH   )LJXUH6\VWqPHGHFDOFXOG¶LQGLFHGHODGRQQpHG¶XQHPDWULFHVWRFNpHSDUOLJQHGDQVXQWDEOHDXjXQHGLPHQVLRQ

 

,, 2SpUDWLRQVH[pFXWpHVSDUOHNHUQHODXQLYHDXJOREDO /¶LQWpUrW GH OD SURJUDPPDWLRQ &8'$ HVW G¶H[pFXWHU GHV FDOFXOV SDUDOOpOLVDEOHV VXUFDUWHJUDSKLTXHSOXVUDSLGHPHQWTXHVXU&38 2URQDYXSUpFpGHPPHQWTXHO¶DFFqVjODPpPRLUHSDUWDJpHHVWEHDXFRXSSOXV UDSLGHTXHO¶DFFqVjODPpPRLUHJOREDOH&¶HVWSRXUTXRLQRXVSULYLOpJLHURQVO¶XWLOLVDWLRQ GHODPpPRLUHSDUWDJpHSRXUODPXOWLSOLFDWLRQGHGHX[PDWULFHV &HSHQGDQW LO IDXW VH UDSSHOOHU TXH PDOJUp VD UDSLGLWp G¶DFFqVODPpPRLUH SDUWDJpHHVWWUqVOLPLWpHSDUUDSSRUWjODPpPRLUHJOREDOHHQSDUWLFXOLHU • OD PpPRLUH SDUWDJpH HVW ORFDOLVpH SK\VLTXHPHQW GDQV FKDFXQ GHV  PXOWLSURFHVVHXUV G¶XQ SURFHVVHXU JUDSKLTXH 3DU FRQVpTXHQW OHV GRQQpHV j WUDLWHU VRQWEHDXFRXSSOXVSURFKHVSK\VLTXHPHQWGHVF°XUVGHWUDLWHPHQWFHTXLH[SOLTXHVD UDSLGLWp G¶DFFqV 0DLV OD PpPRLUH SDUWDJpH GH FKDTXH PXOWLSURFHVVHXU HVW UHODWLYHPHQWOLPLWpHNRPD[LPXPVHXOHPHQWGHPpPRLUHSDUWDJpHDFFHVVLEOHj WRXWHVOHVWkFKHVG¶XQEORF • OD PpPRLUH JOREDOH SRVVqGH XQ HVSDFH PpPRLUH WUqV pWHQGX  *R  HOOH HVW DFFHVVLEOH SDU WRXWHV OHV WkFKHV G¶XQH JULOOH GH WkFKHV 0DLV HOOH HVW ORFDOLVpH SK\VLTXHPHQW j O¶H[WpULHXU GX SURFHVVHXU JUDSKLTXH VXU OD FDUWH JUDSKLTXH FH TXL H[SOLTXHUHODWLYHOHQWHXU &¶HVWSRXUTXRL • OD PpPRLUH JOREDOH DXUD VXIILVDPPHQW G¶HVSDFH SRXU VWRFNHU O¶LQWpJUDOLWp GHV GHX[PDWULFHVRSpUDQGHV • ODPpPRLUHSDUWDJpHQ¶DXUDSDVVXIILVDPPHQWG¶HVSDFHSRXUVWRFNHUO¶LQWpJUDOLWp GHVGHX[PDWULFHVRSpUDQGHV 3DUFRQVpTXHQWDSUqVOHWUDQVIHUWGHVGRQQpHVGHO¶K{WHYHUVODPpPRLUHJOREDOH GH OD FDUWH JUDSKLTXH OHV PDWULFHV RSpUDQGHV GHYURQW rWUH GpFRXSpHV HQ VRXVPDWULFHV VXIILVDPPHQWSHWLWHVSRXUTXHOHXUVGRQQpHVSXLVVHQWrWUHVWRFNpHVHQPpPRLUHSDUWDJpH /D)LJXUHHWOD)LJXUHLOOXVWUHQWXQGpFRXSDJHSRVVLEOHGXFDOFXO 6XUFHVGHX[ILJXUHVRQUpDOLVHODPXOWLSOLFDWLRQG¶XQHPDWULFH$GHWDLOOH∗   EORFV HWG¶XQHPDWULFH%GHWDLOOH ∗   EORFV /HUpVXOWDWHVWGRQFXQHPDWULFHFDUUpH GHWDLOOH∗   EORFV 

6LRQFRQVLGqUHXQpOpPHQWLVROp&LMGHODPDWULFHUpVXOWDW )LJHW OHFDOFXO Q− UpVXOWHHQ &L M ¦ $LN %N M  N  $YHF • $LNpOpPHQWVLWXpjO¶LQWHUVHFWLRQGHODOLJQHLHWGHODFRORQQHNGHODPDWULFH$ • %NMpOpPHQWVLWXpjO¶LQWHUVHFWLRQGHODOLJQHNHWGHODFRORQQHMGHODPDWULFH% • &LMpOpPHQWVLWXpjO¶LQWHUVHFWLRQGHODOLJQHLHWGHODFRORQQHMGHODPDWULFH& 3RXUQHSDVVXUFKDUJHUODPpPRLUHSDUWDJpHRQUpDOLVHOHFDOFXOHQGHX[pWDSHVHQ HIIHFWXDQWODPXOWLSOLFDWLRQGHVVRXVPDWULFHV • $∗ % SXLVGH • $ ∗ %  &HV GHX[ pWDSHV DX QLYHDX GHV VRXVPDWULFHV VH WUDGXLVHQW HQ GHX[ FDOFXOV DX QLYHDXGHO¶pOpPHQW&LM

  

Q  − • ∗  >&L M @ S ¦ $LN %N  M SHQGDQWODPXOWLSOLFDWLRQGHVVRXVPDWULFHV$ %  N  Q− • ∗  >&L M @ S ¦ $LN %N M SHQGDQWODPXOWLSOLFDWLRQGHVVRXVPDWULFHV$ %   N Q  

 0DWULFHRSpUDQGH% % % % KW %/2&.B6,'( J %KHL &ROM %/2&.B6,'(

0DWULFHRSpUDQGH$ 0DWULFHUpVXOWDW& $ & & &

$ & & & KW J /LJQHL KHL

&LM $ %/2&.B6,'( $ & & &

%/2&.B6,'( %/2&.B6,'( %/2&.B6,'(

$ZLGWK %ZLGWK /HEORFGHWkFKHV%7 • WUDQVIqUH OHVEORFVRSpUDQGHV$HW *ULOOHGHWkFKHV % GDQV OD PpPRLUH SDUWDJpH GX %7 %7 %7 PXOWLSURFHVVHXU0 • H[pFXWHODPXOWLSOLFDWLRQGH$SDU 0 0 0 % HW VWRFNH OH EORF GH UpVXOWDWV SDUWLHOV HQ PpPRLUH GH UHJLVWUHV GDQVOHPXOWLSURFHVVHXU0 %7 %7 %7 0 0 0 %/2&.B6,'( %7 %7 %7

0 0 0 %/2&.B6,'(  )LJXUHPXOWLSOLFDWLRQGHODqUHFRORQQHGHEORFVGHODPDWULFH$DYHFODqUHOLJQHGHEORFVGHODPDWULFH%

/¶pOpPHQW&LMHVWpJDODXFXPXOGXUpVXOWDWGHVGHX[pWDSHV /DUpSDUWLWLRQGHVFDOFXOVSRXUUDVHIDLUHDLQVL

 

• FKDUJHPHQWGH$HW%HQPpPRLUHSDUWDJpH • FDOFXOGXUpVXWDWSDUWLHOGH$∗ %  • FKDUJHPHQWGH$HW%HQPpPRLUHSDUWDJpH • FDOFXOGXUpVXWDWSDUWLHOGH$ ∗ %  HWFXPXODYHFOHUpVXOWDWSDUWLHOSUpFpGHQW • WUDQVIHUWGHVUpVXOWDWVGHODPpPRLUHGHUHJLVWUHYHUVODPpPRLUHJOREDOH

 0DWULFHRSpUDQGH% KW %/2&.B6,'( &ROM J % % % %KHL %/2&.B6,'(

0DWULFHRSpUDQGH$ 0DWULFHUpVXOWDW& $ & & &

$ & & & KW J /LJQHL KHL

&LM $ %/2&.B6,'( $ & & &

%/2&.B6,'( %/2&.B6,'( %/2&.B6,'(

$ZLGWK %ZLGWK /HEORFGHWkFKHV%7 • WUDQVIqUHOHVEORFVRSpUDQGHV$HW *ULOOHGHWkFKHV % GDQV OD PpPRLUH SDUWDJpH GX %7 %7 %7 PXOWLSURFHVVHXU0 • H[pFXWHODPXOWLSOLFDWLRQGH$SDU 0 0 0 % HW FXPXOH OH EORF GH UpVXOWDWV SDUWLHOV HQ PpPRLUH GH UHJLVWUHV GDQVOHPXOWLSURFHVVHXU0 %7 %7 %7 0 0 0 %/2&.B6,'( %7 %7 %7

0 0 0 %/2&.B6,'(  )LJXUHPXOWLSOLFDWLRQGHODqPHFRORQQHGHEORFVGHODPDWULFH$DYHFODqPHOLJQHGHEORFVGHODPDWULFH% 'DQV OH FDV JpQpUDO SRXU UpDOLVHU XQH PXOWLSOLFDWLRQ GH PDWULFHV XWLOLVDQW OD PpPRLUHSDUWDJpHRQGHYUDGRQFVXLYUHODSURFpGXUHJOREDOHVXLYDQWH

 

• FKDUJHPHQW GH OD qUH FRORQQH GH EORFV GH OD PDWULFH $ GDQV OHV PpPRLUHV SDUWDJpHVGHVPXOWLSURFHVVHXUV • FKDUJHPHQWGHODqUHOLJQHGHEORFVGHODPDWULFH%GDQVOHVPpPRLUHVSDUWDJpHV GHVPXOWLSURFHVVHXUV • PXOWLSOLFDWLRQ GH OD qUH FRORQQH GH EORFV GH OD PDWULFH $SDUODqUH OLJQH GH EORFVGHODPDWULFH% • VWRFNDJHGHVUpVXOWDWVSDUWLHOV • FKDUJHPHQW GH OD qUH FRORQQH GH EORFV GH OD PDWULFH $ GDQV OHV PpPRLUHV SDUWDJpHVGHVPXOWLSURFHVVHXUV • FKDUJHPHQWGHODqUHOLJQHGHEORFVGHODPDWULFH%GDQVOHVPpPRLUHVSDUWDJpHV GHVPXOWLSURFHVVHXUV • PXOWLSOLFDWLRQGHODqPHFRORQQHGHEORFVGHODPDWULFH$HWGHODqPHOLJQHGH EORFVGHODPDWULFH% • FXPXO GHV UpVXOWDWV GH FHWWH PXOWLSOLFDWLRQ DYHF OHV UpVXOWDWV SDUWLHOV REWHQXV SUpFpGHPPHQW • UpSpWLWLRQ GHV RSpUDWLRQV GH WUDQVIHUW PXOWLSOLFDWLRQ FXPXO MXVTX¶j DUULYHU DX FXPXO GX UpVXOWDW GH OD PXOWLSOLFDWLRQ GH OD GHUQLqUH FRORQQH GH EORFV GH $SDUOD GHUQLqUHOLJQHGHEORFVGH% • WUDQVIHUW GH OD PDWULFH UpVXOWDW YHUV OH WDEOHDX SUpYX SRXU VRQ VWRFNDJH HQ PpPRLUHJOREDOH

,, 2SpUDWLRQVH[pFXWpHVSDUFKDTXHPXOWLSURFHVVHXU /D SURFpGXUH TXL YLHQW G¶rWUH GpFULWH SHUPHWWDQW O¶XWLOLVDWLRQ GH OD PpPRLUH SDUWDJpHHVWXQHSURFpGXUHYXHG¶XQSRLQWGHYXHJOREDO/DJULOOHGHWkFKHVUpDOLVHGRQF O¶HQVHPEOHGHVRSpUDWLRQVTXLYLHQWG¶rWUHGpFULWH 3RXUPLHX[FRPSUHQGUHODPDQLqUHGRQWHVWRUJDQLVpOHFDOFXORQGRLWSURJUHVVHU G¶XQFUDQGDQVOHQLYHDXGHGpWDLOGHVRSpUDWLRQVQRXVDOORQVGRQFpWXGLHUOHVRSpUDWLRQV H[pFXWpHVDXQLYHDXGXPXOWLSURFHVVHXU 3RXU VLPSOLILHU OHV H[SOLFDWLRQV QRXV DOORQV FRQVLGpUHU OH WUDLWHPHQW G¶XQ EORF UpVLGHQW SDU PXOWLSURFHVVHXU 2Q D GpMj YX TX¶XQ PXOWLSURFHVVHXU SHXW DFFHSWHU XQ RX SOXVLHXUV EORFV GH WkFKHV VHORQ OHV UHVVRXUFHV GLVSRQLEOHV  TX¶LOWUDLWHVLPXOWDQpPHQW OHVEORFVUpVLGHQWV8QPXOWLSURFHVVHXUSHXWWUDLWHUDXPD[LPXPEORFVUpVLGHQWV 'DQV FHW H[HPSOH OD JULOOH GH WkFKH HVW GpFRXSpH HQ EORFV GH WkFKHV SDU OH JHVWLRQQDLUHGHWkFKHV&KDTXHPXOWLSURFHVVHXUUHoRLWGRQFXQEORFGHWkFKHVTXLGHYLHQW EORFUpVLGHQW 2Q UDSSHOOH TXH OH SURFHVVHXU JUDSKLTXH XWLOLVp SRXU FH PpPRLUH FRPSRUWH  PXOWLSURFHVVHXUVVXUOHVTXHFRPSRUWHO¶DUFKLWHFWXUH)HUPL7RXVOHVPXOWLSURFHVVHXUV GLVSRQLEOHVUHoRLYHQWGRQFXQEORFGHWkFKHVFKDFXQTXLGHYLHQWEORFUpVLGHQW8QHIRLV TX¶XQPXOWLSURFHVVHXUDH[pFXWpVRQEORFGHWkFKHVUpVLGHQWOHJHVWLRQQDLUHGHWkFKHVOXL HQHQYRLHXQVXLYDQWTXLGHYLHQWjVRQWRXUEORFUpVLGHQW &KDFXQGHVEORFVGHWkFKHVHVWFKDUJpGHO¶H[pFXWLRQG¶XQHSDUWLHGHVRSpUDWLRQV FRPPHFHODDpWpGpFULWSUpFpGHPPHQW †,, & HVWjGLUHTX¶XQEORFGHWkFKHVQH WUDLWH • TX¶XQHVHXOHOLJQHGHEORFVGHODPDWULFH$ • TX¶XQHVHXOHFRORQQHGHEORFVGHODPDWULFH%



Chaque bloc de tâches d’un multiprocesseur exécute simultanément les mêmes opérations qu’un autre bloc de tâches d’un autre multiprocesseur mais sur des données différentes. Chaque bloc de tâches transfère donc une partie des données opérandes dans la mémoire partagée du multiprocesseur dans lequel il se trouve, exécute sa part de calcul, puis transfère une partie de la matrice de résultat de la mémoire de registres du multiprocesseur dans lequel il se trouve vers la mémoire globale de la carte graphique. Si on se base sur la procédure globale précédente (§II.4.2.4) permettant l’utilisation de la mémoire partagée pour la multiplication de matrice, mais cette fois au niveau d’un bloc isolé, chaque multiprocesseur va traiter son bloc de tâches en suivant plusieurs étapes chronologiques. La Figure 29 illustre ces différentes étapes pour le bloc BT4 seul (des Figure 27 et Figure 28). Il faut se rappeler que les autres blocs exécutent les mêmes opérations simultanément mais sur des données différentes.

Calcul de la Calcul de la Transfert 1ère sous- Transfert 2ème sous- Transfert de Synchronisation Synchronisation des données matrice des données Synchronisation matrice Synchronisation la matrice de A1 et B1 résultat de A4 et B4 résultat résultat

1 2 3 4 5

Figure 29 : Chronogramme du calcul du point de vue d’un multiprocesseur Les 5 étapes de la Figure 29 sont détaillées ci-dessous : 1. Transfert des données de A1 et B1 : les tâches d’un bloc prennent en charge le transfert en parallèle des données nécessaires au calcul. Le transfert de l’ensemble des données est réparti dans les différentes tâches. 2. Calcul de la 1ère sous-matrice de résultats partiels : le calcul peut commencer sur chaque tâche à la condition que toutes les tâches sans exception aient terminé le transfert des données. Il est donc nécessaire, à ce moment du calcul, de synchroniser toutes les tâches. 3. Transfert des données de A4 et B4. Le transfert peut commencer à condition que toutes les tâches aient terminé leur calcul. Il est donc à nouveau nécessaire de synchroniser toutes les tâches. 4. Calcul de la 2ème sous-matrice de résultats partiels. Cumul du résultat avec la 1ère sous-matrice de résultats partiels. Ce calcul ne commence que lorsque toutes les tâches ont terminé le transfert des données opérandes de A4 et B4. Une synchronisation est donc à nouveau nécessaire. 5. Transfert du résultat : la sous-matrice résultat est transférée de la mémoire de registres vers la mémoire globale. Ce transfert ne peut commencer que si toutes les tâches ont terminé leur calcul. Une synchronisation est donc à nouveau nécessaire.

II.4.2.6 Ensemble des opérations exécutées par une tâche isolée On vient de décrire la procédure montrant l’enchaînement des opérations réalisées par un multiprocesseur isolé pour exécuter son bloc de tâches. Deux blocs étaient multipliés l’un par l’autre.

66 

3RXUFRPSUHQGUHHQFRUHSOXVHQGpWDLOVODPDQLqUHGRQWHVWRUJDQLVpOHFDOFXORQ GRLW HQFRUH SURJUHVVHU G¶XQ FUDQ GDQV OH QLYHDX GH GpWDLO GHV RSpUDWLRQV QRXV DOORQV GRQFpWXGLHUOHVRSpUDWLRQVH[pFXWpHVSDUXQHWkFKHLVROpHDXVHLQG¶XQEORFGHWkFKHV 2QUDSSHOOHG¶DERUGTXHODPpPRLUHSDUWDJpHG¶XQPXOWLSURFHVVHXUHVWDFFHVVLEOH j WRXWHV OHV WkFKHV GX EORF GH WkFKHV UpVLGDQW VXU FH PXOWLSURFHVVHXU 2Q UDSSHOOH TXH FKDTXH WkFKH D DFFqV j XQ FHUWDLQ QRPEUH GH UHJLVWUHV GH OD PpPRLUH GH UHJLVWUH PDLV TX¶XQHWkFKHQ¶DSDVDFFqVDX[UHJLVWUHVGHVDXWUHVWkFKHVGDQVODPpPRLUHGHUHJLVWUHV &KDFXQHGHVWkFKHVG¶XQEORFGHWkFKHVHVWFKDUJpHGHO¶H[pFXWLRQG¶XQHSDUWLH GHVRSpUDWLRQVGpFULWHVSUpGpGHPPHQWGDQVODSURFpGXUHG¶H[FXWLRQG¶XQEORFGHWkFKHV &KDTXHWkFKHG¶XQEORFH[pFXWHVLPXOWDQpPHQWOHVPrPHVRSpUDWLRQVTX¶XQHDXWUHWkFKH GXPrPHEORFPDLVVXUGHVGRQQpHVGLIIpUHQWHV &KDTXHWkFKHGRLW • DVVXUHU OH WUDQVIHUW G¶XQH SDUWLH GHV GRQQpHV GH OD PpPRLUH JOREDOH YHUV OD PpPRLUHSDUWDJpH • H[pFXWHUVDSDUWGHFDOFXO • WUDQVIpUHUVRQUpVXOWDWSDUWLHOGHVRQUHJLVWUHGHUpVXOWDWYHUVODPpPRLUHJOREDOH GHODFDUWHJUDSKLTXH 3RXUTXHFHODVRLWSRVVLEOHRQGRLWGpWHUPLQHUSRXUFKDTXHWkFKHTXHOOHVGRQQpHV VRQW WUDQVIpUpHV GH IDoRQ j FH TXH O¶HQVHPEOH GHV WUDQVIHUWV UpDOLVpV SDU OHV WkFKHV HIIHFWXHELHQOHWUDQVIHUWGHO¶HQVHPEOHGHVGRQQpHV &KDTXHWkFKHGRLWSRXYRLULGHQWLILHUOHVGRQQpHVjWUDQVIpUHUFHTX¶HOOHSHXWIDLUH jO¶DLGHGHVYDULDEOHVSUpGpILQLHVUISFBE*EYCMPDL*EYCMPDL%JNHWHSJE%JNGHIDoRQ VLPLODLUHDXVWRFNDJHGHVUpVXOWDWVH[SOLTXpGDQVOHSDUDJUDSKH,,/DIDoRQODSOXV UDSLGHGHWUDQVIpUHUXQEORFGHGRQQpHVHVWTXHOHVGRQQpHVjWUDQVIpUHUVRLHQWUpSDUWLHV GHIDoRQpJDOHHQWUHOHVWkFKHV 6L OHV GRQQpHV j WUDQVIpUHU pWDLHQW UpSDUWLHV LQpJDOHPHQW LO \ DXUDLWXQpFDUWGH WHPSV EHDXFRXS WURS JUDQG HQWUH OHV WUDQVIHUWV SRXU SRXYRLU FRQVLGpUHU FHV WUDQVIHUWV FRPPHRSWLPLVpV3RXURSWLPLVHUOHWUDQVIHUWLOHVWGRQFSUpIpUDEOHTXH ODTXDQWLWpGH GRQQpHVjWUDQVIpUHUVRLWXQPXOWLSOHGXQRPEUHGHWkFKHVSDUEORF&HFLSHUPHWDLQVLXQH UpSDUWLWLRQpJDOHGHVGRQQpHVjWUDQVIpUHUHQWUHOHVWkFKHV 'DQVOHFDGUHGHFHPpPRLUHLODpWpFKRLVLGHWUDQVIpUHUDXWDQWGHGRQQpHVTXH GHWkFKHVFHTXLSHUPHWjFKDTXHWkFKHGHFDOFXOHUO¶LQGLFHGHVGRQQpHVjWUDQVIpUHUj SDUWLUGHFHVSURSUHVLQGLFHVGHWkFKH&HTXLYHXWGLUHpJDOHPHQWTX¶XQHWkFKHLVROpHQH WUDQVIqUHTX¶XQHVHXOHGRQQpHGHOD • PDWULFH$ • PDWULFH% 3DUFRQWUHSRXUH[pFXWHUOHSURGXLWVFDODLUHG¶XQHOLJQHGHGRQQpHVGHODPDWULFH $SDUXQHFRORQQHGHGRQQpHVGHODPDWULFH%XQHWkFKHLVROpHDpYLGHPPHQWEHVRLQQRQ SDVG¶XQHVHXOHGRQQpHGHFKDFXQHGHVPDWULFH$HW%PDLV • G¶XQHOLJQHGHGRQQpHVGHODPDWULFH$ • G¶XQHFRORQQHGHGRQQpHVGHODPDWULFH% 8QH WkFKH LVROpH D GRQF EHVRLQ GH EHDXFRXS SOXV GH GRQQpHV TXH FH TX¶HOOH WUDQVIqUHF HVWjGLUHTX¶XQHWkFKHLVROpHDEHVRLQGHVGRQQpHVTXHGHQRPEUHXVHVDXWUHV WkFKHVDXURQWWUDQVIpUp



Cependant, en raison de la structure physique d’une carte graphique, la vitesse de transfert peut varier de quelques fractions de secondes selon les tâches. Certaines tâches auront terminé leur transfert juste avant ou juste après d’autres tâches. Le calcul ne doit débuter que lorsqu’on est sûr que toutes les données ont été transférées, c'est-à-dire que toutes les tâches se déroulant en parallèle dans un bloc ont fini leur transfert. Si les tâches en avance n’attendent pas la fin du transfert des tâches en retard, les tâches en avance ne disposeront pas de toutes les données opérandes nécessaires à leur propre calcul. Cet écart de de temps de transfert n’étant pas prévisible, on doit demander (à l’aide d’une instruction CUDA prédéfinie) à chacune des tâches d’attendre que toutes les autres tâches aient terminé leur transfert avant de pouvoir autoriser le calcul. On doit donc « synchroniser » les tâches. L’instruction CUDA qui permet de synchroniser les tâches est l’instruction __syncthreads() qui est une fonction CUDA prédéfinie. Cette instruction oblige les tâches qui ont fini leurs transferts d’attendre les tâches qui n’ont pas fini le leur. Le calcul est ensuite effectué. Chaque tâche calcule le résultat partiel d’un élément de la matrice résultat. Le résultat de ce calcul est stocké dans un registre de la mémoire de registres. Ce registre n’est accessible que par cette tâche seule. La tâche en question va ensuite devoir transférer d’autres données opérandes et calculer le résultat partiel suivant pour le sommer à celui stocké dans la mémoire de registres. Cependant, certaines tâches auront fini leur calcul juste avant d’autres tâches qui seront très légèrement en retard. Si les tâches en avance commencent le transfert des données opérandes suivantes sans attendre que les tâches en retard aient fini leur calcul, il y a le risque que les tâches en retard exécutent leur calcul avec les mauvaises données opérandes, ce qui donnerait un résultat érroné. Les tâches en avance doivent donc attendre que les tâches en retard aient fini leur calcul avant de commencer le transfert des données opérandes suivantes. Comme précédemment, toutes les tâches doivent donc de nouveau être synchronisées (à l’aide la même instruction CUDA prédéfinie que précédemment) avant de commencer le transfert des données opérandes suivantes. Pour la 2ème partie du calcul, on retrouve alors un processus similaire aux étapes 1 et 2 de la Figure 29, avec transfert des données, synchronisation et calcul. Le second résultat est accumulé dans le registre contenant le premier résultat partiel. Dans l’exemple utilisé s’appuyant sur les Figure 27 et Figure 28, le calcul est décomposé en deux calculs partiels (A1*B1 et A4*B4). Après le cumul du résultat du dernier calcul partiel (qui se trouve être le 2ème calcul partiel dans l’exemple), le résultat stocké dans le registre est alors transféré vers la mémoire globale. Les blocs de données de la matrice résultat étant de la même taille que les blocs de tâches (autant de données que de tâches), il suffit donc d’attribuer une donnée résultat (à transférer) par tâche. L’indice de la donnée résultat dans le tableau stockant la matrice résultat est donc déterminé en fonction des indices identifiant la tâche (threadIdx.x, threadIdx.y, blockIdx.x et blockIdx.y) tout comme dans l’étape 1 pour le transfert des données. Les différentes étapes contribuant à la multiplication de la matrice A par la matrice B peut être résumée en un seul schéma illustré sur la Figure 30.

68 

 EORFN&RO

% KW %/2&.B6,'( J %KHL %/2&.B6,'( 6,=(

$ & B

 FRO %/2&.

 &VXE KW J

URZ KHL $ %/2&.B6,'( EORFN5RZ %/2&.B6,=( %/2&.B6,'( %/2&.B6,'( %/2&.B6,'(

$ZLGWK %ZLGWK

 )LJXUH0XOWLSOLFDWLRQGHPDWULFHVXWLOLVDQWODPpPRLUHSDUWDJpH

,, )DFWHXUVOLPLWDWLIVGXQRPEUHGHEORFVUpVLGHQWV /H QRPEUH GH EORFV UpVLGHQWV GRLW VDWLVIDLUH SOXVLHXUV FRQGLWLRQV 'DQV OH FDV FRQWUDLUH OH JHVWLRQQDLUH GH WkFKHV OLPLWHUD GH OXLPrPH OH QRPEUH GH EORFV UpVLGHQWV MXVTX¶j FH TXH OHV FRQGLWLRQV VRLHQW VDWLVIDLWHV /HV FRQGLWLRQV j VDWLVIDLUH VRQW OHV VXLYDQWHV • jXQLQVWDQWGRQQpO¶HQVHPEOHGHVWkFKHVUpVLGHQWHVQHGRLWSDVQpFHVVLWHUSOXV GHUHJLVWUHV&¶HVWO¶XQGHVIDFWHXUVTXLYDOLPLWHUOHQRPEUHGHEORFVUpVLGHQWV • XQ DXWUH IDFWHXU HVW OH QRPEUH GH WkFKHV UpVLGHQWHV TXL GRLW WRXMRXUV rWUH LQIpULHXUjSDUPXOWLSURFHVVHXU • ODWRWDOLWpGHODPpPRLUHSDUWDJpHXWLOLVpHSDUOHVEORFVUpVLGHQWVGRLWWRXMRXUV UHVWHULQIpULHXUHjNRSDUPXOWLSURFHVVHXU • OHQRPEUHGHEORFVUpVLGHQWVQHSHXWMDPDLVGpSDVVHU • RQQHSHXWSDVDWWULEXHUPRLQVGHUHJLVWUHVSDUWkFKH 8QH RSWLRQ GX FRPSLODWHXU PD[UUHJFRXQW  SHUPHW GH VSpFLILHU DX FRPSLODWHXU QYFF OH QRPEUH PD[LPXP GH UHJLVWUHV TX¶RQ VRXKDLWH DOORXHU j XQH WkFKH &HSHQGDQW FRPPHLQGLTXpFLGHVVXVRQDXUDWRXMRXUVDXPRLQVUHJLVWUHVXWLOLVpV PrPHVLRQHQ VSpFLILHPRLQVGH TXHOOHTXHVRLWODYDOHXUGH±PD[UUHJFRXQW /D PpPRLUH GH UHJLVWUHV pWDQW OLPLWpH j  UHJLVWUHV SDU PXOWLSURFHVVHXU SOXVLO\DXUDGHWkFKHVUpVLGHQWHVPRLQVLO\DXUDGHUHJLVWUHVjDWWULEXHUSDUWkFKH/H QRPEUHPD[LPDOGHUHJLVWUHVSDUWkFKHVVHGpGXLWGRQFHQGLYLVDQWOHQRPEUHPD[LPDOGH UHJLVWUHVGLVSRQLEOHV SDUPXOWLSURFHVVHXU SDUOHQRPEUHGHWkFKHVUpVLGHQWHV

 

6LO¶HQVHPEOHGHVWkFKHVUpVLGHQWHVUHTXLHUWXQQRPEUHGHUHJLVWUHVVXSpULHXUDX[ FDSDFLWpV PDWpULHOOHV G¶XQ PXOWLSURFHVVHXU OH JHVWLRQQDLUH GH WkFKHV GX *38 UpGXLW OH QRPEUH GH EORFV UpVLGHQWV SDU PXOWLSURFHVVHXU MXVTX¶j FH TXH OD FRQGLWLRQ VXU OHV UHJLVWUHV VRLW VDWLVIDLWH /H QRPEUH GH UHJLVWUHV j FKRLVLU HVW GRQF OH UpVXOWDW G¶XQ FRPSURPLV 6L ODTXDQWLWpGH PpPRLUH SDUWDJpH QpFHVVDLUH HVW VXSpULHXUH j OD TXDQWLWp GH PpPRLUH SDUWDJpH GLVSRQLEOH SDU WkFKH FHWWH TXDQWLWp GHYLHQW XQ IDFWHXU OLPLWDWLI GX QRPEUH GH EORFV UpVLGHQWV & HVWjGLUH TXH OH JHVWLRQQDLUH GH WkFKHV GX *38 YD DXWRPDWLTXHPHQWUpGXLUHOHQRPEUHGHEORFVUpVLGHQWVjDWWULEXHUMXVTX¶jFHTX¶LOVVRLHQW VXIILVDPPHQW SHX QRPEUHX[ SRXU TXH OD PpPRLUH SDUWDJpH GLVSRQLEOH VRLW VXIILVDQWH SRXUO¶HQVHPEOHGHVWkFKHVUpVLGHQWHV>@ ([HPSOH 2QFRQVLGqUH • GHVEORFVGHWkFKHV • UHJLVWUHVSDUWkFKH • FKDTXHWkFKHXWLOLVHQRPEUHVIORWWDQWVGRQFRFWHWVGHPpPRLUHSDUWDJpH /DOLPLWHGHVUHJLVWUHVLPSRVHG¶DYRLUDXSOXVEORFVUpVLGHQWV(QHIIHW EORFVUpVLGHQWVQpFHVVLWHQW UHJWkFKH WkFKHVEORF EORFV UHJLVWUHV /DqPHFRQGLWLRQ PRLQVGHWkFKHVUpVLGHQWHV LPSRVHEORFVFDU WkFKHVEORF EORFV WkFKHVUpVLGHQWHV /DqPHFRQGLWLRQ PRLQVGHNRGHPpPRLUHSDUWDJpH LPSRVHEORFVFDU RFWHWVWkFKH WkFKHVEORF EORFV NR /DFRQGLWLRQODSOXVUHVWULFWLYHLPSRVHEORFVUpVLGHQWVSDUPXOWLSURFHVVHXU   

 

,, $QDO\VHGHVUpVXOWDWVSRXUO¶$3,GXPRWHXUG¶H[pFXWLRQ&8'$ ,, 3UpVHQWDWLRQGHVFRQGLWLRQVGHPHVXUH 'DQV OH NLW GH GpYHORSSHPHQW &8'$ FRH[LVWHQW GHX[ $3, SULQFLSDOHV GH EDVH SRXU&8'$Œ • / $3, GX PRWHXU G H[HFXWLRQ &8'$ UXQWLPH  GRQW OHV QRPV G LQVWUXFWLRQ FRPPHQFHQWSDUOHWHUPHDVEB H[DVEB.BMMPD &HWWH$3,FRPSRUWH P XQHLQWHUIDFHGHEDVQLYHDXEDVpVXUOHVW\OH& P XQHLQWHUIDFHGHKDXWQLYHDXEDVpVXUOHVW\OH& • / $3,GXSLORWH&8'$GRQWOHVQRPVG LQVWUXFWLRQFRPPHQFHQWSDUOHWHUPHDV H[DV.FN"MMPD  /¶$3,GXPRWHXUG¶H[pFXWLRQ&8'$ UXQWLPH PHWjGLVSRVLWLRQGHVIRQFWLRQV& TXLV¶H[pFXWHQWVXUO¶K{WHSRXU • DOORXHUHWOLEpUHUGHODPpPRLUHGHSpULSKpULTXH • WUDQVIpUHUGHVGRQQpHVHQWUHPpPRLUHK{WHHWPpPRLUHGHSpULSKpULTXH • JpUHUGHVV\VWqPHVFRPSRUWDQWSOXVLHXUVSpULSKpULTXHV /¶$3,GXPRWHXUG¶H[pFXWLRQ&8'$ UXQWLPH HVWFRQVWUXLWjSDUWLUGHO¶$3,GX SLORWH&8'$TXLHVWpJDOHPHQWDFFHVVLEOHSDUSURJUDPPDWLRQ/¶$3,GXSLORWH&8'$ RIIUHXQQLYHDXGHFRQWU{OHVXSSOpPHQWDLUHJUkFHjFHUWDLQVFRQFHSWVGHQLYHDXLQIpULHXU &HV FRQFHSWV VRQW LPSOLFLWHV ORUVTX¶RQ XWLOLVH O¶$3, GX PRWHXU G¶H[pFXWLRQ OH SURJUDPPHXU Q¶D GRQF SDV EHVRLQ GH OHV LQFOXUH H[SOLFLWHPHQW GDQV VRQ SURJUDPPH &8'$&FHTXLSHUPHWG¶REWHQLUXQFRGHSOXVFRQFLV 7\SLTXHPHQWXQHDSSOLFDWLRQXWLOLVH • VRLWO¶$3,GXPRWHXUG¶H[pFXWLRQ&8'$ • VRLWO¶$3,GXSLORWH&8'$ PDLVHOOHSHXWpJDOHPHQWXWLOLVHUOHVGHX[$3,ELHQTXHFHVRLWPRLQVIUpTXHQW / XQLYHUV&8'$pWDQWWUqVYDVWHLODpWpFKRLVLSRXUFHSURMHWGHQ HPSOR\HUTXH O LQWHUIDFHGHEDVQLYHDXGHO $3,GXPRWHXUG H[pFXWLRQ&8'$ /DFDUWHJUDSKLTXH*7;DOHVFDSDFLWpVGHIDLUHOHFDOFXOHQGRXEOHSUpFLVLRQ 3RXUFHIDLUHOHFRPSLODWHXUGRLWrWUHSDUDPpWUpDXPR\HQGHO¶RSWLRQDUFK VPBFH TXLDpWpIDLWGDQVOHFDGUHGHFHWWHpWXGH/HFKLIIUHIDLWUpIpUHQFHjODYHUVLRQGH O¶DUFKLWHFWXUHGXSURFHVVHXUJUDSKLTXH 'DQVOHFDGUHGHFHWWHpWXGHOHVGRQQpHV RSpUDQGHVHWUpVXOWDW VRQWWUDQVPLVHV HQWUH0$7/$%HWOHSURJUDPPH&8'$YLDXQHIRQFWLRQ0(; /HV UpVXOWDWV GX FDOFXO GH 0$7/$% HW GH &8'$ RQW pWp DQDO\VpV HW XQ KLVWRJUDPPH GH OD YDOHXU GHV HUUHXUV D pWp pWDEOL /HV WHPSV GH FDOFXO GH &8'$ RQW pJDOHPHQWpWpFRPSDUpVDX[WHPSVGHFDOFXOGH0$7/$%/H&38XWLOLVpFRPSUHQDQW F°XUVFHFKLIIUHDpWpLQFOXVGDQVXQHGHVRSWLRQV0$7/$% 'DQVO¶HQYLURQQHPHQWGH&8'$ŒLOH[LVWHXQRXWLOWUqVXWLOHSRXUDQDO\VHUOHV SHUIRUPDQFHVG¶XQSURJUDPPH&8'$F¶HVWOHSURILOHU &RPSXWH9LVXDO3URILOHU  &HSURILOHUSHUPHWG¶DIILFKHUODSOXSDUWGHVSDUDPqWUHVXWLOLVpVSDU&8'$SRXU H[pFXWHUXQSURJUDPPH,OSHUPHWHJDOHPHQWG¶DIILFKHUGHVKLVWRJUDPPHV GHSOXVLHXUV W\SHV jSDUWLUGHFHUWDLQVSDUDPqWUHV'DQVOHSURILOHURQSHXWFKRLVLUG¶DIILFKHUFHUWDLQV SDUDPqWUHVHWSDVG¶DXWUHV/HVSDUDPqWUHVXWLOLVpVSRXUFHPpPRLUHVRQWSULQFLSDOHPHQW • ODWDLOOHGHODJULOOH HQYHQZHWHQ[  • ODWDLOOHGHVEORFV HQYHQZHWHQ[ 

  

• OHVWHPSVG¶H[pFXWLRQPHVXUpVVXUOH&38RXVXUOH*38 • OHVWHPSVGHWUDQVIHUWPHVXUpVVXUOH&38RXVXUOH*38 • OHQRPEUHGHZDUSVDFWLIV • ODTXDQWLWpGHPpPRLUHSDUWDJpHXWLOLVpHSDUEORF • OHQRPEUHGHUHJLVWUHVXWLOLVpVSDUWkFKH • OHUDSSRUWPpPRLUHSDUWDJpHXWLOLVpHVXUPpPRLUHSDUWDJpHGLVSRQLEOH • OHQRPEUHGHEORFVUpVLGHQWVSDUPXOWLSURFHVVHXU • OHQRPEUHGHWkFKHVUpVLGHQWHVSDUPXOWLSURFHVVHXU • OHWDX[G¶RFFXSDWLRQ QEBZDUSVBUpVLGHQWVQEBZDUSVBUpVLGHQWVBPD[ /DFDUWH JUDSKLTXH*7;DODFDSDFLWpGHWUDLWHUDXPD[LPXPZDUSVUpVLGHQWVSDU PXOWLSURFHVVHXU 6¶LO Q¶\ D HX TXH  ZDUSV UpVLGHQWV H[pFXWpV SDU PXOWLSURFHVVHXURQHQGpGXLWXQWDX[G¶RFFXSDWLRQGH /DPHVXUHGHVWHPSV • GHWUDQVIHUWGHGRQQpHVHQWUH&38HW*38 • G H[pFXWLRQGXNHUQHO DpWpUpDOLVpHjO¶DLGHGXSURILOHU/HSURJUDPPHDSSHOpSDUOHSURILOHUHVWOHSURJUDPPH 0$7/$%LOOXVWUpGDQVO¶RUJDQLJUDPPHGHOD)LJXUH  'pFODUDWLRQHWLQLWLDOLVDWLRQGHVYDULDEOHV 0$7/$%YHWYFRQWHQDQWOHVPDWULFHV

([pFXWLRQSDUOHSURJUDPPH0(;&8'$&GHOD PXOWLSOLFDWLRQGH ODPDWULFHY SDUODPDWULFHY

4XLWWHU0$7/$%  )LJXUH3URJUDPPH0$7/$%DSSHOpORUVGHO¶XWLOLVDWLRQGXSURILOHU /HV WHVWV TXH FH VRLW SDU 0$7/$% RX SDU OH SURILOHU  PHQWLRQQpV GDQV FH PpPRLUHRQWWRXVpWpUpDOLVpVHQPRGH5HOHDVH/HVHVVDLVHQPRGH'HEXJQHVRQWSDV PHQWLRQQpV 3RXU SRXYRLU YpULILHU OHV UpVXOWDWV HW OHV HUUHXUV GH FDOFXO LO D pWp pWDEOL XQ SURJUDPPH0$7/$%LOOXVWUpSDUO¶RUJDQLJUDPPHGHOD)LJXUH 3RXU FDOFXOHU OHV WHPSV G¶H[pFXWLRQ LO D pWp pWDEOL XQ SURJUDPPH 0$7/$% LOOXVWUpSDUO¶RUJDQLJUDPPHGHOD)LJXUH /HV WHPSV G¶H[pFXWLRQ GH OD IRQFWLRQ 0(;&8'$& pWDQW UHODWLYHPHQW IOXFWXDQWV pFDUWPD[LPXPGHO RUGUHGHGHODPR\HQQHGHVYDOHXUV OHVYDOHXUVRQW pWpPR\HQQpHVVXUYDOHXUV /DSUHPLqUHPHVXUHGHWHPSVQ DSDVpWpSULVHHQFRPSWHFDUHOOHLQFOXWOHVWHPSV GH SUpSDUDWLRQ GHV UHVVRXUFHV GH FDOFXO LQLWLDOLVDWLRQ GX SLORWH HW GX FRQWH[WH HW FKDUJHPHQWGHPRGXOH GRQFQRQUHSUpVHQWDWLYHGXFRPSRUWHPHQWGHFDOFXOHQUpJLPH pWDEOL

 

 3URJUDPPH0$7/$%GHYpULILFDWLRQGHVUpVXOWDWV&8'$

'pFODUDWLRQHWLQLWLDOLVDWLRQGHVYDULDEOHV0$7/$% YHWYFRQWHQDQWOHVPDWULFHVRSpUDQGHV

([pFXWLRQSDU0$7/$%VHXO ([pFXWLRQSDUOHSURJUDPPH0(; GHODPXOWLSOLFDWLRQGHOD &8'$&GHODPXOWLSOLFDWLRQGHOD PDWULFHYSDUODPDWULFHY PDWULFHYSDUODPDWULFHY

9pULILFDWLRQGHVUpVXOWDWVGH&8'$$IILFKDJHHW FRPSDUDLVRQYLVXHOOHG¶XQSHWLWQRPEUHGHYDOHXUV WLUpVGHODPDWULFHUpVXOWDWREWHQXHSDU • 0$7/$% • &8'$

9pULILFDWLRQGHODWRWDOLWpGHVUpVXOWDWVGH&8'$ • 6RXVWUDFWLRQ GH OD PDWULFH UpVXOWDW REWHQXH SDU 0$7/$% SDU OD PDWULFH UpVXOWDW REWHQXH SDU &8'$ • +LVWRJUDPPH GHV HUUHXUV YDOHXUV QRQ QXOOHV UpVXOWDQWGHODVRXVWUDFWLRQ 

$QDO\VHSDUOHSURJUDPPHXUGHVHUUHXUVGHFDOFXO

5pVXOWDWV H[DFWV" 2XL

1RQ

(UUHXUV " 2XL

1RQ

&RUUHFWLRQGXFRGHSDUOH /HSURJUDPPH&8'$ SURJUDPPHXU IRQFWLRQQH  )LJXUH9pULILFDWLRQGHO¶H[DFWLWXGHGHVUpVXOWDWVUHQYR\pVSDU&8'$ 2Q PHVXUH OH WHPSV WRWDO G¶H[pFXWLRQ DX PR\HQ GH 0$7/$% RQ LQFOXW GRQF GDQVODPHVXUHOHVWHPSVGHWUDQVIHUWGHVGRQQpHVHQWUH0$7/$%HWODIRQFWLRQ0(; &8'$& 2Q UDSSHOOH TXH GDQV XQ SURJUDPPH 0(;&8'$& OD WDLOOH GH OD JULOOH GH WkFKHVGRLWrWUHXQPXOWLSOHGHODWDLOOHGHVEORFVjODIRLVVXUOHVGLPHQVLRQV Y ZHW[ YRLU†,HW† ,, 'RQFGDQVOHFDVG¶XQHJULOOHjGHX[GLPHQVLRQVOD WDLOOHGHOD PDWULFHUpVXOWDWGRLWrWUHXQPXOWLSOHGHODWDLOOHGHVEORFVjODIRLVVXUOHVGLPHQVLRQVYHW Z

 

 3URJUDPPH0$7/$%GHPHVXUHGHVWHPSVG¶H[pFXWLRQ&8'$

'pFODUDWLRQHWLQLWLDOLVDWLRQGHVYDULDEOHV 0$7/$%YHWYFRQWHQDQWOHVPDWULFHV

,QLWLDOLVDWLRQGHVUHVVRXUFHV &8'$qUHH[pFXWLRQGX SURJUDPPH0(;&8'$&

'pFOHQFKHPHQWGX 'pFOHQFKHPHQWGX FKURQRPqWUHGH0$7/$% UJD  FKURQRPqWUHGH0$7/$% UJD 

H[pFXWLRQVSDU0$7/$% H[pFXWLRQVSDUOHSURJUDPPH VHXOGHODPXOWLSOLFDWLRQGHOD 0(;&8'$&GHODPXOWLSOLFDWLRQ PDWULFHYSDUODPDWULFHY GHODPDWULFHYSDUODPDWULFHY

$UUrWGXFKURQRPqWUH $UUrWGXFKURQRPqWUH GH0$7/$% UPD  GH0$7/$% UPD 

$QDO\VHGHVWHPSVGHFDOFXOSDUOHSURJUDPPHXU

'LYLVLRQSDUGX 'LYLVLRQSDUGX WHPSVREWHQX WHPSVREWHQX

&RPSDUDLVRQGHVGHX[WHPSVREWHQXV

 )LJXUH0HVXUHGHVWHPSVG¶H[pFXWLRQ&8'$HW0$7/$% (QVHEDVDQWVXUFHWWHVHXOHFRQGLWLRQRQSRXUUDLWSDUH[HPSOHFKRLVLUXQHJULOOH GHWDLOOHGH × DYHFGHVEORFVGHWDLOOH × &HSHQGDQWLOIDXWVHUDSSHOHU YRLU†, TXHODTXDQWLWpGHWkFKHVSDUEORFGRLWrWUHXQPXOWLSOH GHODWDLOOHGHZDUSV F HVWjGLUHPXOWLSOHGH'RQQHUDX[EORFVXQHWDLOOHQRQPXOWLSOHGHVHUDLWSRVVLEOH SXLVTXHGHVWkFKHVILFWLYHVVRQWDMRXWpHVDXWRPDWLTXHPHQWDX[ZDUSVLQFRPSOHWVPDLVFH VHUDLWFRQWUHSURGXFWLISXLVTXHOHVUHVVRXUFHVVHUDLW©JDVSLOOpHVª'HSOXVOHQRPEUHGH WkFKHVSDUEORFQHGRLWSDVGpSDVVHU GRQQpHVFRQVWUXFWHXU  3RXUWHVWHUOHSURJUDPPHSRXUGLIIpUHQWHVWDLOOHVGHEORFVWRXWHQVDWLVIDLVDQWOHV FRQGLWLRQV SUpFpGHQWHV OH FKRL[ HVW GRQF DVVH] UHVWUHLQW &KRLVLU GHV EORFV GH WkFKHV D\DQWOHPrPHQRPEUHGHWkFKHVHQ[HWHQ\ EORFFDUUp Q¶HVWSDVREOLJDWRLUH0DLVSRXU VLPSOLILHUOHVH[SOLFDWLRQVHWUpGXLUHODTXDQWLWpGHPHVXUHVSRVVLEOHVLODpWpFKRLVLGHV EORFVFDUUpV,ODGRQFpWpFKRLVLGHVEORFVFDUUpVGHGLIIpUHQWHVWDLOOHV • WkFKHVSDUF{Wp F HVWjGLUHGHVEORFVGHWkFKHVPD[LPXPSRVVLEOH  • WkFKHVSDUF{Wp • WkFKHVSDUF{Wp •  WkFKHV SDU F{Wp F HVWjGLUH GHV EORFV GH  WkFKHV HQWUDvQDQW GHV ZDUSV LQFRPSOHWVUHPSOLVGHWkFKHVILFWLYHV 

 

3DU FRQVpTXHQW SRXU SRXYRLU REVHUYHU O¶LQIOXHQFH GH OD WDLOOH GHVEORFVVXUOD YLWHVVHGHFDOFXOODWDLOOHGHODJULOOHGRLWrWUHPXOWLSOHjODIRLVGHHW WDLOOHV GHVEORFVWHVWpV /HVGLPHQVLRQVGHVPDWULFHVWHVWpHVVRQWGRQF ∗   ∗    ∗  'DQV OHV SDUDJUDSKHV TXL VXLYHQW QRXV DOORQV pWXGLHU O¶LQIOXHQFH GH GLYHUV SDUDPqWUHVVXUODSHUIRUPDQFH ,, ,QIOXHQFHGHODWDLOOHGHEORFHWGHODOLPLWDWLRQGXQRPEUHGHUHJLVWUHVVXUOD SHUIRUPDQFH ,OIDXWHQVXLWHFRQVLGpUHUO¶LQIOXHQFHGXQRPEUHGHUHJLVWUHVSDUWkFKH /HV ILJXUHV  j  LOOXVWUHQW OHV WHPSV G¶H[pFXWLRQ SRXU  WDLOOHV GH JULOOH GH WkFKHVHORQGHX[SDUDPqWUHV • OHQRPEUHGHWkFKHVSDUF{WpGHEORF • OHQRPEUHGHUHJLVWUHVSDUWkFKHV

 5HJLVWUHV WkFKHPD[    

    0$7/$%

 7HPSVG H[pFXWLRQ PV

  1RPEUHGHWkFKHVSDUF{WpGH EORF  )LJXUH7HPSVG¶H[pFXWLRQSRXUXQHJULOOHGHWkFKHVGHWDLOOH 



 5HJLVWUHV WkFKHPD[  

     0$7/$%  7HPSVG H[pFXWLRQ PV

       1RPEUHGHWkFKHVSDUF{WpGH EORF  )LJXUH7HPSVG¶H[pFXWLRQSRXUXQHJULOOHGHWkFKHVGHWDLOOH 

 



 5HJLVWUHV WkFKHPD[

      0$7/$% 7HPSVG H[pFXWLRQ PV 

     1EGHWkFKHVSDUF{WpGHEORF  )LJXUH7HPSVG¶H[pFXWLRQSRXUXQHJULOOHGHWkFKHVGHWDLOOH  '¶DSUqVOHVILJXUHVjRQYRLWELHQTXHODWDLOOHGHEORFRSWLPDOHHVW ×  SXLVTX¶HOOHGRQQHOHVPHLOOHXUVWHPSVG¶H[pFXWLRQTXHOOHTXHVRLWODWDLOOHGHODJULOOHGH WkFKHV 'LVFXVVLRQVXUOHQRPEUHGHUHJLVWUHV • RQUHPDUTXHTXHODOLPLWDWLRQGXQRPEUHGHUHJLVWUHVQ¶DSOXVG¶LQIOXHQFHVXUOD SHUIRUPDQFHDXGHOjUHJLVWUHV • FHWWHDEVHQFHG¶LQIOXHQFHV¶H[SOLTXHjFKDTXHIRLVTXHODOLPLWDWLRQGXQRPEUH GH UHJLVWUHV HVW LQIpULHXUH DX QRPEUH GH UHJLVWUHV TX¶XQH WkFKH QpFHVVLWH DX PD[LPXP3DUH[HPSOHGDQVQRWUHFDVVSpFLILHUXQHOLPLWDWLRQGXQRPEUHGH UHJLVWUHV j XQ QRPEUH VXSpULHXU RX pJDO j  QH FKDQJH ULHQ FDU FKDTXH WkFKH QpFHVVLWHXQQRPEUHPD[LPXPGHUHJLVWUHVLQIpULHXUj 2QUHPDUTXHTXHODFRXUEHSRXUUHJLVWUHVPD[LPXPHVWODVHXOHjVHGpWDFKHU QHWWHPHQWGHVDXWUHVFRXUEHVDYHFGHVWHPSVGHFDOFXOPRLQVERQVHWFHTXHOOHTXHVRLW ODWDLOOHGHODJULOOHGHWkFKHV/HQRPEUHGHUHJLVWUHVPD[LPXPRSWLPDOVHPEOHGRQFrWUH   RX  FDU OHV GLIIpUHQFHV GH SHUIRUPDQFH HQWUH  UHJLVWUHV PD[LPXP HW  UHJLVWUHV PD[LPXP HW SOXV  VRQW VL IDLEOHV TX¶HOOHV SHXYHQW rWUH DWWULEXpHV DX[ LQFHUWLWXGHVGHVWHPSVGHFDOFXOSURSUHVj&8'$ 7DEOHDX7DX[G¶RFFXSDWLRQGHVUHVVRXUFHV

1EGHWkFKHV PD[UUHJFRXQWĺ     SDUEORFĻ 7DX[G¶RFFXSDWLRQ      ∗   1RPEUHGHEORFVUpVLGHQWV     7DX[G¶RFFXSDWLRQ      ∗  1RPEUHGHEORFVUpVLGHQWV     7DX[G¶RFFXSDWLRQ      ∗  1RPEUHGHEORFVUpVLGHQWV     7DX[G¶RFFXSDWLRQ      ∗  1RPEUHGHEORFVUpVLGHQWV      0DLV HQ REVHUYDQW OH 7DEOHDX  RQ UHPDUTXH TXH SRXU XQH WDLOOH GH EORFV GH  ∗  OH WDX[ G¶RFFXSDWLRQ HVW PHLOOHXU SRXU  UHJLVWUHV PD[LPXP TXH SRXU  UHJLVWUHV PD[LPXP 3RXU OHV DXWUHV WDLOOHV GH EORF OH QRPEUH GH UHJLVWUHV Q¶D SDV

 

G¶LQIOXHQFH VXU OH WDX[ G¶RFFXSDWLRQ *OREDOHPHQW RQ SHXW GRQF FRQVLGpUHU TXH OH QRPEUHGHUHJLVWUHVPD[LPXPRSWLPDOHVWpJDOj )LQDOHPHQWRQUHPDUTXHTXHOHIDFWHXUOHSOXVVHQVLEOHHVWOHFKRL[GHODWDLOOHGHV EORFV/HPHLOOHXUFKRL[HVW × GDQVWRXVOHVFDV&HSHQGDQWO¶pFDUWDYHF0$7/$% UHVWHIDLEOH ,, 8WLOLVDWLRQGHODPpPRLUHSDUWDJpH 1RXVDYRQVYXTXHOHQRPEUHGHEORFVUpVLGHQWVSRVVLEOHVGpSHQGGHFRQGLWLRQV YRLU†,,  1RXV QRXV LQWpUHVVRQV LFL j OD FRQGLWLRQ  TXL LPSRVH GH QH MDPDLV GpSDVVHUNRSRXUO¶HQVHPEOHGHVEORFVUpVLGHQWVG¶XQPXOWLSURFHVVHXU 'pWHUPLQDWLRQGHODPpPRLUHSDUWDJpHQpFHVVDLUHSRXUFKDTXHWkFKH 2QWURXYHGDQVOHFRGHGXNHUQHOODGpFODUDWLRQGHVWDEOHDX[VXLYDQWGpFODUpVHQ PpPRLUHSDUWDJpH @@TIBSFE@@EPVCMF"T<#-0$,@4*%&><#-0$,@4*%&> @@TIBSFE@@EPVCMF#T<#-0$,@4*%&><#-0$,@4*%&> (WDQWGRQQpTXHOHW\SH EPVCMF QpFHVVLWHRFWHWVODTXDQWLWpGHPpPRLUHSDU WkFKHQpFHVVDLUHSRXUFHVGHX[WDEOHDX[VHXOVFRUUHVSRQGGRQFj  ∗ ∗ %/2&. B 6,'(   R%/2&.B6,'(FRUUHVSRQGjODWDLOOHGHEORF WDLOOHG¶XQF{WpGHEORF  &RQVLGpURQVOHSLUHFDVSRXUOHTXHO%/2&.B6,'(  'DQVFHFDVODWDLOOHGHODPpPRLUHSDUWDJpHQpFHVVDLUHHVWGHNRFHTXLUHVWH LQIpULHXUjODOLPLWHGHNR 'DQVQRWUHFDVODOLPLWDWLRQGHODPpPRLUHSDUWDJpHjNRQ¶DSDVG¶LQIOXHQFH VXUODGpWHUPLQDWLRQGXQRPEUHGHEORFVUpVLGHQWVSDUOHJHVWLRQQDLUHGHWkFKHVSXLVTXH TXHOOHTXHVRLWODWDLOOHGHEORFO¶HQVHPEOHGHVWkFKHVQHQpFHVVLWHMDPDLVSOXVGHNR FHTXLUHVWHWUqVLQIpULHXUDX[NRGLVSRQLEOHV,OVXIILWGRQFGHQHSUHQGUHHQFRPSWH TXHOHVFRQGLWLRQVHW YRLU†,,  ,, ,QIOXHQFHGHODWDLOOHGHEORFHWGHODOLPLWDWLRQGXQRPEUHGHUHJLVWUHVVXUOH WDX[G¶RFFXSDWLRQGHVUHVVRXUFHV /HVUpVXOWDWVSUpFpGHQWVPRQWUHQWTXHGHX[IDFWHXUVLQIOXHQWVXUOHVSHUIRUPDQFHV PHVXUpHVHQWHUPHGHWHPSVG¶H[pFXWLRQ • SULQFLSDOHPHQWOHFKRL[GHODWDLOOHGHEORF • GDQVXQHPRLQGUHPHVXUHOHQRPEUHGHUHJLVWUHV 2Q HVVDLH LFL G¶pWDEOLU OD UHODWLRQ HQWUH FHV FKRL[ HW OH WDX[ G¶RFFXSDWLRQ GX SURFHVVHXUJUDSKLTXH QEZDUSVUHVLGHQWV /HWDX[G¶RFFXSDWLRQHVWGpILQLSDU  QEZDUSVUHVLGHQWV PD[ 'DQVQRWUHFDVOHQRPEUHGHZDUSVUpVLGHQWVPD[LPXPHVWGH/HQRPEUHGH ZDUSV UpVLGHQWV VH GpWHUPLQH GDQV FKDTXH FDV HQ WHQDQW FRPSWH GHV FLQT FRQGLWLRQV j UHVSHFWHU • QRPEUHPD[LPXPGHUHJLVWUHVSDUPXOWLSURFHVVHXU • QRPEUHPD[LPXPGHWkFKHVUpVLGHQWHVSDUPXOWLSURFHVVHXU • TXDQWLWpPD[LPXPGHPpPRLUHSDUWDJpHSDUPXOWLSURFHVVHXU • QRPEUHPD[LPXPGHEORFVUpVLGHQWVSDUPXOWLSURFHVVHXU

 

• QRPEUHPLQLPXPGHUHJLVWUHVSDUWkFKH &HSRLQWDpWpH[SOLTXpDXSDUDJUDSKH,,2QDYXTXHODFRQGLWLRQpWDLW WRXMRXUVUHVSHFWpH 3RXU FKDFXQ GHV FDV QRPEUH GH EORFV QRPEUH GH UHJLVWUHV  RQ SHXW GRQF GpWHUPLQHU OH QRPEUH GH ZDUSV UpVLGHQWV FKRLVL SDU OH JHVWLRQQDLUH GH WkFKHV HQ UHSUHQDQWODPrPHGpPDUFKHTX¶DXSDUDJUDSKH,, 3RXUWURXYHUXQHUHODWLRQHQWUHOHVGHX[SDUDPqWUHVSUpFpGHQWV WDLOOHGHEORFHW QRPEUHGHUHJLVWUHV HWOHWDX[G¶RFFXSDWLRQGXSURFHVVHXUJUDSKLTXHGHVPHVXUHVVRQW UpDOLVpHV2QREWLHQWDORUVOHVUpVXOWDWVGX7DEOHDX '¶DSUqV OHV HVVDLV HIIHFWXpV DYHF OH SURILOHU OD WDLOOH GHV JULOOHV GH WkFKH      «  Q¶D SDV G¶LQIOXHQFH VXU OHV WDX[ G¶RFFXSDWLRQ 3DU FRQVpTXHQWOHVWDX[G¶RFFXSDWLRQVPHVXUpVVRQWUHJURXSpVGDQVOHWDEOHDXVXLYDQW 'LVFXVVLRQVXUOHWDX[G¶RFFXSDWLRQ /RUVGHVWHVWVVXUPDWULFHVFRPSRUWDQW × WkFKHV EORFHW DYHFQRPEUHGH UHJLVWUHVOLPLWpjSDUWkFKHOHWDX[G RFFXSDWLRQHVWGH8QWDX[G¶RFFXSDWLRQGH VLJQLILHTXHSHQGDQWOHWHVWOHQRPEUHGHZDUSVUpVLGHQWVSDUPXOWLSURFHVVHXUHVW pJDODXQRPEUHPD[LPXPSRVVLEOHF HVWjGLUH 2QUDSSHOOHTXHSRXUH[pFXWHUVRQRXVHVEORFVGHWkFKHVXQPXOWLSURFHVVHXUOHV GpFRXSHG¶DERUGHQORWVGHWkFKHVDSSHOpVZDUSV&HVORWVGHWkFKHVUHSUpVHQWHQWOD SOXVSHWLWHGpFRXSHSRVVLEOHGHVEORFVGHWkFKHVF HVWjGLUHTXHOHVWkFKHVVRQWWRXMRXUV H[pFXWpHVSDUORWGH 'DQVOHFDVG¶XQWDX[G¶RFFXSDWLRQGHRQDXQHRFFXSDWLRQPD[LPDOHGHV UHVVRXUFHVGRQFZDUSVUpVLGHQWV&HVZDUSVFRQWLHQQHQWDXWRWDOWkFKHVFH TXL FRUUHVSRQG DX[  WkFKHV UpVLGHQWHV PD[LPXP ZDUSV ∗ WkFKHV  ZDUS WkFKHV  TX¶XQ PXOWLSURFHVVHXU HVW FDSDEOH GH WUDLWHU VLPXOWDQpPHQW ,OHVWHQJpQpUDOGpFRQVHLOOpG¶DYRLUXQWDX[G¶RFFXSDWLRQWURSEDVFHSHQGDQWXQ WDX[G¶RFFXSDWLRQDXPD[LPXP  Q¶HVWSDVIRUFpPHQWV\QRQ\PHGHUDSLGLWppWDQW GRQQpTXHFHWWHDPpOLRUDWLRQGHWDX[VHIDLWDX[GpSHQVG¶DXWUHVUHVVRXUFHV 3DUH[HPSOHXQHVLPSOHDXJPHQWDWLRQGXQRPEUHPD[LPDOGHUHJLVWUHVGHj  SDU WkFKH SRXU GHV EORFV GH WDLOOH    VH WUDGXLW SDU XQH GLPLQXWLRQ GX WDX[ G¶RFFXSDWLRQGHj&HWWHGLIIpUHQFHHVWGpFULWHFLGHVVRXV 3RXUPLHX[FRPSUHQGUHFHVUpVXOWDWVLOIDXWFRPSUHQGUHFRPPHQWOHJHVWLRQQDLUH GHWkFKHVGXSURFHVVHXUJUDSKLTXHGpFLGHGXQRPEUHGHEORFVUpVLGHQWV j DWWULEXHU j FKDTXHPXOWLSURFHVVHXU &RQVLGpURQVGHVWDLOOHVGHEORFGH  WkFKHV  4XHOTXH VRLW OH QRPEUH GH UHJLVWUHV QpFHVVDLUHV OD FRQGLWLRQ VXUOHQRPEUHGH WkFKHV YRLU†,, Q¶HVWSDVUHVSHFWpHSRXUGHVEORFVGHWDLOOH SX LVTXHEORFV GH  WkFKHV GpSDVVHQW OD OLPLWH GH  WkFKHV PD[LPXP /H JHVWLRQQDLUH GLPLQXH GRQFOHQRPEUHGHEORFVUpVLGHQWVMXVTX¶jEORFVUpVLGHQWV 'DQVOHFDVRRQDUHJLVWUHVSDUWkFKHVSRXUEORFVUpVLGHQWVUHJLVWUHV VRQW QpFHVVDLUHV DX WRWDO FH TXL UHVSHFWH OD FRQGLWLRQ VXU OH QRPEUH PD[LPXP GH UHJLVWUHV /HV DXWUHV VRQW UHVSHFWpHV /HV  EORFV UpVLGHQWV GH  WkFKHV F HVWjGLUH WkFKHVRXZDUSV HQWUDvQHURQWGRQFXQWDX[G¶RFFXSDWLRQGH

 

'DQVOHFDVRRQDUHJLVWUHVSDUWkFKHVSRXUEORFVUpVLGHQWVUHJLVWUHV VRQWQpFHVVDLUHVDXWRWDOFHTXLQHUHVSHFWHSDVODFRQGLWLRQVXUOHQRPEUHGHUHJLVWUHV /HJHVWLRQQDLUHGHWkFKHVGLPLQXHUDGRQFMXVTX¶jOHQRPEUHGHEORFV UpVLGHQWVSRXU TXH FHWWH FRQGLWLRQ VRLW UHVSHFWpH&HVEORFVUpVLGHQWV FRQVWLWXDQW XQ WRWDO GH  WkFKHVRXZDUSV HQWUDvQHURQWXQWDX[G¶RFFXSDWLRQGH 3RXUGHVEORFVGHWkFKHVRQSHXWGRQFUpVXPHUOHVFDOFXOVSUpFpGHQWVSDU • UHJLVWUHVSDUWkFKHHQWUDvQHQWXQWDX[G¶RFFXSDWLRQGH • UHJLVWUHVSDUWkFKHHQWUDvQHQWXQWDX[G¶RFFXSDWLRQGH 2QDGRQFGpPRQWUpTX¶XQHDXJPHQWDWLRQGHGXQRPEUHGHUHJLVWUHVSDUWkFKH Q¶DPpOLRUH SDV IRUFpPHQW OHV SHUIRUPDQFHV SXLVTXH GDQV FH FDV SUpFLV FHWWH DXJPHQWDWLRQ HQWUDvQH XQH GLPLQXWLRQ GX WDX[ G¶RFFXSDWLRQ 8Q WDX[ G¶RFFXSDWLRQ LQIpULHXUjVLJQLILHTXHOHVUHVVRXUFHVPDWpULHOOHVG¶XQPXOWLSURFHVVHXUQHVRQWSDV H[SORLWpHVjOHXUPD[LPXP &DVSDUWLFXOLHUGHVEORFVGHSHWLWHWDLOOH 3RXU OHV FDV pWXGLpV MXVTX¶j PDLQWHQDQW F HVWjGLUH SRXU GHV WDLOOHV GH EORF VXSpULHXUHVjRQGpGXLVDLWOHQRPEUHGHZDUSVUpVLGHQWVjSDUWLUGXQRPEUHGHWkFKHV UpVLGHQWHV &HWWH GpGXFWLRQ Q¶HVW SOXV YDODEOH SRXU GHV WDLOOHV GH EORF WUqV SHWLWHV ([HPSOH EORFV GH ∗  WkFKHV  FDU XQ ZDUS QH SHXW SDV HQJOREHU OHV WkFKHV GH SOXVLHXUVEORFV 8QZDUSQHSHXWSDVFRQWHQLUPRLQVGHWkFKHV'RQFFRPPHRQO¶DYX SUpFpGHPPHQW YRLU†, VLXQEORFFRQWLHQWPRLQVGHWkFKHVGHVWkFKHVILFW LYHV VRQWDMRXWpHVSDUOHPXOWLSURFHVVHXUSRXUFRQVWLWXHUXQZDUSGHWkFKHV'DQVFHFDV SUpFLVRQDXUDGRQFGHVZDUSVGHWkFKHVQHFRPSRUWDQWTXH WkFKHV UpHOOHPHQW XWLOHVDXFDOFXO /HWDX[G¶RFFXSDWLRQVHFDOFXOHWRXMRXUVjSDUWLUGXQRPEUHGHZDUSVUpVLGHQWV 2QDLFLEORFVUpVLGHQWVGHWkFKHVFKDFXQ2QDXUDGRQFZDUSV UpVLGHQWV SDU PXOWLSURFHVVHXU FKDTXH ZDUS FRQWHQDQW OD WRWDOLWp GHV WkFKHV G¶XQ EORF /H FDOFXO GX WDX[ G¶RFFXSDWLRQ GRQQH GRQF QEZDUSVUpVLGHQWV  QEZDUSVUpVLGHQWVPD[   F HVWjGLUH &¶HVWSRXUTXRLSRXUpYLWHUGHJDVSLOOHUGHVUHVVRXUFHVGHFDOFXOVDYHFGHVZDUSV LQFRPSOHWVLOHVWFRQVHLOOpGHGRQQHUGHVWDLOOHVGHEORFPXOWLSOHVGXQRPEUHGHWkFKHV SDUZDUSGRQFPXOWLSOHVGHHWpYLWHUOHVEORFVFRQWHQDQWPRLQVGHWkFKHV ,, 3HUIRUPDQFHVUDPHQpHVHQ*)/236 3RXU SRXYRLU FRPSDUHU OHV SHUIRUPDQFHV GX SURFHVVHXU JUDSKLTXH ORUV GX WUDLWHPHQW GH JULOOH GH WkFKHV GH JUDQGHXUV GLIIpUHQWHV RQ FRQYHUWLW HQ *)/236 OHV WHPSV REWHQXV /H FDOFXO G¶XQ pOpPHQW GH EDVH G¶XQH PDWULFH UpVXOWDW QpFHVVLWH Q PXOWLSOLFDWLRQVHW Q DGGLWLRQVQpWDQWOHQRPEUHGH • FRORQQHVGHODqUHPDWULFHRSpUDQGH • OLJQHVGHODqPHPDWULFHRSpUDQGH &HTXLGRQQH QRSpUDWLRQVSRXUFDOFXOHUXQpOpPHQWGHODPDWULFHUpVXOWDW 'DQV OH FDV R OD PDWULFH UpVXOWDW D pJDOHPHQW SRXU GLPHQVLRQV Q× Q  OH QRPEUH G¶RSpUDWLRQVUpDOLVpHVDXWRWDOHVW Q ∗ Q ∗  ∗ Q −  ∗ Q − Q   &RPPHQHVWJUDQGRQSHXWQpJOLJHUOHWHUPHQðGHYDQW Q HUUHXUUHODWLYHQ − § ∗ Q  

 

 ∗ Q 'RQFRQREWLHQW 1%)/236  WSVFDOFXO /HVWDEOHDX[jSUpVHQWHQWOHVUpVXOWDWVREWHQXVSRXUUHVSHFWLYHPHQWXQHJULOOH GHWDLOOH ∗   ∗   ∗   ∗ PXOWLSOHGH  7DEOHDX3HUIRUPDQFHVGH&8'$ HQ*)/236 SRXUXQHJULOOHGHWDLOOH  5HJLVWUHVSDUWkFKH PD[     7DLOOHGHEORF  ∗        ∗       ∗       ∗      0$7/$%VHXO  7DEOHDX3HUIRUPDQFHVGH&8'$ HQ*)/236 SRXUXQHJULOOHGHWDLOOH  5HJLVWUHVSDUWkFKH PD[     7DLOOHGHEORF  ∗        ∗       ∗       ∗      0$7/$%VHXO  7DEOHDX3HUIRUPDQFHVGH&8'$ HQ*)/236 SRXUXQHJULOOHGHWDLOOH  5HJLVWUHVSDUWkFKH PD[     7DLOOHGHEORF  ∗        ∗       ∗       ∗      0$7/$%VHXO  7DEOHDX3HUIRUPDQFHGH&8'$ HQ*)/236 SRXUXQHWDLOOHGHJULOOHPXOWLSOHGXQRPEUHGHPXOWLSURFHVVHXUV    5HJLVWUHVSDUWkFKH PD[      7DLOOHGHEORF  ∗        ∗       ∗       ∗      0$7/$%VHXO   6LRQFRPSDUHOHV7DEOHDX7DEOHDX7DEOHDXHW7DEOHDXDYHFOH7DEOHDX RQFRQVWDWHTXHOHVPHLOOHXUHVSHUIRUPDQFHVVRQWREWHQXHVSRXUGHVWDLOOHVGHEORFGH   F HVWjGLUH GHV WDLOOHV GH EORFV FRUUHVSRQGDQW DX[ PHLOOHXUV WDX[ G¶RFFXSDWLRQ ELHQ TXH OH QRPEUH GH UHJLVWUHV DLW pJDOHPHQW XQH OpJqUH LQIOXHQFH VXU OHV WDX[ G¶RFFXSDWLRQ

 

6LRQYHXWRSWLPLVHUOHFDOFXOLOHVWGRQFLQWpUHVVDQWGHIDLUHO¶DQDO\VHGXQRPEUH GH EORFV UpVLGHQWV HQ IRQFWLRQ GHV FKRL[ WDLOOH GH EORF QE GH UHJLVWUHV TXDQWLWp GH PpPRLUHSDUWkFKH  (Q FRPSDUDQW OH 7DEOHDX  DYHF OHV 7DEOHDX  7DEOHDX  HW 7DEOHDX  RQ FRQVWDWH TXH OH IDLW G¶DYRLU XQH WDLOOH GH JULOOH PXOWLSOH GH  Q¶DXJPHQWH SDV OD SHUIRUPDQFH HQ *)/236 'H SOXV SRXU XQH WDLOOH GH JULOOH GH WDLOOH ∗   0$7/$%H[pFXWHSOXVGH*)/236TXH&8'$'RQFLOQ¶\DILQDOHPHQWDXFXQLQWpUrW jFKRLVLUXQHWDLOOHGHJULOOHPXOWLSOHGXQRPEUHGHPXOWLSURFHVVHXUV 6XUOHVWDEOHDX[RQSHXWFRQVWDWHUTXHODSHUIRUPDQFHGpSHQGDYDQWWRXWGHOD WDLOOHGHODJULOOH2QYRLWELHQTX¶XQHJUDQGHTXDQWLWpGHWkFKHVSDUJULOOHHVWXQIDFWHXU ELHQ SOXV GpWHUPLQDQW SRXU OD SHUIRUPDQFH TX¶XQH JULOOH PXOWLSOH GX QRPEUH GH PXOWLSURFHVVHXUV3OXVODJULOOHHVWJUDQGHSOXVOHSURFHVVHXUHVWUDSLGH ,, 3HUIRUPDQFHVGHODIRQFWLRQ0(;&8'$&FRPSDUpHDX[SHUIRUPDQFHVGH 0$7/$%VHXO $ SDUWLU GHV PHVXUHV GH SHUIRUPDQFH SUpFpGHQWHV RQ UHPDUTXH TXH &8'$ REWLHQWGHVSHUIRUPDQFHVRSWLPDOHVORUVTXH • OHQRPEUHGHUHJLVWUHHVWOLPLWpj • OHVEORFVVRQWOLPLWpVjXQHWDLOOHGH ∗   0DLQWHQDQW TX¶RQ FRQQDLW OHV SDUDPqWUHV RSWLPDX[ LO SHXW rWUH LQWpUHVVDQW GH FRPSDUHUOHVSHUIRUPDQFHVODIRQFWLRQ0(;&8'$&HWGH0$7/$%XWLOLVpVHXO3RXU XQHWDLOOHGHEORFGH ∗  HWXQQRPEUHGHUHJLVWUHVOLPLWpjRQREWLHQWOHVUpVXOWDWV VXLYDQWV 7DEOHDX&RPSDUDLVRQGHODSHUIRUPDQFHSRXUGLIIpUHQWHVWDLOOHVGHPDWULFHUpVXOWDW 7DLOOHGHOD )RQFWLRQ0(;&8'$& 0$7/$%XWLOLVpVHXO PDWULFHUpVXOWDW 7HPSVG¶H[pFXWLRQ PV *)/236 7HPSVG¶H[pFXWLRQ PV  *)/236  ∗       ∗       ∗       ∗       ∗       ∗       ∗       ∗      ∗        ∗        ∗        'DQVOH7DEOHDXOHPHLOOHXUGHVGHX[FDVHVWPLVHQJUDVSRXUFKDTXHWDLOOHGH PDWULFHUpVXOWDW 2QFRQVWDWHGRQFTXHODIRQFWLRQ0(;&8'$&DXQHSHUIRUPDQFHVXSpULHXUHj 0$7/$% XQLTXHPHQW SRXU OHV PDWULFHV UpVXOWDW GH WDLOOH VXSpULHXUH RX pJDOH j  ∗  2Q FRQVWDWH pJDOHPHQW TXH OH QRPEUH GH *)/236 H[pFXWpV SDU 0$7/$% HVW UHODWLYHPHQW VWDEOH VXU O¶HQVHPEOH GHV WDLOOHV GH PDWULFH UpVXOWDW pWXGLpHV DORUV TXH OH QRPEUHGH*)/236H[pFXWpVSDUODIRQFWLRQ0(;&8'$&GLPLQXHUpJXOLqUHPHQWj PHVXUHTXHOHVWDLOOHVGHPDWULFHUpVXOWDWGLPLQXHQW

 

,, 6\QWKqVHGHVUpVXOWDWVREWHQXV 'DQV OH FDV G¶XQ SUREOqPH GH PXOWLSOLFDWLRQ GH PDWULFHV WHO TXH WUDLWp GDQV FH PpPRLUH j SDUWLU GHV GLIIpUHQWHV PHVXUHV SUpFpGHQWHV RQ GpGXLW TXH SRXU DYRLU GHV UpVXOWDWVRSWLPDX[RQGRLW • UpJOHUjOHQRPEUHPD[LPDOGHUHJLVWUHVXWLOLVDEOHVSDUWkFKH • UpJOHUj ∗  ODWDLOOHGHVEORFVGHWkFKHV • XWLOLVHU &8'$ XQLTXHPHQW GDQV OHV FDV RX OD PDWULFH UpVXOWDW HVW GH WDLOOH VXSpULHXUHRXpJDOHj ∗   'DQVOHVDXWUHVFDVGHILJXUH PDWULFHVRSpUDQGHVGHWDLOOHGLIIpUHQWHGHODWDLOOHGH ODPDWULFHUpVXOWDWPDWULFHVUpVXOWDWQRQFDUUpHVHWF GHX[GpPDUFKHVSULQFLSDOHVVRQW SRVVLEOHV • IDLUHGHVWHVWVDYHFOHSURILOHUHQREVHUYDQWODPDQLqUHGRQWpYROXHQWOHVUpVXOWDWV HWOHVSDUDPqWUHV • GpGXLUH OH QRPEUH GH EORFV UpVLGHQWV SDU PXOWLSURFHVVHXU  HW GH WkFKHV UpVLGHQWHVFKRLVLVSDUOHJHVWLRQQDLUHGHWkFKHHQVDFKDQWTXH P OHJHVWLRQQDLUHGHWkFKHVFKRLVLWWRXMRXUVXQQRPEUHGHEORFVUpVLGHQWVOHSOXV pOHYpSRVVLEOHVDQVMDPDLVGpSDVVHU P OHJHVWLRQQDLUHGHWkFKHVYpULILHWRXMRXUVTXHOHVUHVVRXUFHVUHTXLVHV SDU SOXVLHXUV EORFV GH WkFKHV VRQW GLVSRQLEOHV GDQV OHV PXOWLSURFHVVHXUV FLEOpV & HVWjGLUHTXHO¶HQVHPEOHGHVIXWXUVEORFVUpVLGHQWVG¶XQPXOWLSURFHVVHXUQH GRLWSDVQpFHVVLWHUSOXVGH ƒ NRGHPpPRLUHSDUWDJpH ƒ UHJLVWUHV ƒ WkFKHV /H JHVWLRQQDLUH GH WkFKHV GpWHUPLQH DXWRPDWLTXHPHQW OH QRPEUH GH EORFV UpVLGHQWVHQIRQFWLRQGHFHVFRQGLWLRQV 'DQVOH7DEOHDXRQSHXWREVHUYHUXQUpFDSLWXODWLIGHVWHPSVG¶H[pFXWLRQHWGH WUDQVIHUW GH OD IRQFWLRQ 0(;&8'$& 2Q UHPDUTXH TXH OD SURSRUWLRQ GX WHPSV GH WUDQVIHUWDXJPHQWH IDLEOHPHQW OLQpDLUHPHQWDYHFODWDLOOHGHODPDWULFHUpVXOWDW 7DEOHDX6\QKWqVHGHVUpVXOWDWVSRXUGHVEORFVGHWDLOOH  )RQFWLRQ0(;&8'$& 7DLOOHGHOD PDWULFH 7HPSV .HUQHO 7HPSVGH 7HPSVGH 7HPSVWRWDO 3URSRUWLRQWHPSV UpVXOWDW G¶H[pFXWLRQ VHXO WUDQVIHUW&38 WUDQVIHUW*38 NHUQHO WUDQVIHUWWHPSV PV  PV  ĺ*38 PV  ĺ&38 PV  WUDQVIHUWV  PV  WRWDO                             

 

,,, 8WLOLVDWLRQGHODELEOLRWKqTXH&8%/$6 ,,,3UpVHQWDWLRQGHODELEOLRWKqTXH&8%/$6 /DELEOLRWKqTXH&8%/$6>@HVWXQHPLVHHQ°XYUHGHO¶HQVHPEOHGHVIRQFWLRQV VWDQGDUGLVpHV %/$6 >@ %DVLF /LQHDU $OJHEUD 6XESURJUDPV  DX GHVVXV GX PRWHXU G¶H[pFXWLRQ UXQWLPH 19,',$Š&8'$Œ /¶HQVHPEOH GHV IRQFWLRQV %/$6 %DVLF /LQHDU $OJHEUD 6XESURJUDPV  HVW XQ HQVHPEOHGHIRQFWLRQVVWDQGDUGLVpHVUpDOLVDQWGHVRSpUDWLRQVGHEDVHGHO¶DOJqEUHOLQpDLUH FRPPHGHVPXOWLSOLFDWLRQVGHYHFWHXUVRXGHPDWULFHV/DUJHPHQWXWLOLVpHVSRXUOHFDOFXO KDXWHSHUIRUPDQFHFHVIRQFWLRQVRQWpWpGpYHORSSpHVGHPDQLqUHWUqVRSWLPLVpHVSDUGHV FRQVWUXFWHXUVWHOVTXH,QWHO /HVIRQFWLRQVGHODELEOLRWKqTXH%/$6VRQWUpSDUWLHVHQQLYHDX[HW • /HQLYHDXFRQWLHQW P OHVRSpUDWLRQVVXUOHVYHFWHXUVGHODIRUPH \ α ∗ [  \ RĮHVWXQVFDODLUH FRQVWDQWH HW[HW\VRQWGHVYHFWHXUV P OHVRSpUDWLRQVSURGXLWVFDODLUHHWQRUPHSDUPLWDQWG¶DXWUHV • /HQLYHDXFRQWLHQWHQWUHDXWUHV P OHVRSpUDWLRQVGHW\SHPDWULFHYHFWHXUGHODIRUPH \ α ∗ $∗ [  β ∗ \ RĮHW ȕVRQWGHVVFDODLUHV FRQVWDQWHV [HW\VRQWGHVYHFWHXUV P ODUpVROXWLRQGH \ 7 ∗ [ R7 HVWXQHPDWULFHWULDQJXODLUH • /HQLYHDXFRQWLHQWHQWUHDXWUHV P OHVRSpUDWLRQVGHW\SHPDWULFHPDWULFHGHODIRUPH & α ∗ $ ∗ %  β ∗& RĮ HWȕVRQWGHVVFDODLUHV FRQVWDQWHV HW$%HW&VRQWGHVPDWULFH − P ODUpVROXWLRQGH % α ∗7  ∗ % R7 HVWXQHPDWULFHWULDQJXODLUH /H QLYHDX  FRQWLHQW QRWDPPHQW O¶RSpUDWLRQ GH PXOWLSOLFDWLRQ GH PDWULFHV JpQpUDOHV '*(00  /D ELEOLRWKqTXH &8%/$6 SHUPHW j O¶XWLOLVDWHXU G¶DFFpGHU DX[ UHVVRXUFHV GH FDOFXOGXSURFHVVHXUJUDSKLTXH&HWWHELEOLRWKqTXHSHUPHWGRQFG¶H[pFXWHUGHVIRQFWLRQV GHODELEOLRWKqTXH%/$6GDQVO¶HQYLURQQHPHQW&8'$GXSURFHVVHXUJUDSKLTXH 3RXUXWLOLVHUFHWWHELEOLRWKqTXHO¶DSSOLFDWLRQGRLW • DOORXHUGHO¶HVSDFHPpPRLUH*38SRXUOHVPDWULFHVRXYHFWHXUVUHTXLV • UHPSOLUFHWHVSDFHPpPRLUHGHGRQQpHV • DSSHOHUODVpTXHQFHGHIRQFWLRQV&8%/$6VRXKDLWpHV • SXLVUHQYR\HUOHVUpVXOWDWVGHO¶HVSDFHPpPRLUH*38YHUVO¶K{WH &HWWH ELEOLRWKqTXH IRXUQLW pJDOHPHQW XQ HQVHPEOH GH IRQFWLRQV SUpGpILQLHV +HOSHU )XQFWLRQ  GHVWLQpHV j O¶pFULWXUH HW OD OHFWXUH GH GRQQpHV VXU OH SURFHVVHXU JUDSKLTXH&HWHQVHPEOHGHIRQFWLRQVSHUPHWHQSDUWLFXOLHUGHJpUHU • OHVHVSDFHVPpPRLUH • O¶XWLOLVDWLRQGHODELEOLRWKqTXH • OHVGpSODFHPHQWVGHGRQQpHV /DELEOLRWKqTXH&8%/$6IRXUQLWpJDOHPHQWXQHQVHPEOHGHIRQFWLRQVUpSDUWLHV HQ  QLYHDX[ FDOTXpV VXU OHV  QLYHDX[ GH OD ELEOLRWKqTXH GH IRQFWLRQV %/$6 SUpFpGHPPHQW GpFULWV $ O¶LQWpULHXU GHV QLYHDX[ GH O¶$3, &8%/$6 FKDFXQH GHV IRQFWLRQVHVWFODVVpHVHORQTXHOHVGRQQpHVPDQLSXOpHVVRQW • UpHOOHVRXFRPSOH[HV

 

• VLPSOHRXGRXEOHSUpFLVLRQ &HWWHUpSDUWLWLRQHQQLYHDX[HWHQW\SHVGHGRQQpHVVHEDVHVXUODUpSDUWLWLRQHQ QLYHDX[ HW HQ W\SHV GH GRQQpHV GH OD ELEOLRWKqTXH GH IRQFWLRQV VWDQGDUGLVpHV %/$6 SUpFpGHPPHQWGpFULWH/HVQLYHDX[GHO¶$3,&8%/$6VRQWOHVVXLYDQWV • %/$6 XQH OLVWH GH IRQFWLRQV GH FDOFXO H[pFXWDQW GHV RSpUDWLRQV VXU QRPEUH VFDODLUH RX VXU YHFWHXUV /HV RSpUDWLRQV VXU OHV YHFWHXUV VRQW GH OD IRUPH \ α ∗ [  \  [HW\pWDQWGHVYHFWHXUVHWĮXQHFRQVWDQWH  • %/$6 XQH OLVWH GH IRQFWLRQV GH FDOFXO H[pFXWDQW GHV RSpUDWLRQV PDWULFH YHFWHXUGHODIRUPH \ α ∗ $∗ [  β ∗ \ RXGHODIRUPH \ 7 ∗ [  $pWDQWXQH PDWULFH[HW\GHVYHFWHXUVHWĮHWȕGHVFRQVWDQWHV  • %/$6 XQH OLVWH GH IRQFWLRQV GH FDOFXO H[pFXWDQW GHV RSpUDWLRQV PDWULFH PDWULFHGHODIRUPH & α ∗ $ ∗ %  β ∗& RXGHODIRUPH % α ∗ $7 ∗ %  $HW %pWDQWGHVPDWULFHVHWĮHWȕGHVFRQVWDQWHV  /HVSULQFLSDOHVSDUWLHVG¶XQSURJUDPPH&8%/$6GHEDVHVRQWVLPLODLUHVjFHOOH G¶XQSURJUDPPH&8'$F¶HVWjGLUH • GpFODUDWLRQHWLQLWLDOLVDWLRQGHVSRLQWHXUV&38 • GpFODUDWLRQGHVSRLQWHXUV*38 • UpVHUYDWLRQGHPpPRLUHSRXUOHVSRLQWHXUV*38 • WUDQVIHUWGHVGRQQpHV&38YHUV*38 • FDOFXOVVXU*38 • WUDQVIHUWGHVUpVXOWDWV*38YHUV&38 • OLEpUDWLRQGHODPpPRLUH*38 • OLEpUDWLRQGHODPpPRLUH&38 /DSULQFLSDOHGLIIpUHQFHHVWTXHGDQVXQSURJUDPPH&8'$OHFDOFXOHVWH[pFXWp SDU XQ NHUQHO GpFRXSp HQ XQH JULOOH GH WkFKHV HW GH EORFV SDUDOOqOHV GpILQLV SDU OH SURJUDPPHXU 'DQV XQ SURJUDPPH&8%/$6OHSURJUDPPHXU QH SHXW SOXV GpILQLU OD WDLOOH GH JULOOH RX OD WDLOOH GH EORFV GH WkFKHV F¶HVW OH SURFHVVHXU JUDSKLTXH TXL V¶HQ FKDUJHDXWRPDWLTXHPHQW 8QH VHXOH IRQFWLRQ &8%/$6 SUpGpILQLH H[pFXWH QRQ SOXV XQ QRPEUH UpGXLW G¶RSpUDWLRQV FRPPH SRXU XQH IRQFWLRQ &8'$ SUpGpILQLH PDLV WRXW XQ HQVHPEOH GH FDOFXOVVXUGHVPDWULFHVGHVYHFWHXUVRXGHVQRPEUHVVFDODLUHV 3RXU&8%/$6OHSDUDPpWUDJHGXFDOFXOVHOLPLWHGRQFDXSDVVDJHG¶DUJXPHQWV GHYHQXVEHDXFRXSSOXVQRPEUHX[TXHSRXUOHVIRQFWLRQV&8'$3DUH[HPSOHODIRQFWLRQ DVCMBT%HFNN  FRUUHVSRQGDQW j OD IRQFWLRQ '*(00 GH OD ELEOLRWKqTXH %/$6  QpFHVVLWHOHSDVVDJHGHDUJXPHQWV WPJEDVCMBT%HFNN DIBSUSBOTB DIBSUSBOTC JOUN JOUO JOUL EPVCMF BMQIB DPOTUEPVCMF " JOUMEB DPOTUEPVCMF # JOUMEC EPVCMFCFUB  EPVCMF $ JOUMED    

 

,,,'HVFULSWLRQG¶XQSURJUDPPH&8%/$6GHEDVH 'DQV FH SURJUDPPH GH EDVH QRXV pWXGLHURQV O¶DGGLWLRQ GH GHX[ PDWULFHV &H SURJUDPPHHVWGpFULWGDQVOHVOLJQHVFLGHVVRXV 3RXU SRXYRLU DGGLWLRQQHU GHX[ PDWULFHV HOOHV GRLYHQW DYRLU OHV PrPHV GLPHQVLRQV2QGpILQLWGRQFG¶DERUGOHQRPEUHGHOLJQHVHWGHFRORQQHVGHVPDWULFHVj WUDLWHUDYHFOHVLQVWUXFWLRQV EFGJOF. /PNCSFEFMJHOFT  EFGJOF/ /PNCSFEFDPMPOOFT  ,,,'pFODUDWLRQGHVSRLQWHXUV&38HW*38 $XGpEXWGHODIRQFWLRQSULQFLSDOHNBJORQGpFODUHOHVYDULDEOHVHWOHVSRLQWHXUV &38HW*38  %ÏDMBSBUJPOEFTQPJOUFVST  EPVCMF Y Z [ $16  EPVCMF EY EZ (16  3XLVRQDOORXHGHODPpPRLUHVXUO¶K{WHSRXUOHVWURLVSRLQWHXUV&38   "MMPDBUJPO EF NÏNPJSF TVS MIÙUF QPVS MFT QPJOUFVST EF MB QSFNJÒSFFUEFVYJÒNFNBUSJDFPQÏSBOEFFUQPVSMFQPJOUFVSEFMBNBUSJDF SÏTVMUBU  Y EPVCMF NBMMPD . / TJ[FPG EPVCMF  Z EPVCMF NBMMPD . / TJ[FPG EPVCMF  [ EPVCMF NBMMPD . / TJ[FPG EPVCMF  ,,,,QLWLDOLVDWLRQGHVSRLQWHXUV&38 'DQVO¶H[HPSOHWUDLWpRQUHPSOLWDUELWUDLUHPHQW • ODSUHPLqUHPDWULFHDYHFOHVYDOHXUV«. / • ODGHX[LqPHPDWULFHDYHFOHVYDOHXUV «. /  2QLQLWLDOLVHGRQFOHVGRQQpHVSRLQWpHVSDUYHWZGHODPDQLqUHVXLYDQWH  *OJUJBMJTBUJPOEFYFUZ  GPS KK/K  \  GPS JJ.J   \   Y<*%9$ J K . >K . J   Z<*%9$ J K . > K . J   ^ ^ &HWWHERXFOHSHUPHWG¶LQLWLDOLVHUOHWDEOHDX • YSDUODVXLWHGHFKLIIUHDOODQWGHj. / • ZSDUGHX[IRLVODVXLWHGHFKLIIUHVDOODQWGHj. / YHWZ pWDQW HQ UpDOLWp GHX[ YHFWHXUV RQ GRLW FDOFXOHU OD YDOHXU GH O¶LQGLFH GH YHFWHXUjSDUWLUGHVGHX[LQGLFHV OLJQHJFRORQQHK GHFKDTXHPDWULFH2QXWLOLVHSRXU FHODODPDFUR*%9$ J K . GpILQLHDLQVL EFGJOF*%9$ J K ME  K ME J  &HWWH PDFUR SHUPHW GH FDOFXOHU O¶LQGLFH GH OD GRQQpH GDQV XQ WDEOHDX j XQH GLPHQVLRQjSDUWLUGHVLQGLFHVOLJQHHWFRORQQH 'DQVFHWWHPDFURMEUHSUpVHQWHOHQRPEUHGHOLJQHVGHODPDWULFH>@ &RQWUDLUHPHQW j &8'$ R OHV GRQQpHV G¶XQH PDWULFH VRQW VWRFNpHV OLJQH SDU OLJQHGDQVXQWDEOHDXDYHF&8%/$6OHVGRQQpHVG¶XQHPDWULFHVRQWVWRFNpHVFRORQQH SDUFRORQQHGDQVXQWDEOHDX/D)LJXUHLOOXVWUHODGLIIpUHQFHHQWUH&8'$HW&8%/$6



en ce qui concerne la manière de stocker les données d’une matrice dans un tableau à une dimension. Pour CUBLAS, quand on « lit » dans l’ordre les valeurs du tableau (contenant la matrice), on « lit » d’abord les éléments de la première colonne (colonne 0 du haut vers le bas) de la matrice, puis les éléments de la deuxième colonne, et ainsi de suite jusqu’à la Nième colonne (colonne N-1).

j 0 1 2 3

0 X0,0 X0,1 X0,2 X0,3

1 X1,0 X1,1 X1,2 X1,3

i 2 X2,0 X2,1 X2,2 X2,3

3 X3,0 X3,1 X3,2 X3,3 Matrice à traiter

Colonne 0 Colonne 1 Colonne 2 Colonne 3

X0,0 X1,0 X2,0 X3,0 X0,1 X1,1 X2,1 X3,1 X0,2 X1,2 X2,2 X3,2 X0,3 X1,3 X2,3 X3,3 Tableau CUBLAS à une dimension : Stockage des données par colonne (column-major)

Ligne 0 Ligne 1 Ligne 2 Ligne 3

X0,0 X0,1 X0,2 X0,3 X1,0 X1,1 X1,2 X1,3 X2,0 X2,1 X2,2 X2,3 X3,0 X3,1 X3,2 X3,3 Tableau CUDA à une dimension : Stockage des données par ligne (row-major)

Figure 37 : Rangement d’une matrice par ligne ou par colonne dans un vecteur Une fois les vecteurs initialisés et avant d’utiliser les fonctions CUBLAS, on doit initialiser la bibliothèque grâce à la fonction : cublasInit(); III.2.3 Réservation de mémoire pour les pointeurs GPU Une fois la bibliothèque initialisée, on réserve de l’espace mémoire sur la carte graphique avec la fonction cublasAlloc() : cublasAlloc(M*N, sizeof(double), (void**)&dx); cublasAlloc(M*N, sizeof(double), (void**)&dy); Cette fonction crée en espace mémoire GPU un objet capable de contenir un tableau de M*N éléments, dans lequel chaque élément nécessite sizeof(double) octets de stockage. Si l’appel de fonction ne renvoie pas d’erreur, un pointeur sur l’objet dans l’espace mémoire est placé dans &dx. A noter que ce pointeur est prédéfini pour pointer sur un périphérique de traitement (carte graphique). La fonction cublasAlloc() étant basée sur la fonction cudaMalloc(), les pointeurs de périphérique de traitement renvoyés par cublasAlloc() peuvent par conséquent être passés à n’importe quel kernel de périphérique de traitement CUDA, et non pas seulement à des fonctions CUBLAS.

86 

,,,7UDQVIHUWGHVGRQQpHV&38YHUV*38 8QHIRLVODPpPRLUHDOORXpHVXUODFDUWHJUDSKLTXHRQSHXWWUDQVIpUHUOHVGRQQpHV G¶HQWUpHVXUODFDUWHDYHFOHVLQVWUXFWLRQV DVCMBT4FU7FDUPS . / TJ[FPG EPVCMF Y  EY   DVCMBT4FU7FDUPS . / TJ[FPG EPVCMF Z  EZ  

/DIRQFWLRQDVCMBT4FU7FDUPS WUDQVIqUH qUH • OHFRQWHQX  PDWULFHRSpUDQGH GXWDEOHDXY &38 YHUVOHWDEOHDXEY *38  F HVWjGLUH 0 ∗ 1 pOpPHQWV qPH • OHFRQWHQX  PDWULFHRSpUDQGH GXWDEOHDXZ &38 YHUVOHWDEOHDXEZ *38  F¶HVWjGLUH 0 ∗ 1 pOpPHQWV /¶LQWHUYDOOHGHVWRFNDJH DSSHOpLQFUpPHQW HQWUHpOpPHQWVFRQVpFXWLIVHVW qPH •   DUJXPHQW SRXUOHYHFWHXUVRXUFHY qPH •   DUJXPHQW SRXUOHYHFWHXUGHVWLQDWLRQEY &HW LQWHUYDOOH GH VWRFNDJH SHUPHW GH GLUH GH FRPELHQ RQ GRLW LQFUpPHQWHU OH SRLQWHXUHQWUHGHX[OHFWXUHVRXHQWUHGHX[pFULWXUHV 3DU H[HPSOH VL RQ DYDLW SULV XQ LQWHUYDOOH GH VWRFNDJH GH  SRXU OD OHFWXUH GX WDEOHDX[ODqUHGXWDEOHDXDXUDLWpWpOXHSXLVODqPHYDOHXUDXUDLWpWpOXHSXLVODqPHOD qPH  HWF&HWLQWHUYDOOHGHVWRFNDJHIRQFWLRQQHGHPDQLqUHLGHQWLTXHSRXUOHWDEOHDXEY VLWXpVXUODFDUWHJUDSKLTXH 'RQF pWDQW GRQQp TXH OHV PDWULFHV VRQW VWRFNpHV FRORQQH SDU FRORQQH GDQV OHV WDEOHDX[XQLQWHUYDOOHGHVWRFNDJH • GHSHUPHWG¶DFFpGHUDX[pOpPHQWVG¶XQHFRORQQHSDUWLFXOLqUHGHODPDWULFH • pJDODXQRPEUHGHOLJQHVGHODPDWULFHSHUPHWG¶DFFpGHUjXQHOLJQHSDUWLFXOLqUH G¶XQHPDWULFH 3DUH[HPSOHHQVHEDVDQWVXUOD)LJXUHVLRQGRQQHXQLQWHUYDOOHGHVWRFNDJH GHjXQHPDWULFHFRPSRUWDQWOLJQHVHWFRORQQHVOHSRLQWHXUGHGRQQpHDFFqGHUDjOD LqPH YDOHXU SXLV j OD L qPH YDOHXU SXLV j OD L qPH YDOHXU HWF 6L OH SRLQWHXU L SRLQWHVXUODqUHYDOHXUGHODqPHOLJQHGHODPDWULFHDORUVFHSRLQWHXULQFUpPHQWpGH SRLQWHUDVXUODqPHYDOHXUGHODqPHOLJQHGHODPDWULFH'HQRXYHDXLQFUpPHQWpGHLO SRLQWHUDVXUODqPHYDOHXUGHODqPHOLJQHGHODPDWULFHHWF2QYRLWGRQFTX¶HQIDLVDQW FRUUHVSRQGUH O¶LQWHUYDOOH GH VWRFNDJH HW OH QRPEUH GH OLJQHV OH SRLQWHXU DFFqGH DX[ pOpPHQWVG¶XQHOLJQHSDUWLFXOLqUH ,,,&DOFXOVVXU*38 8QH IRLV OHV GRQQpHV WUDQVIpUpHV RQ SHXW IDLUH OH FDOFXO VXU OD FDUWH 3RXU ELHQ FRPSUHQGUH OH IRQFWLRQQHPHQW GH &8%/$6 RQ Q¶DGGLWLRQQHUD TXH OD qUHOLJQHGHOD SUHPLqUHPDWULFHDYHFODqUHOLJQHGHODqPHPDWULFHF HVWjGLUHTX¶RQIHUDXQHDGGLWLRQ VpOHFWLYHVXUOHVGRQQpHV &HUWDLQHV IRQFWLRQV &8%/$6 SHUPHWWHQW FH W\SH G¶RSpUDWLRQ ORUVTXH OHV DUJXPHQWV SDVVpV VRQW FRUUHFWHPHQW FKRLVLV /HV IRQFWLRQV &8%/$6 H[pFXWDQW GHV IRQFWLRQVVWDQGDUGLOQ¶H[LVWHSDVWRXMRXUVGHIRQFWLRQDGDSWpHH[DFWHPHQWDX[FDOFXOV TX¶RQYHXWOHXUIDLUHIDLUH2QGRLWGRQF • SUHQGUHODIRQFWLRQ&8%/$6ODSOXVSURFKHGXFDOFXOTX¶RQYHXWIDLUHH[pFXWHU • DGDSWHUOHVDUJXPHQWVGHFHWWHIRQFWLRQ&8%/$6DXFDOFXOjH[pFXWHU

 

3RXUIDLUHFHWWHDGGLWLRQODIRQFWLRQ&8%/$6ODSOXVDSSURFKDQWHHVWODIRQFWLRQ DVCMBT4BYQZTXLUpDOLVHODIRQFWLRQ \ α ∗ [  \ HWGRQWOHSURWRW\SHHVW DVCMBT4BYQZ /  EY . EZ .  6LRQO¶DSSOLTXHjQRWUHH[HPSOH RQ UpDOLVH GRQF O¶RSpUDWLRQ G\  ∗ G[  G\ DYHFα  qPHDUJXPHQW  2Q IL[H O¶LQWHUYDOOH GH VWRFNDJH j 0 QRPEUH GH OLJQH  SRXU OHV GHX[ PDWULFHV SRXU SRXYRLU DFFpGHU WRXMRXUV j OD qUH YDOHXU GH FKDTXH FRORQQH GDQV FKDFXQH GHV PDWULFHV /D)LJXUHLOOXVWUHOHIRQFWLRQQHPHQWGHODIRQFWLRQDVCMBT4BYQZ      

0DWULFHG[    0DWULFHG\

 ; ; ; ;  ; ; ; ;   ; ; ; ; ; ; ; ;  0   ; ; ; ; 0  ; ; ; ;

 ; ; ; ;  ; ; ; ; 1  1 

&RORQQH &RORQQH &RORQQH &RORQQH

; ; ; ; ; ; ; ;; ; ; ; ; ; ; ;

,QWHUYDOOHGHVWRFNDJH 0 7DEOHDXjXQHGLPHQVLRQFRQWHQDQWODPDWULFHG[

; G\ ; G[ ; G\ ; G[ ; G\ ; G[ ; G\ ; G[ 

&RORQQH &RORQQH &RORQQH &RORQQH

; ; ; ; ; ; ; ;; ; ; ; ; ; ; ;

,QWHUYDOOHGHVWRFNDJH 0 7DEOHDXjXQHGLPHQVLRQFRQWHQDQWODPDWULFHG\

/HFWXUH (FULWXUH  )LJXUH)RQFWLRQQHPHQWGHODIRQFWLRQFXEODV6D[S\ 3RXULYDULDQWGHj1 FHWWH IRQFWLRQ H[pFXWH O¶RSpUDWLRQ α ∗ G[>L ∗ 0 @  G\>L ∗ 0 @ DYHFĮ HWSODFHOHUpVXOWDWGDQVG\>L ∗ 0 @  2QYRLWELHQTX¶HQD\DQWDFFpGpDXHUpOpPHQWGHFKDTXHFRORQQHF HVWjGLUHHQ VHGpSODoDQWSDULQWHUYDOOHVGH0YDOHXUVGDQVOHWDEOHDXjXQHGLPHQVLRQRQDDFFpGp JOREDOHPHQWjO¶HQVHPEOHGHVYDOHXUVGHODqUHOLJQH$XWUHPHQWGLWRQDDFFpGpjGHV YDOHXUV QRQ FRQVpFXWLYHV GH FKDFXQ GHV GHX[ WDEOHDX[ j XQH GLPHQVLRQ FRQWHQDQW OHV PDWULFHV



III.2.6 Transfert des données GPU vers CPU Une fois le calcul réalisé sur la carte graphique, il ne reste qu’à le transférer sur le CPU. On utilise pour cela la fonction cublasGetVector() dans l’instruction : cublasGetVector(M*N, sizeof(double), dy, 1, z, 1); Cette fonction fonctionne de manière similaire à la fonction cublasSetVector(). Pour cublasgetVector(), les données sont copiées du GPU (dy) au CPU (z). III.2.7 Libération de la mémoire GPU Une fois le résultat transféré sur le CPU, la bibliothèque n’étant plus utilisée, on doit libérer les espaces mémoire de la carte graphique avec les instructions : cublasFree(dx); cublasFree(dy); On doit ensuite libérer les ressources côté CPU par l’instruction : cublasShutdown(); Dès que le résultat est transféré sur CPU, on peut l’utiliser dans des instructions C ordinaires : affichage, calculs non parallélisables. III.2.8 Libération de la mémoire CPU On libère ensuite la mémoire CPU avec la fonction C habituelle free().

89 

,,,$SSOLFDWLRQGH&8%/$6jODPXOWLSOLFDWLRQGHPDWULFHVGDQVXQH IRQFWLRQ0(; 3RXUSRXYRLULQWpJUHUO¶XWLOLVDWLRQGH&8%/$6GDQVXQHIRQFWLRQ0(;GDQVOH EXW G¶H[pFXWHU XQH PXOWLSOLFDWLRQ GH PDWULFHV LO VXIILW G¶XWLOLVHU OHV PrPHV IRQFWLRQV 0(;TXHFHOOHVGpMjGpFULWHGDQVODSDUWLH&8'$GHFHUDSSRUW'HODPrPHPDQLqUH TXHSRXUOHSURJUDPPH&8%/$6GHEDVHRQXWLOLVHGHQRXYHDXOHVIRQFWLRQV • DVCMBT*OJU HWDVCMBT4IVUEPXO SRXURXYULUHWIHUPHUODELEOLRWKqTXH • DVCMBT"MMPD HWDVCMBT'SFF SRXUUpVHUYHUHWOLEpUHUGHO¶HVSDFHPpPRLUH *38 • DVCMBT4FU7FDUPS  HW DVCMBT(FU7FDUPS  SRXU WUDQVIpUHU OHV GRQQpHV PDWULFHV &38YHUV*38HW*38YHUV&38 7RXWHVOHVIRQFWLRQV&8%/$6TXLQHIRQWSDVGHFDOFXOF HVWjGLUHOHVIRQFWLRQV • GHWUDQVIHUW • GHSUpSDUDWLRQGHVFDOFXOV • GHOLEpUDWLRQGHVUHVVRXUFHV UHQYRLHQWXQHYDULDEOHG¶pWDWSUpGpILQLHLQWLWXOpHDVCMBT4UBUVT&HWWHYDULDEOHFRQWLHQW O¶pWDWGHODIRQFWLRQFRQFHUQpH /¶pWDWSHUPHWGHVLJQDOHUTXHODIRQFWLRQ • VRLWV¶HVWH[pFXWpQRUPDOHPHQW • VRLWQHV¶HVWSDVH[pFXWpHQRUPDOHPHQW'DQVFHFDVOHW\SHG¶HUUHXUHVWUHQYR\p GDQVODYDULDEOHDVCMBT4UBUVT /HVIRQFWLRQVGH FDOFXO QHUHQYRLHQWSDVGHYDULDEOHG¶pWDW&HSHQGDQW RQSHXW O¶REWHQLUHQXWLOLVDQWODIRQFWLRQDVCMBT(FU&SSPS  3DUH[HPSOHSRXUODIRQFWLRQDVCMBT*OJU RQDXUDOHFRGHVXLYDQWSHUPHWWDQW GHWHVWHUTXHFHWWHIRQFWLRQV¶HVWGpURXOpHFRUUHFWHPHQW'DQVOHFDVFRQWUDLUHRQDIILFKH XQPHVVDJHG¶HUUHXU JG TUBUVT$6#-"4@45"564@46$$&44 \  QSJOUG &SSFVSEFUSBOTGFSUEFTEPOOÏFT   DVCMBT'SFF EY   DVCMBT4IVUEPXO   SFUVSO&9*5@'"*-63& ^ /HV YHFWHXUV RSpUDQGHV YHFWHXUV G¶HQWUpH  Q¶RQW SDV EHVRLQ G¶rWUH LQLWLDOLVpV SXLVTX¶LOVUHoRLYHQWOHVYDOHXUVWUDQVPLVHVSDUODIRQFWLRQ0(;6HXOOHYHFWHXUGHUHWRXU HVWDOORXpGHODPrPHPDQLqUHTXHGDQVOHSURJUDPPH&8'$pWXGLpSUpFpGHPPHQW 2Q SHXW DXVVL DIILFKHU XQ PHVVDJH G¶HUUHXU j O¶DLGH G¶XQH IRQFWLRQ 0(; GH OD PDQLqUHVXLYDQWH NFY&SS.TH5YU &SSFVS EBDDÒT BV QÏSJQIÏSJRVF MPST EF MhÏDSJUVSF EFMBNBUSJDF"=O  8QHIRLVOHVGRQQpHVWUDQVIpUpHVGHODPrPHPDQLqUHTXHGDQVOHSURJUDPPHGH EDVH RQ XWLOLVH OD IRQFWLRQ GH FDOFXO DVCMBT(FNN  TXL UpDOLVH HQ LQWpJUDOLWp OD PXOWLSOLFDWLRQGHVGHX[PDWULFHVG¶HQWUpHJUkFHjO¶LQVWUXFWLRQ DVCMBT%HFNN hOh hOh NSPXT" ODPMT# ODPMT" BMQIB E@" NSPXT"  E@# NSPXT# CFUB E@$ NSPXT" 

 

/D IRQFWLRQ DVCMBT%HFNN IDLWSDUWLHGHVIRQFWLRQVGHODOLVWH%/$6GHOD ELEOLRWKqTXHF HVWjGLUHTXHVHVRSpUDQGHVVRQWGHX[PDWULFHV(OOHDpWpFKRLVLHSDUPL OHV IRQFWLRQV %/$6 RSpUDQW VXU GHV QRPEUHV UpHOV GRXEOH SUpFLVLRQ FDU F¶HVW FH TXL FRUUHVSRQG DXIRUPDWXWLOLVpSDU0$7/$% 'HV YDULDQWHVGHFHWWHIRQFWLRQSHUPHWWHQW pJDOHPHQWGHIDLUHOHPrPHFDOFXOVXUGHVQRPEUHV • FRPSOH[HVGRXEOHSUpFLVLRQ • UpHOVVLPSOHSUpFLVLRQ • UpHOVGRXEOHSUpFLVLRQ 2QSHXWUpVXPHUOHVRSpUDWLRQVPDWULFHPDWULFHTX¶H[pFXWHFHWWHIRQFWLRQVXUOD FDUWHJUDSKLTXHSDUODIRUPXOHVXLYDQWH G B & α ∗ G B $ ∗ G B %  β ∗ G B &  $YHF • ĮHWȕQRPEUHVIORWWDQWVGRXEOHSUpFLVLRQ • E@"E@#HWE@$PDWULFHV*38FRQVWLWXpHVG¶pOpPHQWVGRXEOHSUpFLVLRQDYHF P E@"PDWULFH*38GHWDLOOHPURZV∗ QFROV  P E@#PDWULFH*38GHWDLOOHQFROV∗ QFROV   P E@$PDWULFH*38GHWDLOOH PURZV∗ QFROV  • NSPXT"QRPEUHGHOLJQHVGHODPDWULFHE@" • ODPMT"QRPEUHGHFRORQQHVGHODPDWULFHE@" • NSPXT#QRPEUHGHOLJQHVGHODPDWULFHE@# • ODPMT#QRPEUHGHFRORQQHVGHODPDWULFHE@# • O SDUDPqWUH TXL VLJQLILH ©SDV GH WUDQVSRVpHª QRQWUDQVSRVH  VXU OHV PDWULFHVRSpUDQGHV 8QHIRLVTX¶RQFRPSUHQGO¶XWLOLVDWLRQG¶XQHIRQFWLRQ&8%/$6O¶XWLOLVDWLRQGHV DXWUHV IRQFWLRQV GH FHWWH ELEOLRWKqTXH HVW UHODWLYHPHQW VLPSOH FDU VLPLODLUH $ SDUW TXHOTXHV H[FHSWLRQV OD SOXSDUW GHV IRQFWLRQV &8%/$6 FRPSRUWH OHV PrPHV W\SHV G¶DUJXPHQWV • FKRL[RXQRQGHFDOFXOVVXUWUDQVSRVpHV • QRPEUHGHOLJQHFRORQQHV • SRLQWHXUVVXUPDWULFHVG¶HQWUpHVRUWLH • GLPHQVLRQVGRPLQDQWHV • FRHIILFLHQWVĮHWȕ  

 

,,,$QDO\VHGHVUpVXOWDWVSRXUO¶$3,&8%/$6 &RPPH SRXU OD IRQFWLRQ 0(;&8'$& OHV IRQFWLRQV FRPSOpPHQWDLUHV DX[ IRQFWLRQV&8%/$6RQWpWpFKRLVLHVSDUPLOHVIRQFWLRQVGHO LQWHUIDFHGHEDVQLYHDXGH O $3,GXPRWHXUG H[pFXWLRQ&8'$ &RQWUDLUHPHQWDXFRGH &8'$GDQVOHTXHOOHVWDLOOHVGHVEORFV HWOHQRPEUHGH UHJLVWUHVpWDLHQWIL[pVSDUO XWLOLVDWHXUGDQVXQFRGH&8%/$6F¶HVWO $3,&8%/$6TXL IL[HOHQRPEUHGHWkFKHVSDUEORFHWOHQRPEUHGHUHJLVWUHVSDUWkFKHDXPRPHQWGHOD FRPSLODWLRQ & HVW SRXUTXRL GDQV XQ SURJUDPPH &8%/$6 O LQVWUXFWLRQ PD[UUHJFRXQW Q D DXFXQH LQIOXHQFH VXU OHV UpVXOWDWV HW OD WDLOOH GHV EORFV Q¶HVWSDVFRQILJXUDEOHSDU O¶XWLOLVDWHXU /HFRPSLODWHXUQYFF YRLU†,, GpWHUPLQHFHVSDUDPqWUHVjSDUWLUGHODWDLOOHGH ODPDWULFHUpVXOWDWXQLTXHPHQW &RPPHSRXU&8'$ODFRPPXQLFDWLRQHQWUH0$7/$%HWOHSURJUDPPHVHIDLW YLDXQHIRQFWLRQ0(;&RPPHSUpFpGHPPHQWOHVWHVWVRQWpWpUpDOLVpVHQPRGH5HOHDVH /HVUpVXOWDWVRQWpWpPR\HQQpVVXUYDOHXUVDYHFXQHH[pFXWLRQSUpDODEOHQRQSULVHHQ FRPSWH FDU GXH DX[ LQFHUWLWXGHV GHV WHPSV GH FDOFXO ORUV GH OD PLVH HQ SODFH GHV UHVVRXUFHVGHODFDUWHJUDSKLTXH/HV)/236RQWpWpFDOFXOpGHODPrPHIDoRQTXHSRXU  ∗ Q &8'$F HVWjGLUH )/236  WSVFDOFXO /D SURFpGXUH GH YpULILFDWLRQ GHV UpVXOWDWV GH FDOFXO HW GH PHVXUHGHVWHPSV G¶H[pFXWLRQDpWpUpDOLVpHGHPDQLqUHVLPLODLUHjFHOOHGH&8'$ YRLU†,,  &RQWUDLUHPHQWDXSURJUDPPH&8'$XQSURJUDPPHXWLOLVDQWO¶$3,&8%/$6QH QpFHVVLWHSDVG¶DYRLUGHVWDLOOHVGHPDWULFHUpVXOWDWPXOWLSOHVGHODWDLOOHGHVEORFV8QH WDLOOH GH PDWULFH UpVXOWDW QRQ PXOWLSOH GH OD WDLOOH GH EORF GRQQHUD GHV UpVXOWDWV H[DFWV SRXUXQSURJUDPPH0(;&8%/$6&DORUVTX¶LOVDXUDLHQWpWpIDX[SRXUXQSURJUDPPH 0(;&8'$&VHXO '¶DSUqV OHV PHVXUHV UpDOLVpHV RQ UHPDUTXH TXH &8%/$6 FKRLVLW FHUWDLQV SDUDPqWUHV j SDUWLU GH OD WDLOOH GH OD PDWULFH UpVXOWDW /HV SUHPLHUV HVVDLV UpDOLVpV RQW PRQWUp GHV IOXFWXDWLRQV GH UpVXOWDW LPSRUWDQWHV SRXU GHV WDLOOHV GH PDWULFH UpVXOWDW SURFKHV SDU H[HPSOH GHV PDWULFH UpVXOWDW GH WDLOOH   HW   /D GpFRPSRVLWLRQHQIDFWHXUVSUHPLHUVGHODWDLOOHGHVPDWULFHVUpVXOWDWDXQHLQIOXHQFHVXU O¶HIILFDFLWpGXFDOFXO&¶HVWSRXUTXRLOHVWHVWVTXLRQWVXLYLRQWpWpPHQpVGDQVGLIIpUHQWV FDVGHILJXUHHQWHQDQWFRPSWHGHVIDFWHXUVSUHPLHUV (YLGHPPHQW OHV PHVXUHV SRXU GHV WDLOOHV GH PDWULFH UpVXOWDW PXOWLSOHV GH  LQFOXHQW pJDOHPHQW OHV PHVXUHV SRXU GHV WDLOOHV GH PDWULFH UpVXOWDW PXOWLSOHV GH  SXLVTXHHVWPXOWLSOHGH/HPrPHUDLVRQQHPHQWHVWJpQpUDOLVDEOHDX[PXOWLSOHVGH HW'RQFODILJXUHSRXUGHVPXOWLSOHVGHFRQWLHQWpJDOHPHQWOHVPHVXUHVSRXU WRXVOHVPXOWLSOHVVXSpULHXUVj /HVPHVXUHVpWDQWQRPEUHXVHVHOOHVVRQWUHSUpVHQWpHVVRXVIRUPHGHFRXUEHVSRXU SOXVGHFRPPRGLWp ,,,,QIOXHQFHGHODWDLOOHGHODJULOOHGHWkFKHVVXUODSHUIRUPDQFH /HVFRXUEHVGHVILJXUHVjLOOXVWUHQWOHVPHVXUHVGH*)/236 jSDUWLUGHVWHPSV G¶H[pFXWLRQ SRXUGHVJULOOHVGHWkFKHVGRQWFKDTXHF{WpHVWPXOWLSOHGH UHVSHFWLYHPHQW  HW 'DQVOHVFRXUEHVVXLYDQWHV

 

• /HVFRXUEHV©0(;&8%/$6&ªFRUUHVSRQGHQWDXQRPEUHGH)/236GpGXLWV GHODPHVXUHGXWHPSVVpSDUDQWOHVLQVWDQWVVXLYDQWV P DSSHOVRXV0$7/$%GHODIRQFWLRQ0(;&8%/$6& P ILQGHODUpFHSWLRQSDU0$7/$%GHVUpVXOWDWVGXSURJUDPPH /HV )/236 UHSUpVHQWpV VXU OHV FRXUEHV ©0(;&8%/$6&ª FRUUHVSRQGHQW GRQFjGHVWHPSVLQFOXDQWOHVWHPSVGHWUDQVIHUWHQWUH&38HW*38 • /HV FRXUEHV LQWLWXOpHV ©.HUQHOª UHSUpVHQWHQW OHV )/236 GpGXLWV GH OD PHVXUH GHVWHPSVG¶H[pFXWLRQGXFDOFXOSDUODFDUWHJUDSKLTXHVHXOH,OVQ¶LQFOXHQWGRQF SDVOHVWHPSVGHWUDQVIHUWGHVGRQQpHV • /HVFRXUEHVLQWLWXOpHV©0$7/$%ªUHSUpVHQWHQWOHV)/236GpGXLWVGHODPHVXUH GHVWHPSVG¶H[pFXWLRQGXFDOFXOSDU0$7/$%VHXO VDQVOHSURJUDPPH0(; &8%/$6& 

 0XOWLSOHVGHHWSOXV  



   0(;&8%/$6&  .HUQHO

*)/236  0$7/$% 





 

        7DLOOHGHF{WpGHODPDWULFHUpVXOWDW

 )LJXUH*)/236SRXUGHVF{WpVGHPDWULFHUpVXOWDWPXOWLSOHVGH



140 Multiples de 64 et plus 130 120

110

100 Multiples de 32 90 80 MEX-CUBLAS-C 70 Kernel

GFLOPS 60 MATLAB 50

40

30

20 10

0 256 384 512 640 768 896 1024 Tailles de côté de la matrice résultat

Figure 40 : GFLOPS pour des côtés de matrice résultat multiples de 32

140 Multiples de 64 et plus 130 120

110

100 Multiples de 16 et 32 90 80 MEX-CUBLAS-C 70 Kernel

GFLOPS 60 MATLAB 50

40

30

20 10

0 256 320 384 448 512 576 640 704 768 832 896 960 1024 Tailles de côté de la matrice résultat

Figure 41 : GFLOPS pour des côtés de matrice résultat multiples de 16

94

140 Multiple de 128 130 120 110 100 Multiples de 32 Multiple de 16 90 Multiple de 16 80 MEX-CUBLAS-C 70 Kernel Multiples de 2, 4 et 8

GFLOPS 60 MATLAB 50 40 30 20 10 0 588 630 672 714 756 798 840 882 924 966 1008 Tailles de côté de la matrice résultat

Figure 42 : GFLOPS pour des côtés de matrice résultat multiples de 14 (nombre de multiprocesseurs de la carte GTX470)

140

130 Multiples de 64 et plus 120

110

100 Multiples de 16 et 32 90 80 MEX-CUBLAS-C 70 Kernel

GFLOPS 60 MATLAB

50 Multiples de 2, 4, et 8 40

30

20 10

0 256 320 384 448 512 576 640 704 768 832 896 960 1024 Tailles de côté de la matrice résultat

Figure 43 : GFLOPS pour des côtés de matrice résultat multiples de 8

95 

 0XOWLSOHGHHW  

 0XOWLSOHVGH  0XOWLSOHVGH  0XOWLSOHGH  0(;&8%/$6&  .HUQHO

*)/236  0XOWLSOHVGH 0$7/$% 





 

            7DLOOHVGHF{WpGHODPDWULFHUpVXOWDW

 )LJXUH*)/236SRXUGHVF{WpVGHODPDWULFHUpVXOWDWPXOWLSOHVGH  /HPXOWLSOHGHODWDLOOHGHF{WpGHODPDWULFHUpVXOWDWDXQHFHUWDLQHLPSRUWDQFH 2QFRPSDUHSRXUGHVWDLOOHVGHPDWULFHVUpVXOWDWFRPSDUDEOHVODSXLVVDQFHGHFDOFXO 2Q UHPDUTXH TXH JOREDOHPHQW SOXV OD WDLOOH GH OD PDWULFH UpVXOWDW HVW PXOWLSOH G¶XQH SXLVVDQFH GH  pOHYpH SOXV OD SHUIRUPDQFH HVW ERQQH 3DU FRQWUH LO IDXW pYLWHU G¶DYRLUGHVWDLOOHVGHF{WpLQIpULHXUHVjFDUFHVHUDLWVRXVH[SORLWHUOHVFDSDFLWpVGX SURFHVVHXUJUDSKLTXH 6XU OD )LJXUH  RQ UHPDUTXH TX¶DYRLU XQH WDLOOH GH F{Wp GH PDWULFH RSpUDQGH PXOWLSOHGH QRPEUH GHPXOWLSURFHVVHXUVGHODFDUWH JUDSKLTXH *7;  Q¶DSSRUWH SDV G¶DPpOLRUDWLRQ VLJQLILFDWLYH DX QLYHDX GX QRPEUH GH )/236 DX FRQWUDLUH /HV PDWULFHVUpVXOWDWGRQWOHVF{WpVVRQWPXOWLSOHVGHGRQQHQWGHVUpVXOWDWVWUqVSURFKHVGH FHOOHVGRQWOHVF{WpVVRQWPXOWLSOHVGHRXPRLQV 3RXU OD IRQFWLRQ 0(;&8%/$6& OHV GLIIpUHQFHV GH SHUIRUPDQFH VRQW PRLQV YLVLEOHVFDUHOOHVVRQWHQSDUWLHPDVTXpHVSDU • OHVWHPSVGHWUDQVIHUWGHGRQQpHVHQWUH0$7/$%HWODIRQFWLRQ GHO¶RUGUHGH PVDXWRWDO  • OHVWHPSVGHWUDQVIHUWGHVGRQQpHVHQWUH&38HW*38 QRQPHVXUpV  '¶DXWUH SDUW RQ UHPDUTXH TXH OD IRQFWLRQ 0(;&8%/$6& UHVWH SOXV SHUIRUPDQWH TXH 0$7/$% MXVTX¶j GHV WDLOOHV GH PDWULFH UpVXOWDW UHODWLYHPHQW IDLEOHV ×  3RXUGHVF{WpVGHPDWULFHLQIpULHXUVj0$7/$%JDJQHHQSHUIRUPDQFH SDUUDSSRUWjODIRQFWLRQ0(;&8%/$6&

 

,,,,QIOXHQFHGHODWDLOOHGHODJULOOHGHWkFKHVVXUOHFKRL[GHVSDUDPqWUHVSDU &8%/$6 2QUDSSHOOHTXHSRXU&8%/$6ODSOXSDUWGHVSDUDPqWUHVVRQWJpUpV FKRLVLV SDU OHJHVWLRQQDLUHGHWkFKHVGXSURFHVVHXUJUDSKLTXH3RXUFKDTXHPHVXUHGHVILJXUHVj  XQ FHUWDLQ QRPEUH GH FHV SDUDPqWUHV DLQVL TXH G¶DXWUHV RQW pWp REVHUYpV JUDFH DX SURILOHUjVDYRLU • OHQRPEUHGHUHJLVWUHVXWLOLVpVSDUWkFKH • ODWDLOOHGHJULOOHVXLYDQWVHVGLPHQVLRQV • ODWDLOOHGHEORFVXLYDQWVHVGLPHQVLRQV • ODTXDQWLWpGHPpPRLUHSDUWDJpHXWLOLVpH HQRFWHWV  • OHQRPEUHGHEORFVUpVLGHQWVSDUPXOWLSURFHVVHXU • OHWDX[G¶RFFXSDWLRQ $O¶DLGHGXSURILOHURQUHPDUTXHTXH&8%/$6Q¶XWLOLVHTXHGHX[FRQILJXUDWLRQV VHORQODWDLOOHGHPDWULFHUpVXOWDW 2QREVHUYHTXH • GDQVOHFDVRRQDGHVF{WpVGHPDWULFHUpVXOWDWGHWDLOOHVXSpULHXUHRXpJDOHj  HW PXOWLSOH GH  RX SOXV OH JHVWLRQQDLUH GH WkFKHV FKRLVLW WRXMRXUV OHV PrPHVYDOHXUVGHSDUDPqWUHV TXHOOHTXHVRLWODWDLOOHGHODPDWULFH UpVXOWDW j VDYRLU P UHJLVWUHVSDUWkFKH P EORFVQRQFDUUpVGHOLJQHVHWFRORQQHV P RFWHWVGHPpPRLUHSDUWDJpHSDUEORF P EORFVUpVLGHQWVSDUPXOWLSURFHVVHXU UpVXOWDQWDLQVLHQXQWDX[G¶RFFXSDWLRQGH • GDQV WRXV OHV DXWUHV FDV OH JHVWLRQQDLUH GH WkFKHV FKRLVLW WRXMRXUV OHV PrPHV YDOHXUVGHSDUDPqWUHV TXHOOHTXHVRLWODWDLOOHGHODPDWULFHUpVXOWDW jVDYRLU P UHJLVWUHVSDUWkFKH P EORFVQRQFDUUpVGHOLJQHVHWFRORQQH P RFWHWVGHPpPRLUHSDUWDJpHSDUEORF P EORFVUpVLGHQWVSDUPXOWLSURFHVVHXU UpVXOWDQWDLQVLHQXQWDX[G¶RFFXSDWLRQGH /DPDQLqUHGRQWO¶$3, &8%/$6FKRLVLWOHVSDUDPqWUHVTX¶HOOHXWLOLVHQ¶HVWSDV GpFULWH GDQV OD GRFXPHQWDWLRQ IRXUQLH SDU 19,',$ /¶pWXGH GHV UpVXOWDWV SHXW QRXV DPHQHUjpPHWWUHXQHK\SRWKqVHSUREDEOHGHIRQFWLRQQHPHQWGH&8%/$6FRQFHUQDQWOH FKRL[GHVSDUDPqWUHV 2QVHUDSSHOOH †,, TXHOHJHVWLRQQDLUHGHWkFKHVYpULILHTXHOHVUHVVRXU FHV QpFHVVDLUHVjXQEORFGHWkFKHVVRQWSUpVHQWHVGDQVOHPXOWLSURFHVVHXUFLEOp6LFHQ¶HVW SDVOHFDVOHJHVWLRQQDLUHGLPLQXHOHQRPEUHGHEORFVUpVLGHQWVjDWWULEXHUMXVTX¶jFHTXH OHVUHVVRXUFHVQpFHVVDLUHVVRLHQWLQIpULHXUHVRXpJDOHDX[UHVVRXUFHV PDWpULHOOHV GX PXOWLSURFHVVHXU 2Q D YX SUpFpGHPPHQW †,,  TXH SRXU YpULILHU TXH OHV UHVVRXUFHV PDWpULHOOHVVRQWVXIILVDQWHVOHJHVWLRQQDLUHGHWkFKHVYpULILHTXHOHVFRQGLWLRQVVXLYDQWHV VRQWUHVSHFWpHV • UHJLVWUHVPD[LPXPSDUPXOWLSURFHVVHXU • WkFKHVUpVLGHQWHVPD[LPXPSDUPXOWLSURFHVVHXU • NRPD[LPXPGHPpPRLUHSDUWDJpHSDUPXOWLSURFHVVHXU • EORFVUpVLGHQWVPD[LPXPSDUPXOWLSURFHVVHXU

 

• UHJLVWUHVSDUWkFKHPLQLPXP 8QHK\SRWKqVHGHIRQFWLRQQHPHQWGH&8%/$6HVWGpFULWHVXUOD)LJXUH 

1EOLJQHV  1EFRORQQH  &{WpBPDWBUpVXOW• 121

28,

'pFRXSHGHODPDWULFHUpVXOWDWHQ  JULOOHVFDUUpHVGHWDLOOHVpJDOHV

,QLWLDOLVDWLRQGHODWDLOOHGHEORFj ,QLWLDOLVDWLRQGHODWDLOOHGHEORFj OLJQHVHWFRORQQHV OLJQHVHWXQHFRORQQH

&KRL[GHUHJLVWUHVSDUWkFKHHWGH &KRL[GHUHJLVWUHVSDUWkFKHHWGH RFWHWVGHPpPRLUHSDUWDJpHSDU RFWHWVGHPpPRLUHSDUWDJpHSDU EORF EORF

'pGXFWLRQGXQRPEUHGHEORFV UpVLGHQWVSDUPXOWLSURFHVVHXUjSDUWLU GHVFRQGLWLRQV • EORFVUpVLGHQWVPD[LPXP • UHJLVWUHVPD[LPXP • WkFKHVUpVLGHQWHVPD[LPXP •  NR GH PpPRLUH SDUWDJpH PD[LPXP  )LJXUH+\SRWKqVHGHIRQFWLRQQHPHQWGH&8%/$6FRQFHUQDQWOHFKRL[GHVSDUDPqWUHV 3UHQRQV GHX[ H[HPSOHV SRXU LOOXVWUHU OD SURFpGXUH GpFULWH VXU OD )LJXUH  XQ H[HPSOHDYHFXQHWDLOOHGHPDWULFHUpVXOWDWGH •   •  

,,,&DVG¶XQHPDWULFHUpVXOWDWGHWDLOOH   HVW VXSpULHXU j  HW PDLV Q¶HVW SDV GLYLVLEOH SDU  /H JHVWLRQQDLUH GH WkFKHVGpFLGHDORUV • TXHFKDTXHEORFFRPSRUWHUDOLJQHVHWXQHFRORQQH • TX¶LO\DXUDXQHVHXOHJULOOHGHODWDLOOHGHODPDWULFHUpVXOWDW • TXHUHJLVWUHVSDUWkFKHVVHURQWXWLOLVpV • TXHRFWHWVGHPpPRLUHSDUWDJpHSDUEORFVHURQWXWLOLVpV /H JHVWLRQQDLUH GH WkFKHV GpGXLW DORUV OH QRPEUH GH EORFV j DWWULEXHU SDU PXOWLSURFHVVHXU IXWXUVEORFVUpVLGHQWV jSDUWLUGHVFKRL[SUpFpGHQWVHWGHVFRQGLWLRQV • UHJLVWUHVPD[LPXP • WkFKHVUpVLGHQWHVPD[LPXP • NRGHPpPRLUHSDUWDJpHPD[LPXP

 

• EORFVUpVLGHQWVPD[LPXP &KDTXHWkFKHQpFHVVLWHUHJLVWUHVGRQFXQEORFGHWkFKHVQpFHVVLWH UHJLVWUHVEORFVGHWkFKHVQpFHVVLWHQWUHJLVWUHV /DqUHFRQGLWLRQQ¶HVWSDV UHVSHFWpH 3RXU TXH FHWWH FRQGLWLRQ VRLW UHVSHFWpH OH JHVWLRQQDLUH GH WkFKHV GHYUD DWWULEXHUEORFVUpVLGHQWVPD[LPXPFDUEORFVQpFHVVLWHQWUHJLVWUHV LQIpULHXUDX PD[LPXPGHUHJLVWUHV  &KDTXHEORFFRPSRUWHWkFKHVEORFVFRPSRUWHQWGRQFWkFKHV/DqPH FRQGLWLRQQ¶HVWSDVUHVSHFWpH3RXUTXHFHWWHFRQGLWLRQVRLWUHVSHFWpHOHJHVWLRQQDLUHGH WkFKHVGHYUDDWWULEXHUEORFVUpVLGHQWVPD[LPXPFDUEORFVFRPSRUWHQWWkFKHV &KDTXH EORF QpFHVVLWH  RFWHWV GH PpPRLUH SDUWDJpH SDU EORFEORFV QpFHVVLWHURQWGRQFRFWHWVFHTXLVDWLVIDLWODqPHFRQGLWLRQ /H QRPEUH GH EORFV UpVLGHQWV HVW IL[p j  SDU OH JHVWLRQQDLUH GH WkFKHV FH TXL SHUPHWGHVDWLVIDLUH • /DFRQGLWLRQUHJLVWUHVWkFKH WkFKHVEORF EORFV   • /DFRQGLWLRQWkFKHVEORF EORFVUpVLGHQWV WkFKHV • /DFRQGLWLRQRFWHWVEORF EORFVUpVLGHQWV NR NR • /DFRQGLWLRQEORFVUpVLGHQWV EORFVUpVLGHQWVPD[LPXP 2QSHXWHQGpGXLUHOHWDX[G¶RFFXSDWLRQGHVUHVVRXUFHVF HVWjGLUHOHUDSSRUWGX QRPEUHGHZDUSVUpVLGHQWVSDUOHQRPEUHPD[LPDOGHZDUSVUpVLGHQWV &KDTXH EORF FRQWLHQW  WkFKHV HW XQ ZDUS FRQWLHQW  WkFKHV RQ DXUD GRQF   ZDUSVUpVLGHQWVSDUEORF3DUFRQVpTXHQWOHQRPEUHGHZDUSVUpVLGHQWVFRQWHQXV  GDQVOHVEORFVUpVLGHQWVVHUDGH ∗   /HQRPEUHPD[LPDOGHZDUSVUpVLGHQWVSDU  PXOWLSURFHVVHXU pWDQW GH  RQ HQ GpGXLW OH WDX[ G¶RFFXSDWLRQ  F HVWjGLUH  2QDGRQFG¶RFFXSDWLRQGHVUHVVRXUFHV

,,,&DVG¶XQHPDWULFHUpVXOWDWGHWDLOOH  'DQVFHFDVHVWGLYLVLEOHSDUO¶HQVHPEOHGHVWkFKHVDVVRFLpHVjODPDWULFH UpVXOWDWHVWGRQFGLYLVpHQJULOOHVGHWDLOOH  /HJHVWLRQQDLUHGHWkFKHVGpFLGHHQVXLWHG¶DWWULEXHU • XQHWDLOOHGHOLJQHVHWFRORQQHVSDUEORF • UHJLVWUHVSDUWkFKHV • RFWHWVGHPpPRLUHSDUWDJpHSDUEORF /H JHVWLRQQDLUH GH WkFKHV FDOFXOH DORUV OH QRPEUH GH EORFV j DWWULEXHU SDU PXOWLSURFHVVHXU IXWXUVEORFVUpVLGHQWV jSDUWLUGHVFKRL[SUpFpGHQWVHWGHVFRQGLWLRQV • UHJLVWUHVPD[LPXP • WkFKHVUpVLGHQWHVPD[LPXP • NRGHPpPRLUHSDUWDJpHPD[LPXP • EORFVUpVLGHQWVPD[LPXP /H QRPEUH GH EORFV UpVLGHQWV HVW IL[p j  SDU OH JHVWLRQQDLUH GH WkFKHV FH TXL SHUPHWGHVDWLVIDLUH • /DFRQGLWLRQUHJLVWUHVWkFKH WkFKHVEORF EORFV   • /DFRQGLWLRQWkFKHVEORF EORFVUpVLGHQWV WkFKHV  • /DFRQGLWLRQRFWHWVEORF EORFVUpVLGHQWV NR NR

 

• /DFRQGLWLRQEORFVUpVLGHQWV EORFVUpVLGHQWVPD[LPXP 2QSHXWHQGpGXLUHOHWDX[G¶RFFXSDWLRQGHVUHVVRXUFHV &KDTXH EORF FRQWLHQW  WkFKHV HW XQ ZDUSV FRQWLHQW  WkFKHV RQ DXUD GRQF   ZDUSVUpVLGHQWVSDUEORF3DUFRQVpTXHQWOHQRPEUHGHZDUSVUpVLGHQWVFRQWHQXV  GDQVOHVEORFVUpVLGHQWVVHUDGH ∗  /HQRPEUHPD[LPDOGHZDUSVUpVLGHQWVSDU  PXOWLSURFHVVHXUpWDQWGHRQHQGpGXLWOHWDX[G¶RFFXSDWLRQ F HVWjGLUH  2QDGRQFG¶RFFXSDWLRQGHVUHVVRXUFHV ,,,6\QWKqVHGHVUpVXOWDWVREWHQXV /HVUpVXOWDWVSHXYHQWrWUHFODVVpVVHORQOHVFDVGDQVOH7DEOHDX 7DEOHDX&DUDFWpULVWLTXHVGHVGHX[PRGHVGHIRQFWLRQQHPHQWGH&8%/$6VHORQODWDLOOHGHPDWULFHUpVXOWDW &{WpPDWULFHUpVXOWDW• 1RQ 2XL 1EOLJQHVUpVXOWDW  H[HPSOH   H[HPSOH   1EFRORQQHVUpVXOWDW  1EGHJULOOHVGHWkFKHV   7DLOOHGHJULOOH 7DLOOHGHODPDWULFHUpVXOWDW   1EOLJQHVSDUEORF   1EFRORQQHVSDUEORF   1EWkFKHVSDUEORF   1EGHUHJLVWUHVSDUWkFKHV   1ERFWHWVGHPpPRLUHSDUWDJpHSDUEORF   1EEORFVUpVLGHQWVSDUPXOWLSURFHVVHXU   1EZDUSVUpVLGHQWVSDUEORF   1EZDUSVUpVLGHQWVSDUPXOWLSURFHVVHXU   7DX[G¶RFFXSDWLRQ   1E*)/236   '¶DSUqV OH 7DEOHDX  RQ UHPDUTXH TXH FRQWUDLUHPHQW j XQ SURJUDPPH0(; &8'$& OD SHUIRUPDQFH G¶XQ SURJUDPPH0(;&8%/$6& Q¶HVW SDV OLpH DX WDX[ G¶RFFXSDWLRQ QL DX QRPEUH GH WkFKHV SDU EORF PDLV GpSHQG DYDQW WRXW GX QRPEUH GH EORFVUpVLGHQWVSDUPXOWLSURFHVVHXU '¶DSUqV FHV UpVXOWDWV HW G¶DSUqV OHV ILJXUHV SUpFpGHQWHV RQ SHXW HQ GpGXLUH TXH SRXU DYRLU GH ERQQHV SHUIRUPDQFHV DYHF &8%/$6 RQ GRLW V¶DUUDQJHU SRXU DYRLU XQH WDLOOH GH PDWULFH UpVXOWDW TXL HQWUDvQH XQ QRPEUH GH EORFV UpVLGHQWV PD[LPDO TXLWWH j GLPLQXHUOHWDX[G¶RFFXSDWLRQ 6XUOH7DEOHDXRQREVHUYHOHVWHPSVG¶H[pFXWLRQHWGHWUDQVIHUWGHODIRQFWLRQ 0(;&8%/$6&2QUHPDUTXHTXHSOXVODWDLOOHGHODPDWULFHUpVXOWDWHVWJUDQGHSOXV ODSURSRUWLRQGHWHPSVGHWUDQVIHUWHVWIDLEOHFRQWUDLUHPHQWj&8'$SRXUOHTXHOFHWWH SURSRUWLRQGHWHPSVGHWUDQVIHUWDXJPHQWH 7DEOHDX7HPSVGHWUDQVIHUWHWG¶H[pFXWLRQGHODIRQFWLRQ0(;&8%/$6& )RQFWLRQ0(;&8%/$6& 7DLOOHGHOD PDWULFH 7HPSV .HUQHO 7HPSVGH 7HPSVGH 7HPSVWRWDO 3URSRUWLRQWHPSV UpVXOWDW G¶H[pFXWLRQ VHXO WUDQVIHUW&38 WUDQVIHUW*38 NHUQHO WUDQVIHUWWHPSV PV  PV  ĺ*38 PV  ĺ&38 PV  WUDQVIHUWV  PV  WRWDO                           



101 

,9 8WLOLVDWLRQGHODELEOLRWKqTXH&8))7SRXUOHWUDLWHPHQWGX VLJQDO ,93UpVHQWDWLRQGHODELEOLRWKqTXH&8))7 /D ELEOLRWKqTXH &8))7 HVW OD ELEOLRWKqTXH GH WUDQVIRUPpHV GH )RXULHU UDSLGH ))7  GH &8'$Œ >@ &HWWH ELEOLRWKqTXH RIIUH XQH LQWHUIDFH VLPSOH SRXU WUDLWHU LQIRUPDWLTXHPHQW GHV ))7 VXU XQ SURFHVVHXU JUDSKLTXH 19,',$ FH TXL SHUPHW G¶H[SORLWHUOHSDUDOOpOLVPHGXSURFHVVHXUJUDSKLTXHVDQVDYRLUjGpYHORSSHUXQHPLVHHQ °XYUH))7EDVpHVXUOHSURFHVVHXUJUDSKLTXH &HWWHYHUVLRQGHELEOLRWKqTXHPHWHQ°XYUHOHVFDUDFWpULVWLTXHVVXLYDQWHV • WUDQVIRUPpHV''HW'GHGRQQpHVUpHOOHVRXFRPSOH[HV • SRVVLELOLWp GH UHJURXSHU GHV ))7 GH GLIIpUHQWHV WDLOOHV HW GH OHV H[pFXWHU VLPXOWDQpPHQW HQSDUDOOqOH  • WDLOOHVGHWUDQVIRUPpHVFRPSUHQDQW P MXVTX¶jPLOOLRQVG¶pOpPHQWVVLPSOHSUpFLVLRQ P MXVTX¶jPLOOLRQVG¶pOpPHQWVGRXEOHSUpFLVLRQ GDQVQ¶LPSRUWHTXHOOHGLPHQVLRQ • WUDQVIRUPpHV P ©VXUSODFHª GRQQpHG¶HQWUpHUHPSODFpHSDUOHUpVXOWDW  P GDQVXQHYDULDEOHGHUpVXOWDWV SRXUGHVGRQQpHVUpHOOHVHWFRPSOH[HV • WUDQVIRUPpHV GRXEOH SUpFLVLRQ VXU PDWpULHO FRPSDWLEOH SURFHVVHXUV GH W\SH *7HWVXLYDQWV  &HWWHELEOLRWKqTXHHVWFRQVWLWXpHGHGHX[SDUWLHVSULQFLSDOHV • W\SHV&8))7SUpGpILQLVHWGpILQLWLRQVGHGLUHFWLRQGHWUDQVIRUPpH • IRQFWLRQV&8))7SUpGpILQLHVSUpSDUDQWOHVWUDQVIRUPpHVHWOHVH[pFXWDQW /¶$3,&8))7HVWEDVpHVXUODELEOLRWKqTXH))7:TXLHVWXQHGHVELEOLRWKqTXHV ))7OHVSOXVSRSXODLUHVHWOHVSOXVHIILFDFHV/DELEOLRWKqTXH))7:RIIUHXQPpFDQLVPH GH FRQILJXUDWLRQ VLPSOH DSSHOp SODQ TXL VSpFLILH FRPSOqWHPHQW OH SODQ G¶H[pFXWLRQ RSWLPDO±F HVWjGLUHOHQRPEUHGHG¶RSpUDWLRQVHQYLUJXOHIORWWDQWH )/23 PLQLPDO± SRXUXQHWDLOOHGH))7HWXQW\SHGHGRQQpHSDUWLFXOLHUV /¶DYDQWDJHGHFHWWHDSSURFKHHVWTXHXQHIRLVTXHO¶XWLOLVDWHXUDFUppXQSODQOD ELEOLRWKqTXH VWRFNH WRXW pWDW QpFHVVDLUH SRXU H[pFXWHU OH SODQ GH QRPEUHXVHV IRLV VDQV UHFDOFXO GH OD FRQILJXUDWLRQ /H PRGqOH ))7: IRQFWLRQQH ELHQ SRXU OD ELEOLRWKqTXH &8))7 SDUFH TXH GLIIpUHQWV W\SHV GH ))7 GHPDQGHQW GHV UHVVRXUFHV *38 HW GHV FRQILJXUDWLRQV GH WkFKH GLIIpUHQWHV HW OHV SODQVVRQW GHV PR\HQV VLPSOHV GH VWRFNHU HW UpXWLOLVHUGHVFRQILJXUDWLRQV /D ELEOLRWKqTXH &8))7 LQLWLDOLVH OHV GRQQpHV LQWHUQHV DX PRPHQW GX SUHPLHU DSSHOG¶XQHIRQFWLRQGHO¶$3,3DUFRQVpTXHQWWRXWHIRQFWLRQGHO¶$3,SHXWUHQYR\HUOH FRGH G¶HUUHXU &8))7B6(783B)$,/(' VL O¶LQLWLDOLVDWLRQ GH OD ELEOLRWKqTXH D pFKRXp &HWWHELEOLRWKqTXHVHIHUPHDXWRPDWLTXHPHQW ORUVTXH WRXV OHV SODQV GH WUDQVIRUPpH GH )RXULHUFUppVSDUO¶XWLOLVDWHXURQWpWpGpWUXLWV 

 

,9'HVFULSWLRQG¶XQSURJUDPPH&8))7GHEDVH 8QSURJUDPPHGHEDVHXWLOLVDQWODELEOLRWKqTXH&8))7HVWFRQVWLWXpGHVSDUWLHV VXLYDQWHV • GpFODUDWLRQGHVYDULDEOHVHWGHVSRLQWHXUV&38HW*38 • DOORFDWLRQG¶HVSDFHPpPRLUHVXUODFDUWHJUDSKLTXHHWVXUO¶K{WH • LQLWLDOLVDWLRQHWWUDQVIHUWGHVGRQQpHVRSpUDQGHVVXU*38 • FUpDWLRQG¶XQSODQGHWUDQVIRUPpHFRQWHQDQWOHVFDUDFWpULVWLTXHVSULQFLSDOHVGHOD WUDQVIRUPpHVRXKDLWpH • H[pFXWLRQGHODWUDQVIRUPpHGH)RXULHU • WUDQVIHUWGXUpVXOWDWVXU&38 • GHVWUXFWLRQGXSODQGHWUDQVIRUPpH • OLEpUDWLRQGHVHVSDFHVPpPRLUH&38HW*38 &RPPHSURJUDPPH&8))7GHEDVHQRXVpWXGLHURQVODWUDQVIRUPpHGH)RXULHU UDSLGHG¶XQYHFWHXUGHYDOHXUVRSpUDQGHV pJDOHPHQWDSSHOpHVYDOHXUVG¶HQWUpH 3RXU IDFLOLWHUOHVFDOFXOVGHWUDQVIRUPpHGH)RXULHUUDSLGHODELEOLRWKqTXH&8))7FRPSRUWH GHVW\SHVGHGRQQpHSUpGpILQLV 'DQV FH SURJUDPPH QRXV XWLOLVHURQV OH W\SH DVGGU$PNQMFYTXLSHUPHWGH PDQLSXOHU GHV GRQQpHV FRPSOH[HV VLPSOH SUpFLVLRQ 2Q XWLOLVH LFL GHV GRQQpHV VLPSOH SUpFLVLRQ XQLTXHPHQW SRXU UpGXLUH OH SURJUDPPH j VD SOXV VLPSOH H[SUHVVLRQ $SUqV DYRLUGpFODUpGHVSRLQWHXUVRQOHXUDOORXHGHO¶HVSDFHPpPRLUHDYHFOHVLQVWUXFWLRQV JEBUB DVGGU$PNQMFY NBMMPD TJ[FPG DVGGU$PNQMFY /9 #"5$)  PEBUB DVGGU$PNQMFY NBMMPD TJ[FPG DVGGU$PNQMFY /9 #"5$)  DYHF • /9WDLOOHGHODWUDQVIRUPpH • #"5$)QRPEUHGHWUDQVIRUPpHVjH[pFXWHUVLPXOWDQpPHQW 8QH IRLV OD PpPRLUH UpVHUYpH VXU O¶K{WH RQ SHXW LQLWLDOLVHU OHV  GRQQpHV RSpUDQGHV HW OHV  YDULDEOHV UpVXOWDW pJDOHPHQW DSSHOpH YDOHXUV GH VRUWLH  GDQV XQH ERXFOHGHWRXUV /HW\SHDVGGU$PNQMFY>@HVWXQHVWUXFWXUHGHGHX[SDUDPqWUHV • YSDUWLHUpHOOHGHODYDULDEOHGHFHW\SH • ZSDUWLHLPDJLQDLUHGHODYDULDEOHGHFHW\SH 2QLQLWLDOLVHOHVGRQQpHVG¶HQWUpHDYHFGHVYDOHXUVUpHOOHVHWHQWLqUHVSRXUDYRLU XQ FDOFXO IDFLOHPHQW YpULILDEOH j OD PDLQ 2Q LQLWLDOLVH GRQF FHV GRQQpHV GH PDQLqUH DUELWUDLUHj SDUH[HPSOH IRLVOHXULQGLFHGHWDEOHDXDYHFOHVLQVWUXFWLRQV JEBUBY J 1BSUJFSÏFMMF  JEBUBZ J 1BSUJFJNBHJOBJSF  2QLQLWLDOLVHOHVGRQQpHVGHVRUWLHjGHPDQLqUHVLPLODLUH $YDQW GH SRXYRLU WUDQVIpUHU VXU OD FDUWH JUDSKLTXH OHV GRQQpHV LQLWLDOLVpHV RQ UpVHUYHGHODPpPRLUHSRXUOHSRLQWHXU*38EFW1USJUDFHjO¶LQVWUXFWLRQ DVEB.BMMPD WPJE EFW1US TJ[FPG DVGGU$PNQMFY /9 #"5$)  2QWUDQVIqUHHQVXLWHOHVGRQQpHVSRLQWpHVSDUJEBUBGHO¶K{WHYHUVOHSURFHVVHXU JUDSKLTXH *38  3RXU FHOD RQ XWLOLVH OD IRQFWLRQ GH WUDQVIHUW KDELWXHOOH DVEB.FNDQZ YRLU†,, GDQVO¶LQVWUXFWLRQ DVEB.FNDQZ EFW1US  JEBUB  TJ[FPG DVGGU$PNQMFY /9 #"5$)  DVEB.FNDQZ)PTU5P%FWJDF 

 

8QH IRLV OHV GRQQpHV VWRFNpHV VXU OH SURFHVVHXU JUDSKLTXH RQ SHXW H[pFXWHU OD WUDQVIRUPpHGH )RXULHU SURSUHPHQWGLWH3RXUFHODRQGRLWFRQILJXUHUODWUDQVIRUPpH j O¶DLGHGHODIRQFWLRQDVGGU1MBOEGDQVO¶LQVWUXFWLRQ DVGGU1MBOE QMBO /9 $6''5@$$ #"5$)  DYHF • QMBO YDULDEOH GpFODUpH FRPPH XQ W\SH SUpGpILQL DVGGU)BOEMF /H W\SH SUpGpILQLDVGGU)BOEMFHVWEDVpVXUOHW\SHVOTJHOFEJOU&¶HVWXQW\SHXWLOLVpSRXU VWRFNHUHWDFFpGHUjGHVSODQV&8))7 • QMBODGUHVVHGXSODQGHFRQILJXUDWLRQ • /9WDLOOHGHOD))7 • #"5$)QRPEUHGHWUDQVIRUPpHVjH[pFXWHUVLPXOWDQpPHQW • $6''5@$$  FRQVWDQWH GH W\SH DVGGU5ZQF GpILQLVVDQW OH W\SH GH GRQQpHV PDQLSXOpHVSDUODWUDQVIRUPpH$6''5@$$HVWXQHFRQVWDQWHSHUPHWWDQWGHFRQILJXUHU XQH))7HQQRPEUHVIORWWDQWVVLPSOHSUpFLVLRQDYHFGRQQpHVRSpUDQGHVFRPSOH[HVHW YDULDEOHVUpVXOWDWFRPSOH[HV FRPSOH[WRFRPSOH[  8QH IRLV OH SODQ GH WUDQVIRUPpH FRQILJXUp SDU OD IRQFWLRQ DVGGU1MBOE  LO QH UHVWHSOXVTX¶jH[pFXWHUOD))7JUDFHjO¶LQVWUXFWLRQ DVGGU&YFD$$ QMBO EFW1US EFW1US $6''5@'038"3%  DYHF • EFWQUSSRLQWHXU*38VXUOHVGRQQpHVjWUDLWHU&HWWHIRQFWLRQH[pFXWHXQH))7 ©VXUSODFHª LQSODFH F HVWjGLUHTXHOHSRLQWHXUG¶HQWUpHHVWOHPrPHTXHFHOXLGH UpVXOWDW • $6''5@'038"3%  GLUHFWLRQ GH OD WUDQVIRUPpH GLUHFWH RX LQYHUVH  GDQV QRWUH H[HPSOH RQ FKRLVLW YRORQWDLUHPHQW XQH WUDQVIRUPpH GLUHFWH SRXU VLPSOLILHU OH UDLVRQQHPHQW>@ 8QHIRLVTXHODWUDQVIRUPpHHVWH[HFXWpHRQUHQYRLHOHUpVXOWDWDX&383RXUFHOD RQXWLOLVHODIRQFWLRQGHWUDQVIHUWKDELWXHOOHDVEB.FNDQZ YRLU†,, GDQVO¶LQVWUXFWLRQ DVEB.FNDQZ PEBUB  EFW1US  TJ[FPG DVGGU$PNQMFY  /9 #"5$)  DVEB.FNDQZ%FWJDF5P)PTU  8QH IRLV OH UpVXOWDW GX FDOFXO UHQYR\p j O¶K{WH VL RQ QH VRXKDLWH SDV H[pFXWHU G¶DXWUHV WUDQVIRUPpHV XWLOLVDQW OH PrPH SODQ RQ GRLW GpWUXLUH OH SODQ SRXU pYLWHU GH JDVSLOOHUODPpPRLUH*383RXUGpWUXLUHOHSODQLOH[LVWHODIRQFWLRQDVGGU%FTUSPZTXL OLEqUH OHV UHVVRXUFHV *38 DVVRFLpHV j XQ SODQ &8))7 2Q XWLOLVH FHWWH IRQFWLRQ GH OD PDQLqUHVXLYDQWH DVGGU%FTUSPZ QMBO  2QGRLWDXVVLOLEpUHUO¶HVSDFHPpPRLUH*38DYHFO¶LQVWUXFWLRQ DVEB'SFF EFW1US  2QOLEqUHpJDOHPHQWO¶HVSDFHPpPRLUHXWLOLVpSDUOHVGRQQpHVG¶HQWUpHHWGHVRUWLH VXUO¶K{WHDYHFODIRQFWLRQ&KDELWXHOOHGSFF  

 

,9$SSOLFDWLRQGHODELEOLRWKqTXH&8))7DXWUDLWHPHQWGXVLJQDO 'DQV FHWWH SDUWLH QRXV pWXGLHURQV XQ SURJUDPPH GH WUDQVIRUPpH GH )RXULHU GLUHFWHDSSOLTXpHjGHV GRQQpHVFRPSOH[HVGRXEOHSUpFLVLRQDYHFFRPPXQLFDWLRQDYHF 0$7/$%YLDXQHIRQFWLRQ0(;1RXVQ¶pWXGLHURQVTXHGHVWUDQVIRUPpHVGHQRPEUHV GRXEOHSUpFLVLRQFDUF¶HVWOHW\SHPDQLSXOpSDU0$7/$%SDUGpIDXW 3RXUOHSURJUDPPHSULQFLSDORQXWLOLVHGRQFOHQRPNFY'VODUJPOjODSODFHGH NBJOFRPPHFHODDGpMjpWpGpFULWSUpFpGHPPHQWGDQVODSDUWLH&8'$GHFHPpPRLUH $YDQW GH UHFHYRLU OHV GRQQpHV YHQDQW GH 0$7/$% RQ GpFODUH GHX[ SRLQWHXUV K{WHFRQWHQDQWODSDUWLHUpHOOHHWLPDJLQDLUHGHVGRQQpHVjWUDLWHU EPVCMF QS"  QJ" DYHF QS"SRLQWHXUVXUODSDUWLHUpHOOHGHVGRQQpHVRSpUDQGHV QJ"SRLQWHXUVXUODSDUWLHLPDJLQDLUHGHVGRQQpHVRSpUDQGHV 2Q GpFODUH pJDOHPHQW XQ SRLQWHXU *38 EFW1US TXL FRQWLHQGUD OHV GRQQpHV G¶HQWUpHVRUWLHGHW\SHDVGGU%PVCMF$PNQMFY 0$7/$% VWRFNH HW WUDLWH OHV PDWULFHV SDU FRORQQH GH SOXV OD ELEOLRWKqTXH &8))7 VWRFNH HW WUDLWH OHV PDWULFHV pJDOHPHQW SDU FRORQQH GDQV XQ WDEOHDX  F¶HVW SRXUTXRLXQHWUDQVIRUPpHGH)RXULHUSDUFRORQQHVHUDH[pFXWpH2QLQLWLDOLVHUDGRQF • ODWDLOOHGHODWUDQVIRUPpHDXQRPEUHGHOLJQHVUHoXHVGH0$7/$% • OHQRPEUHGHWUDQVIRUPpHV jWUDLWHUVLPXOWDQpPHQW DXQRPEUHGHFRORQQHVGH ODPDWULFH 3RXU DFFpGHU DX[ GRQQpHV WUDQVPLVHV SDU 0$7/$% RQ XWLOLVH OHV IRQFWLRQV KDELWXHOOHVNY(FU. NY(FU/ NY(FU1S NY(FU1J VLPLODLUHjNY(FU1S  $YDQWGHUDVVHPEOHUODSDUWLHUpHOOHHWODSDUWLHLPDJLQDLUHGHFKDTXHGRQQpHHQ XQHGRQQpHXQLTXHGHW\SHDVGGU%PVCMF$PNQMFYRQGRLWDOORXHUGHODPpPRLUHSRXUOHV GRQQpHVG¶HQWUpH I@" HWGHVRUWLH I@# ,OH[LVWHXQHIRQFWLRQLQWLWXOpHNY.BMMPDTXL • DOORXHG\QDPLTXHPHQWGHODPpPRLUHHQXWLOLVDQWOHJHVWLRQQDLUHGHPpPRLUHGH 0$7/$% • UHQYRLHXQSRLQWHXUVXUOHGpEXWGHOD]RQHGHPpPRLUHDOORXpH • OLEqUHODPpPRLUHDXWRPDWLTXHPHQWORUVTXHOHFRQWU{OHUHYLHQWj0$7/$% 2QSHXWDSSHOHUFHWWHIRQFWLRQGHODPDQLqUHVXLYDQWH I@"  DVGGU%PVCMF$PNQMFY NY.BMMPD TJ[FPG DVGGU%PVCMF$PNQMFY   OY  CBUDI  I@#  DVGGU%PVCMF$PNQMFY NY.BMMPD TJ[FPG DVGGU%PVCMF$PNQMFY   OY  CBUDI  8QH IRLV OD PpPRLUH DOORXpH VXU O¶K{WH RQ UDVVHPEOH OD SDUWLH LPDJLQDLUH HW OD SDUWLHUpHOOHGHFKDTXHGRQQpHYHQDQWGH0$7/$%HQOHVFRQYHUWLVVDQWHQXQHYDULDEOH GH W\SH DVGGU%PVCMF$PNQMFY &HWWH IRQFWLRQ GH FRQYHUVLRQ Q¶H[LVWH SDV GDQV OHV IRQFWLRQ&8))7GLVSRQLEOHV3DUFRQVpTXHQWRQFUpHXQHIRQFWLRQLQWLWXOpHQBDL@EDED FKDUJpHGHFRQYHUWLUHQXQQRPEUHFRPSOH[HOHVGHX[QRPEUHVVpSDUpVUHSUpVHQWDQWOHV SDUWLHVUpHOOHVHWLPDJLQDLUHVGHFHQRPEUH 'DQV FHWWH IRQFWLRQ RQ IDLW XQH ERXFOH FRPSRUWDQW DXWDQW GH WRXUV TXH GH YDULDEOHV GH W\SH DVGGU%PVCMF$PNQMFYjREWHQLU/HW\SHDVGGU%PVCMF$PNQMFYpWDQW XQHVWUXFWXUHGHGHX[SDUDPqWUHVLOVXIILWGHUHPSOLUFKDTXHFKDPSGHODVWUXFWXUHSDUOD SDUWLHUpHOOHHWLPDJLQDLUHGHFKDTXHGRQQpHjFKDTXHWRXU/DGpILQLWLRQGHODIRQFWLRQ QBDL@EDEDHVWGRQFODVXLYDQWH

 

WPJE QBDL@EDED DVGGU%PVCMF$PNQMFY  PVUQVU  EPVCMF JOQVU@SF  EPVCMF JOQVU@JN JOU/UPU  \ JOUO GPS OO/UPUO   \  PVUQVUYJOQVU@SF  PVUQVUZJOQVU@JN  ^ ^ 2QIDLWDSSHOjFHWWHIRQFWLRQSDUO¶LQVWUXFWLRQVXLYDQWH QBDL@EDED I@" QS" QJ" OY CBUDI  DYHF • I@"SRLQWHXUVXUOHVGRQQpHV&38FRQYHUWLHVHQW\SHDVGGU%PVCMF$PNQMFY • QS"SRLQWHXUVXUODSDUWLHUpHOOHGHVGRQQpHVYHQDQWGH0$7/$% • QJ"SRLQWHXUVXUODSDUWLHLPDJLQDLUHGHVGRQQpHVYHQDQWGH0$7/$% • OY CBUDIQRPEUHGHYDULDEOHVGHW\SHDVGGU%PVCMF$PNQMFYjREWHQLU 8QHIRLVOHVGRQQpHVFRQYHUWLHVHQW\SHVDVGGU%PVCMF$PNQMFYRQOHVWUDQVIqUH DYHF OD IRQFWLRQ DVEB.FNDQZ DSUqV DYRLU DOORXp VXIILVDPPHQW GH PpPRLUH DYHF OD IRQFWLRQDVEB.BMMPD 2QFRQILJXUHHQVXLWHOHVSDUDPqWUHVGHODWUDQVIRUPpHSDUO¶LQVWUXFWLRQ DVGGU1MBOE QMBO OY $6''5@;; CBUDI  &HWWH LQVWUXFWLRQ FRQILJXUH CBUDI WUDQVIRUPpHV GH WDLOOH OY GRQW OHV W\SHV GHV pOpPHQWVRSpUDQGHV pOpPHQWVG¶HQWUpH HWUpVXOWDW pOpPHQWVGHVRUWLH VRQWGpWHUPLQpV SDU$6''5@;;$6''5@;;HVWXQHFRQVWDQWHSUpGpILQLHTXLVSpFLILHTXH • OHVGRQQpHVRSpUDQGHVVHURQWGHVQRPEUHVFRPSOH[HVGRXEOHSUpFLVLRQ • OHVGRQQpHVUpVXOWDWVHURQWGHVQRPEUHVFRPSOH[HVGRXEOHSUpFLVLRQ $SUqV DYRLU FRQILJXUp OD WUDQVIRUPpH LO VXIILW GH O¶H[pFXWHU jO¶DLGHGHOD IRQFWLRQ DVGGU&YFD;; QMBO EFW1US EFW1US $6''5@'038"3%  &HWWH IRQFWLRQ H[pFXWH XQH ))7 ©VXU SODFHª LQSODFH  GRQW OHV YDULDEOHV G¶HQWUpH RSpUDQGHV HWGHVRUWLH UpVXOWDW VRQWGHVQRPEUHVFRPSOH[HVGRXEOHSUpFLVLRQ >@ /D FRQVWDQWH $6''5@'038"3% SHUPHW GH SUpFLVHU TXH OD IRQFWLRQ H[pFXWH XQH WUDQVIRUPpHGH)RXULHUGLUHFWH/DYDULDEOHQMBOGRQQHDFFqVjODFRQILJXUDWLRQVSpFLILpH SDUDVGGU1MBOE /D OHWWUH ; XWLOLVpH GDQV OD GpQRPLQDWLRQ GH $6''5@;; HW GH DVGGU&YFD;; SHUPHW GH VLJQDOHU TXH OHV GRQQpHV PDQLSXOpHV VRQW GHV QRPEUHV FRPSOH[HV GRXEOH SUpFLVLRQ 8QHIRLVODWUDQVIRUPpHH[pFXWpHLOQHUHVWHSOXVTX¶jWUDQVIpUHUOHUpVXOWDWVXUOH &38FRQYHUWLUFKDTXHQRPEUHGHW\SHDVGGU%PVCMF$PNQMFYHQGHX[QRPEUHV • O¶XQUHSUpVHQWDQWODSDUWLHUpHOOH • O¶DXWUHUHSUpVHQWDQWODSDUWLHLPDJLQDLUH SRXUTXHOHQRPEUHFRPSOH[HSXLVVHrWUHUHQYR\pVj0$7/$% 2QWUDQVIqUHOHUpVXOWDWYHUVOH&38DYHFO¶LQVWUXFWLRQKDELWXHOOH

 

DVEB.FNDQZ I@#  EFW1US  TJ[FPG DVGGU%PVCMF$PNQMFY CBUDI OY  DVEB.FNDQZ%FWJDF5P)PTU  $YDQW GH FRQYHUWLU FKDTXH GRQQpH FRPSOH[H HQ GHX[ YDOHXUV VpSDUpHV RQ LQLWLDOLVHOHSRLQWHXUQMIT<>VXUOD]RQHPpPRLUHTXLUHFHYUDODPDWULFHUpVXOWDW3RXU FHODRQXWLOLVHO¶LQVWUXFWLRQ QMIT<>NY$SFBUF%PVCMF.BUSJY OY CBUDI NY$0.1-&9  &HWWH LQVWUXFWLRQ FUpH GRQF XQ WDEOHDX SUpYX SRXU FRQWHQLU XQH PDWULFH GH OY OLJQHV HW CBUDI FRORQQHV NY$0.1-&9 VHUW j VLJQDOHU TXH OHV GRQQpHV j PHWWUH GDQV OH WDEOHDXNY"SSBZFRPSRUWHQWXQHSDUWLHLPDJLQDLUH 0DLQWHQDQW TXH OH SRLQWHXU QMIT<>HVWLQLWLDOLVpRQSHXWO¶XWLOLVHUGLUHFWHPHQW SRXUVWRFNHUFKDTXHSDUWLHUpHOOHHWFKDTXHSDUWLHLPDJLQDLUH3RXUVpSDUHUSDUWLHUpHOOHHW SDUWLHLPDJLQDLUHGHFKDTXHQRPEUHLOQ¶H[LVWHSDVGHIRQFWLRQ&8))7SUpGpILQLH3DU FRQVpTXHQWRQFUpHODIRQFWLRQVXLYDQWHWUqVVLPLODLUHjODIRQFWLRQQBDL@EDED FUppH SUpFpGHPPHQW WPJE VOQBDL@EDED DVGGU%PVCMF$PNQMFY JOQVU  EPVCMF PVUQVU@SF  EPVCMF PVUQVU@JN JOU/UPU  \ JOUO GPS OO/UPUO   \  PVUQVU@SFJOQVUY  PVUQVU@JNJOQVUZ  ^ ^ 2QIDLWDSSHOjFHWWHIRQFWLRQJUkFHjO¶LQVWUXFWLRQ VOQBDL@EDED I@# NY(FU1S QMIT<> NY(FU1J QMIT<> OY CBUDI  DYHF • NY(FU1S QMIT<>  DGUHVVH GH OD SDUWLH UpHOOH GHV GRQQpHV j UHQYR\HU j 0$7/$% • NY(FU1J QMIT<> DGUHVVHGHODSDUWLHLPDJLQDLUHGHVGRQQpHVjUHQYR\HUj 0$7/$% 8QH IRLV OHV GRQQpHV UHQYR\pHV j 0$7/$% SDU O¶LQWHUPpGLDLUH GH QMIT LO QH UHVWH SOXV TX¶j OLEpUHU OHV UHVVRXUFHV DOORXpHV HQ XWLOLVDQW O¶LQVWUXFWLRQ DVGGU%FTUSPZ QMBO  3XLVRQOLEqUHODPpPRLUH*38HW&38DYHFOHVIRQFWLRQVDVEB'SFFHWNY'SFF

 

,9$QDO\VHGHVUpVXOWDWVSRXUO¶$3,&8))7 &RPPHSRXUO¶$3,&8%/$6FHQ¶HVWSDVO¶XWLOLVDWHXUTXLIL[HODWDLOOHGHVEORFV HWOHQRPEUHGHUHJLVWUHV&¶HVWO $3,&8))7TXLIL[HOHQRPEUHGHWkFKHVSDUEORFHWOH QRPEUH GH UHJLVWUHV SDU WkFKH DX PRPHQW GH OD FRPSLODWLRQ & HVW SRXUTXRL GDQV XQ SURJUDPPH&8))7O LQVWUXFWLRQPD[UUHJFRXQWQ DDXFXQHLQIOXHQFHVXUOHVUpVXOWDWVHW ODWDLOOHGHVEORFVQ¶HVWSDVFRQILJXUDEOHSDUO¶XWLOLVDWHXU /HFRPSLODWHXUQYFF YRLU†,, GpWHUPLQHFHVSDUDPqWUHVjSDUWLUGHODWDLOOHGH ODPDWULFHUpVXOWDWXQLTXHPHQW /D WUDQVIRUPpH GH IRXULHU D pWp UpDOLVpH VXU QRPEUHV IORWWDQWV GRXEOH SUpFLVLRQ DYHF SDUWLH LPDJLQDLUH DYHF O RSWLRQ DUFK VPB GDQV OD OLJQH GH FRPPDQGH GX FRPSLODWHXU YRLU†,,  /DFRPPXQLFDWLRQGHVGRQQpHVHQWUH0$7/$%HWOHSURJUDPPH&8'$VHIDLW YLD XQH IRQFWLRQ 0(; / H[DFWLWXGH GHV GRQQpHV D pWp YpULILpH SDU 0$7/$% DYHF OD PrPHPpWKRGHTXHSRXUOHSURJUDPPH&8'$ YRLU†,,  /HV WHVWV TXH FH VRLW SDU 0$7/$% RX SDU OH SURILOHU  RQW WRXV pWp UpDOLVpV HQ PRGH5HOHDVH/HVHVVDLVHQPRGH'HEXJQHVRQWSDVPHQWLRQQpV &RPPH SRXU &8'$ OHV UpVXOWDWV TXH FH VRLW SRXU 0$7/$% VHXO RX SRXU OD IRQFWLRQ0(;&8'$&FRPELQpHj0$7/$% RQWpWpPR\HQQpHVVXUYDOHXUVDYHF XQH H[pFXWLRQ SUpDODEOH QRQ SULVH HQ FRPSWH FDU GXH DX[ LQFHUWLWXGHV GHV PHVXUHV GH WHPSVORUVGHODPLVHHQSODFHGHVUHVVRXUFHVGHODFDUWHJUDSKLTXH &RPPH SRXU &8%/$6 HW FRQWUDLUHPHQW DX SURJUDPPH &8'$ XQ SURJUDPPH XWLOLVDQWO¶$3,&8))7QHQpFHVVLWHSDVG¶DYRLUGHVWDLOOHVGHPDWULFHUpVXOWDWPXOWLSOHVGH OD WDLOOH GHV EORFV /D WDLOOH GH WUDQVIRUPpH SHXW GRQF rWUH WUqV YDULDEOH &RPPH SRXU &8%/$6OHFRPSLODWHXUFKRLVLWOXLPrPHOHVSDUDPqWUHVWHOVTXH • OHQRPEUHGHUHJLVWUHVjXWLOLVHUSDUWkFKH • ODWDLOOHGHVEORFV • OHQRPEUHGHEORFVUpVLGHQWV ,9&DOFXOGXQRPEUHGH)/236 /D IDoRQ GH FDOFXOHU OH QRPEUH GH )/236 GpSHQG GH O¶DOJRULWKPH GH FDOFXO XWLOLVp • 0$7/$%XWLOLVHO¶DOJRULWKPHGHOD))7: • /¶$3,&8))7XWLOLVHXQDOJRULWKPHEDVpVXUOD))7:PDLVHOOHXWLOLVHVXUWRXW O¶DOJRULWKPHGH&RROH\7XNH\

,9&DVGH0$7/$% /D))7:HVWO¶LPSOpPHQWDWLRQODSOXVUDSLGHGHO¶DOJRULWKPHGHOD))7(OOHSHXW FDOFXOHU GHV WUDQVIRUPpHV GH Q¶LPSRUWH TXHOOH WDLOOH VXU GRQQpHV UpHOOHV RX FRPSOH[HV /¶HIILFDFLWp GH OD ))7: WLHQW GDQV OH IDLW TX¶HOOH XWLOLVH SOXVLHXUV DOJRULWKPHV HW HOOH FKRLVLW OH SOXV DGDSWp VHORQ OHV FLUFRQVWDQFHV 3RXU GpFRPSRVHUGHVWUDVQIRUPpHVGH WDLOOH • FRPSRVLWH PXOWLSOH G¶XQ QRPEUH SUHPLHU  HQ WUDQVIRUPpHV SOXV SHWLWHV OD ))7:FKRLVLWSDUPLSOXVLHXUVYDULDQWHVGHO¶DOJRULWKPHGH&RROH\7XNH\ • pJDOH j XQ QRPEUH SUHPLHU HOOH XWLOLVH VRLW O¶DOJRULWKPH GH 5DGHU VRLW O¶DOJRULWKPHGH%OXHVWHLQ

 

6RQ IRQFWLRQQHPHQW HVW RSWLPDO SRXU GHV WDEOHDX GH WDLOOHV PXOWLSOHV GH SHWLWV QRPEUHVSUHPLHUV RX XQHWDLOOHpJDOHjXQQRPEUHSUHPLHUpOHYppWDQWOHSLUH FDVPDLVH[pFXWDQWPDOJUpWRXW Q ORJQ RSpUDWLRQV

(WDQWGRQQpTXHO¶DOJRULWKPHOHSOXVGpIDYRUDEOHSDUYLHQWjH[pFXWHU Q ORJQ OH QRPEUHGH)/236UpDOLVpVSDUFKDTXHH[pFXWLRQGH0$7/$%VHXODGRQFpWpFDOFXOpGH EDWFK ∗ Q[ ∗ ORJ Q[ ODPDQLqUHVXLYDQWH )/236   WSVFDOFXO

,9&DVGHO¶$3,&8))7 /¶$3,&8))7>@XWLOLVHO¶DOJRULWKPHGH&RROH\7XNH\SRXUUpGXLUHOHQRPEUH G¶RSpUDWLRQV QpFHVVDLUHV HW SRXU DLQVL RSWLPLVHU OD SHUIRUPDQFH VHORQ OD WDLOOH GH WUDQVIRUPpH &¶HVW SRXUTXRL OD SHUIRUPDQFH HVW OD PHLOOHXUH ORUVTXH OD WDLOOH GH OD WUDQVIRUPpHSHXWrWUHIDFWRULVpHHQ D ∗E ∗F ∗  G DYHFDEFHWG•3RXUOHVDXWUHV WDLOOHVOHVWUDQVIRUPpHVjXQHVHXOHGLPHQVLRQVRQWSULVHVHQFKDUJHSDUO¶DOJRULWKPHGH %OXHVWHLQOXLPrPHFRQVWUXLWjSDUWLUGHO¶DOJRULWKPHGH&RROH\7XNH\ /DSUpFLVLRQG¶XQHLPSOpPHQWDWLRQ%OXHVWHLQGLPLQXHORUVTXHODWDLOOHDXJPHQWH VXUWRXW HQ PRGH VLPSOH SUpFLVLRQ HQ UDLVRQ GH O¶DFFXPXODWLRQ G¶LPSUpFLVLRQV GHV RSpUDWLRQVHQYLUJXOHIORWWDQWH &HSHQGDQWGDQVOHFDGUHGHFHPpPRLUHOHV))7UpDOLVpHVD\DQWWRXWHVGHVWDLOOHV PXOWLSOH GH  OD PpWKRGH FKRLVLH SRXU OH FDOFXO GHV )/236 VHUD FHOOH EDVpH VXU O¶DOJRULWKPHGH&RROH\7XNH\SRXUWRXVOHVWHVWV /HQRPEUHGH)/236UpDOLVpVSDUFKDTXHH[pFXWLRQGHODIRQFWLRQ0(;&8))7 EDWFK ∗ Q[ ∗ ORJ Q[ &DGRQFpWpFDOFXOpGHODPDQLqUHVXLYDQWH )/236   WSVFDOFXO ,9,QIOXHQFHGHODWDLOOHG¶XQHWUDQVIRUPpHVXUODSHUIRUPDQFH $YHFXQQRPEUHGHWUDQVIRUPpHV UpGXLWjXQHVHXOHWUDQVIRUPpHRQREWLHQWOHV WHPSVGHFDOFXOVXLYDQWVUHSUpVHQWpVVXUOD)LJXUH%LHQTXHFHQHVRLWSDVYLVLEOHVXU OD)LJXUHOHVFRXUEHVVHFURLVHQWSRXUXQHWDLOOHGHWUDQVIRUPpHGHHWXQWHPSV G¶H[pFXWLRQGHPV&HFURLVHPHQWHVWUHSUpVHQWpVXUOD)LJXUH

 









 0(;&8))7&  0$7/$% 

 7HPSVG H[pFXWLRQ PV 



   3XLVVVDQFHVGHGHODWDLOOHGHWUDQVIRUPpH  )LJXUH&RPSDUDLVRQGHVWHPSVG¶H[pFXWLRQGHODIRQFWLRQ0(;&8))7&HWGH0$7/$%VHXO $WWHQWLRQ SRXU XQH WDLOOH GH WUDQVIRUPpH GH  )LJXUH ODPpPRLUHHVW SDUIRLV LQVXIILVDQWH /HV WHPSV REWHQXV DYHF FHWWH WDLOOH GH WUDQVIRUPpH QH VRQW GRQF PHQWLRQQpTX¶jWLWUHLQGLFDWLI/DPpPRLUHHVWWRXMRXUVLQVXIILVDQWHSRXUXQQRPEUHGH WUDQVIRUPpHVVXSpULHXUj 6XU OD )LJXUH  RQ UHPDUTXH TXH WDQW TXH OD WDLOOH GH WUDQVIRUPpH UHVWH VXSpULHXUH RX pJDOH j  OD IRQFWLRQ 0(;&8))7& HVW SOXV SHUIRUPDQWH TXH 0$7/$% 2Q UHPDUTXH TXH SOXV OHV WDLOOHV GH WUDQVIRUPpH VRQW JUDQGHV SOXV OD IRQFWLRQ 0(;&8))7&HVWSHUIRUPDQWHSDUUDSSRUWj0$7/$%VHXO 2QSHXWGRQFFRQVLGpUHUTXH • SRXUGHVSHWLWHVWDLOOHVGH))7 WDLOOH” LOHVWSUpIpUDEOHG¶XWLOLVHU0$7/$% VHXO • SRXU GHV JUDQGHV WDLOOHV GH ))7 WDLOOH !   LO HVW SUpIpUDEOH G¶XWLOLVHU OD IRQFWLRQ0(;&8))7&



5,5

5

4,5

4

3,5

3 MEX-CUFFT-C 2,5 MATLAB

2

Temps d'exécution (ms) d'exécution Temps 1,5

1

0,5

0 9 10 11 12 13 14 15 16 17 Puissance de 2 de la taille de transformée

Figure 47 : Comparaison des temps d’exécution de la fonction MEX-CUFFT-C et de MATLAB seul IV.4.3 Influence du nombre de transformées de taille fixe sur la performance Pour l’exécution d’un nombre variable de transformées de taille fixe (215), on obtient les temps de calcul représentés sur la Figure 48. Attention, pour 256 transformées de taille égale à 215, la mémoire est parfois insuffisante. Les temps obtenus avec cette taille de transformée ne sont donc mentionné qu’à titre indicatif. La mémoire est toujours insuffisante pour un nombre de transformées supérieur à 256. On remarque sur la Figure 48 que le nombre de transformées n’a que peu d’influence sur la performance. A partir d’une taille de transformée de 215, la fonction MEX-CUFFT-C est systématiquement plus performante que MATLAB seul quelque soit le nombre de transformées à exécuter (dans les limites de la mémoire). On remarque que la performance de n transformées exécutées simultanément reste globalement peu différente de la performance de n transformées exécutée séquentiellement. On remarque que les temps d’exécution double lorsque le nombre de transformées double.

111 



 

 

 0(;&8))7&  0$7/$% 

 7HPSVG H[pFXWLRQ PV  

           

1RPEUHGHWUDQVIRUPpHVGHWDLOOH  )LJXUH&RPSDUDLVRQGHVWHPSVG¶H[pFXWLRQGHODIRQFWLRQ0(;&8))7&HWGH0$7/$%VHORQOHQRPEUHGH WUDQVIRUPpHVGHWDLOOHIL[H  H[pFXWpHVVLPXOWDQpPHQW ,93URFpGXUHGHFKRL[GHVSDUDPqWUHVSDUO¶$3,&8))7 /DFRQILJXUDWLRQDGRSWpH QRPEUHGHUHJLVWUHVWDLOOHGHVEORFVHWWDLOOHGHJULOOH  SDU O¶$3, &8))7 GpSHQG GX W\SH GH WDLOOH GH WUDQVIRUPpH WDLOOHpJDOHjXQQRPEUH SUHPLHURXWDLOOHPXOWLSOHG¶XQQRPEUHHWOHTXHO 3DUFRQVpTXHQWOHVWHVWVD\DQWWRXVpWp UpDOLVpV DYHF GHV WDLOOHV GH WUDQVIRUPpHV PXOWLSOHV GH  OD FRQILJXUDWLRQ DGRSWpH SDU O¶$3,&8))7DpWpODPrPHGDQVWRXVOHVFDVF HVWjGLUH • XQHWDLOOHGHEORFGHOLJQHVHWXQHFRORQQH • UHJLVWUHVSDUWkFKH UpVXOWDQWDLQVLHQ • EORFVUpVLGHQWVSDUPXOWLSURFHVVHXU • XQWDX[G¶RFFXSDWLRQGH &RPPHSRXU&8%/$6 • OHQRPEUHGHEORFVUpVLGHQWVTXHOHJHVWLRQQDLUHGHWkFKHVDWWULEXHSDU PXOWLSURFHVVHXU • OHWDX[G¶RFFXSDWLRQ VRQWGpGXFWLEOHVGHVPrPHVFRQGLWLRQVTXHSUpFpGHPPHQW YRLU†,,  /H QRPEUH GH EORFV UpVLGHQWV HVW IL[p j  SDU OH JHVWLRQQDLUH GH WkFKHV FH TXL SHUPHWGHVDWLVIDLUH • ODFRQGLWLRQUHJLVWUHVWkFKH WkFKHVEORF EORFV   • ODFRQGLWLRQWkFKHVEORF EORFVUpVLGHQWV WkFKHV  • ODFRQGLWLRQNRXWLOLVp NRFDUG¶DSUqVOHSURILOHUOD&8))7Q¶XWLOLVH MDPDLVODPpPRLUHSDUWDJpH • ODFRQGLWLRQEORFVUpVLGHQWV EORFVUpVLGHQWVPD[LPXP &HWWH FRQILJXUDWLRQ DGRSWpH SDU OH JHVWLRQQDLUH GH WkFKHV HQWUDvQH XQ WDX[ G¶RFFXSDWLRQGH 



113 

9 6\QWKqVHGHVUpVXOWDWV&8'$&8%/$6HW&8))7

'¶DSUqV O¶pWXGH G¶XQ SURJUDPPH 0(;&8'$& HW G¶XQ SURJUDPPH 0(; &8%/$6& RQ D FRQVWDWp GH IDoRQ FODLUH OD SHUIRUPDQFH VXSpULHXUHGH&8'$HW &8%/$6VXU0$7/$%XWLOLVpVHXOSRXUOHVPDWULFHVUpVXWDWGHJUDQGHWDLOOH VXSpULHXUH RXpJDOHj SRXU&8'$HWVXSpULHXUHRXpJDOHj SRXU&8%/$6 /D SURJUDPPDWLRQ&8'$HVWSOXVVRXSOHTXHODSURJUDPPDWLRQ&8%/$6GDQVODPHVXUH RRQSHXWFRQWU{OHUODWDLOOHGHVEORFV &HSHQGDQWODWDLOOHGHPDWULFHUpVXOWDWGRLWrWUHPXOWLSOHGHODWDLOOHGHEORFFHTXL UHVWUHLQWOHVSRVVLELOLWpVDORUVTXHODSURJUDPPDWLRQ&8%/$6DFFHSWHQ¶LPSRUWHTXHOOH WDLOOHGHPDWULFHUpVXOWDWSXLVTXHOHVSDUDPqWUHVVRQWHQVXLWHFKRLVLVSDUOHFRPSLODWHXUHQ IRQFWLRQ GH FHWWH WDLOOH GH PDWULFH UpVXOWDW 'H SOXV OD SHUIRUPDQFH GH &8%/$6 HVW QHWWHPHQWPHLOOHXUHTXHODSHUIRUPDQFHGH&8'$ '¶DXWUH SDUW RQ SRXUUDLW VH GHPDQGHU j TXHO QLYHDX VH VLWXH OD GLIIpUHQFH GH SHUIRUPDQFHHQWUH&8'$HW&8%/$6/DGLIIpUHQFHGHSHUIRUPDQFHODSOXVPDUTXpHVH VLWXHWHOOHDXQLYHDX • WUDQVIHUW0$7/$%SURJUDPPH" • WUDQVIHUW&38*38" • NHUQHO" 3RXU OH VDYRLU LO VXIILW GH FRPSDUHU OH WHPSV G¶H[pFXWLRQ WRWDO GH OD IRQFWLRQ 0(;&8'$& DYHF OHV WHPSV GH WUDQVIHUW RX G¶H[pFXWLRQ GH NHUQHO DIILFKpV SDU OH SURILOHU2QIDLWOHPrPHUDLVRQQHPHQWSRXUODIRQFWLRQ0(;&8%/$6&HWRQREWLHQW OH7DEOHDXHWOH7DEOHDXVXLYDQWV 6XUFHVWDEOHDX[OHVWHPSVGHWUDQVIHUW&38ĺ*38VRQWGLYLVpVHQGHX[SDUWLHV SDU OH VLJQH ©ª /H HUHWOHqPH QRPEUH UHSUpVHQWHQW UHVSHFWLYHPHQW OHV WHPSV GH WUDQVIHUWGHODqUHPDWULFHRSpUDQGHHWGHODqPHPDWULFHRSpUDQGH$QRWHUTXHOHWHPSV GHWUDQVIHUWGHODqUHPDWULFHHVWV\VWpPDWLTXHPHQWSOXVORQJTXHOHWHPSVGHWUDQVIHUWGH OD qPH PDWULFH &HWWH GLIIpUHQFH GH WHPSV HVW HQFRUH SOXV PDUTXpH SRXU OD IRQFWLRQ 0(;&8%/$6&TXHSRXUODIRQFWLRQ0(;&8'$& 7DEOHDX&RPSDUDLVRQGHVGXUpHVG¶H[pFXWLRQGHODIRQFWLRQ0(;&8'$&WRWDOHHWGHVGXUpHVG¶H[pFXWLRQGH FHUWDLQHVIRQFWLRQVSULVHVLVROpPHQW )RQFWLRQ0(;&8'$& 7DLOOHGHOD 7HPSV 7HPSVGH 7HPSVGH 7HPSVWRWDO PDWULFH .HUQHO G¶H[pFXWLRQ WUDQVIHUW&38ĺ WUDQVIHUW*38 NHUQHO UpVXOWDW VHXO PV PV  *38 PV  ĺ&38 PV  WUDQVIHUWV  PV                       7DEOHDX&RPSDUDLVRQGHVWHPSVG¶H[pFXWLRQDIILFKpVSDU0$7/$%HWDIILFKpVSDUOHSURILOHUSRXUODIRQFWLRQ 0(;&8%/$6& )RQFWLRQ0(;&8%/$6& 7DLOOHGHOD PDWULFH 7HPSV .HUQHO 7HPSVGH 7HPSVGH 7HPSVWRWDO UpVXOWDW G¶H[pFXWLRQ VHXO WUDQVIHUW&38 WUDQVIHUW*38 NHUQHOHW PV  PV  ĺ*38 PV  ĺ&38 PV  WUDQVIHUWV                      

 

4XDQGRQREVHUYHOHVWDEOHDX[FLGHVVXVRQUHPDUTXHTXHOHVWHPSVGHWUDQVIHUW VRQWWUqVSHXGLIIpUHQWVHQWUH&8'$HW&8%/$6 OHVWHPSVGHWUDQVIHUW&8%/$6VRQW PrPHVXSpULHXUVHQPR\HQQHjFHX[GH&8'$ '¶DXWUHSDUWOHWHPSVG¶H[pFXWLRQGX NHUQHO &8'$ QH GpSDVVH MDPDLV GH SOXV GH  PV OH WHPSV G¶H[pFXWLRQ GX NHUQHO &8%/$63DUFRQWUHOHVWHPSVWRWDX[G¶H[pFXWLRQ&8'$VRQWDSSUR[LPDWLYHPHQWGHX[ IRLVSOXVLPSRUWDQWTXHFHX[GH&8%/$6 3RXU O¶$3, &8))7 RQ D SX YRLU TX¶XQ SURJUDPPH GH ))7 XWLOLVDQW FHWWH ELEOLRWKqTXH HVW SOXV SHUIRUPDQW TX¶XQ SURJUDPPH 0$7/$% H[pFXWDQW OD PrPH IRQFWLRQjFRQGLWLRQG¶DYRLUXQHWDLOOHGHWUDQIRUPpHWUqVJUDQGH VXSpULHXUHj  $SUqVO¶pWXGHGH&8'$HWGH&8%/$6RQSHXWGpJDJHUSOXVLHXUVSRLQWV LPSRUWDQWV /HVIDFWHXUVGpWHUPLQDQWVGDQVOHVSHUIRUPDQFHV&8'$VRQW  /HVIDFWHXUVLQGLVSHQVDEOHVDXIRQFWLRQQHPHQWFRUUHFWG¶XQSURJUDPPH • /HQRPEUHGHWkFKHVSDUEORFGRLWrWUHXQPXOWLSOHGH QRPEUHGHWkFKHVSDU ZDUS  • /DWDLOOHGHFKDTXHGLPHQVLRQGHJULOOHGRLWrWUHPXOWLSOHGHVGLPHQVLRQVGHEORF UHVSHFWLYHV  /HVIDFWHXUVXWLOHVSRXUDPpOLRUHUOHVSHUIRUPDQFHV FKDTXHPXOWLSURFHVVHXUQHSHXWSDVWUDLWHU • XQHQVHPEOHGHEORFVUpVLGHQWV ƒ QpFHVVLWDQWSOXVGHUHJLVWUHVTXHOHVUHJLVWUHVTX¶LOSRVVqGH ƒ FRPSRUWDQWDXWRWDOSOXVGHWkFKHVUpVLGHQWHV ƒ QpFHVVLWDQWSOXVTXHOHVNRGHPpPRLUHSDUWDJpHTX¶LOSRVVqGH • SOXVGHEORFVUpVLGHQWVjODIRLV 'DQVOHFDVRXQHRXSOXVLHXUVGHFHVFRQGLWLRQVQHVHUDLWSDVYpULILpHVOH JHVWLRQQDLUHGHWkFKHVGXSURFHVVHXUJUDSKLTXHVHFKDUJHUDLWGHUpGXLUH DXWRPDWLTXHPHQWOHQRPEUHGHEORFVUpVLGHQWVMXVTX¶jFHTXHOHVFRQGLWLRQVFL GHVVXVVRLHQWUpXQLHV /HVGLIIpUHQFHVHQWUH&8%/$6HW&8'$VRQWOHVVXLYDQWHV • &8'$ HVW UHODWLYHPHQW IOH[LEOH DX QLYHDX GH VD SURJUDPPDWLRQ PDLV VHV IRQFWLRQVQHVRQWSDVRSWLPLVpHVSDUUDSSRUWj&8%/$6 • &8%/$6HVWSHXIOH[LEOHPDLVFRPSRUWHGHVIRQFWLRQVGHKDXWQLYHDXRSWLPLVpHV SRXU OHV FDOFXOV VXU PDWULFHV HW YHFWHXUV FH TXL OH UHQG SOXV SHUIRUPDQW TXH &8'$VXUFHW\SHGHFDOFXOV • 0DOJUp VRQ DVSHFW SOXV pORLJQp GH OD SURJUDPPDWLRQ & TXH QH O¶HVW &8'$ &8%/$6HVWQpDQPRLQVSOXVUDSLGHjSUHQGUHHQPDLQ /¶LGpDOVHUDLWG¶XWLOLVHU • &8%/$6SRXUWRXVOHVFDOFXOVVXUPDWULFHVRXVXUYHFWHXUV • &8'$VXUGHVFDOFXOVQRQJpUDEOHSDU&8%/$6 • 0$7/$%VHXOSRXUOHVFDOFXOVVXUPDWULFHUpVXOWDWGHSHWLWHWDLOOH    'HSOXVFHPpPRLUHD\DQWpWpUpDOLVpVXUXQHFDUWHJUDSKLTXHQ¶XWLOLVDQWTXH F°XUV PXOWLSURFHVVHXUV VXUOHVTXHFRPSRUWHXQHDUFKLWHFWXUH)HUPLFRPSOqWH LO SRXUUDLW rWUH LQWpUHVVDQW G¶XWLOLVHU XQH FDUWH XWLOLVDQW OD WRWDOLWp GHV  F°XUV  PXOWLSURFHVVHXUV GHO¶DUFKLWHFWXUHSDUH[HPSOHOD*7; 

 

9, $SSOLFDWLRQGH&8'$ŒjODPLVHHQ°XYUHG¶DOJRULWKPHV GHWpOpFRPPXQLFDWLRQV 9,3UpVHQWDWLRQ 8QHDSSOLFDWLRQSRVVLEOHGH&8'$VHUDLWOHWUDLWHPHQWGHVLJQDX[UDGDUGDQVOH FDGUH • VRLWG¶XQFDOFXOGHGLVWDQFH • VRLWG¶XQFDOFXOGHYLWHVVH 8QHPDQLqUHGHPHVXUHUODGLVWDQFHjXQREMHWHVWG pPHWWUHXQWUDLQGHFRXUWHV LPSXOVLRQV GH VLJQDO UDGLR HW GH PHVXUHU OH WHPSV TXH SUHQG FKDTXH LPSXOVLRQ SRXU UHYHQLUDSUqVDYRLUpWpUpIOpFKLH2QSHXWpJDOHPHQWUHPSODFHUOHWUDLQG¶LPSXOVLRQVSDU XQVLJQDOSVHXGRDOpDWRLUHFRPPHFHODVHUDOHFDVGDQVFHFKDSLWUH/DYLWHVVHGHO¶RQGH pWDQW FRQVWDQWH RQ SHXW IDFLOHPHQW HQ GpGXLUH OD GLVWDQFH GH O¶REMHW 2Q DSSHOOH pFKR O¶RQGHUpIOpFKLHSDUODFLEOH /DYLWHVVHSHXWrWUHPHVXUpHSDUGpFDODJHGRSSOHUGDQVXQUDGDUjRQGHVFRQWLQXHV >@ pJDOHPHQW DSSHOp UDGDU j RQGHV HQWUHWHQXHV/DYLWHVVHPHVXUpHQ¶HVWTXHOD FRPSRVDQWH UDGLDOH GH OD YLWHVVH GH O¶REMHW F¶HVW j GLUH OD SDUWLH  GX YHFWHXU YLWHVVH SURMHWpH VXU O¶D[H UDGDUFLEOH 8Q REMHW VH UDSSURFKDQW ©FRPSULPHª O¶RQGH 'H SDU OD YLWHVVH GH OD FLEOH O¶pFKR D XQH IUpTXHQFH SOXV pOHYpH TXH O¶RQGH UHoXH SDU OD FLEOH ,QYHUVHPHQW ORUVTXH OD FLEOH V¶pORLJQH GX UDGDU O¶RQGH UpIOpFKLH SDU OD FLEOH D XQH IUpTXHQFHSOXVIDLEOHTXHODIUpTXHQFHUHoXHSDUODFLEOH 'DQV OH FDGUH GHV VLJQDX[ UDGDU GDQV O¶H[SUHVVLRQ RQGHV FRQWLQXHV OH PRW FRQWLQX VH UDSSRUWH DX IDLW TXH OH VLJQDO VLQXVRwGDO  HVW pPLV HQ SHUPDQHQFH /¶RQGH FRQWLQXHSHXWrWUH • VRLWjIUpTXHQFHFRQVWDQWH SRXUODPHVXUHGHODYLWHVVHVHXOH  • VRLWIUpTXHQFHPRGXOpHF HVWjGLUHTXHODIUpTXHQFHYDULHjLQWHUYDOOHVUpJXOLHUV SRXUODPHVXUHGHODYLWHVVHHWGHODGLVWDQFH  P OHGpFDODJHWHPSRUHOSHUPHWGHPHVXUHUODGLVWDQFH P OHGpFDODJH DXJPHQWDWLRQRXGLPLQXWLRQ HQIUpTXHQFHSHUPHWGHPHVXUHUOD YLWHVVHG¶XQREMHW TXLVHUDSSURFKHRXV¶pORLJQH  9,8WLOLVDWLRQG¶XQUDGDUSVHXGRDOpDWRLUH 'DQVOHFDGUHGHFHWWHpWXGHSUHQRQVOHFDVG¶XQUDGDUSVHXGRDOpDWRLUHSRXUXQH PHVXUHGHGLVWDQFH3RXUSRXYRLUFRPSDUHUOHVLJQDOSVHXGRDOpDWRLUHpPLVHWOHVLJQDO UHoX pFKR FHUDGDUGRLWHIIHFWXHUXQFDOFXOGHFRUUpODWLRQ /HIRQFWLRQQHPHQWJOREDOG¶XQWHOUDGDUHVWUHSUpVHQWpSDUOHVFKpPDGHOD)LJXUH HWSDUOHVpWDSHVFLGHVVRXV /HUDGDUGRLW • VWRFNHUHQPpPRLUHXQHVpTXHQFHSVHXGRDOpDWRLUH • pPHWWUH HQERXFOH FHWWH VpTXHQFHSVHXGRDOpDWRLUHYHUVO¶REMHWGRQWRQVRXKDLWH FRQQDvWUHODGLVWDQFH • FRPSDUHUSDUFRUUpODWLRQO¶pFKR\ Q DYHFOHVLJQDOSVHXGRDOpDWRLUH[ Q VWRFNpHQ PpPRLUH • GpWHFWHUOHSRLQWSRXUOHTXHOODFRUUpODWLRQHVWPD[LPDOH

 

 5DGDUSVHXGRDOpDWRLUH *pQpUDWLRQ VpTXHQFH SVHXGRDOpDWRLUH

0RGXODWLRQ

[ Q

$QWHQQH 'pPRGXODWLRQ &RUUpODWLRQ pPLVVLRQUpFHSWLRQ \ Q

'LVWDQFHj PHVXUHU

&LEOH  )LJXUH0HVXUHGHGLVWDQFHSDUUDGDU 9,/LHQHQWUHWUDQVIRUPpHGH)RXULHUHWFRUUpODWLRQ 3RXU GpWHFWHU XQ pFKR GH UDGDU OH PHLOOHXU PR\HQ HVW GH IDLUH XQ SURGXLW GH FRUUpODWLRQ 2Q HIIHFWXH OH FDOFXO GH FRUUpODWLRQ HQ XWLOLVDQW OHV SURSULpWpV GH OD WUDQVIRUPpHGH)RXULHUFHTXLOLPLWHOHQRPEUHG¶RSpUDWLRQVjHIIHFWXHU 8QHGHFHVSURSULpWpVSHUPHWGHUpDOLVHUO¶RSpUDWLRQ 7) [ Q ∗ \ Q ; N u< N  $YHF [ Q ∗ \ Q SURGXLWGHFRQYROXWLRQGH[ Q HW\ Q  [ Q HW\ Q VLJQDX[WHPSRUHOVGLVFUHWV ; N HW< N WUDQVIRUPpHVGH)RXULHUUHVSHFWLYHVGH[ Q HW\ Q  2QVDLWpJDOHPHQWTXH 1 − • 3URGXLWGHFRQYROXWLRQ [ N ∗ \ N ¦ [ Q u\ N − Q  Q  1 − 1 − • Γ −  3URGXLWGHFRUUpODWLRQ [\ N ¦ [ Q u\ Q  N ¦ [ Q N u\ Q  Q  Q  (QVXSSRVDQWGDQVOHVGHX[FDVOHVLJQDOUHoX\ Q HQUHWDUGSDUUDSSRUWDXVLJQDO pPLV[ Q  ,OVXIILWHQVXLWHGHUHPDUTXHUTX¶HQWUHOHSURGXLWGHFRQYROXWLRQHWOHSURGXLWGH FRUUpODWLRQ LO Q¶\ D TX¶XQ VLJQH GH GLIIpUHQFH 2Q HQ GpGXLW GRQF TXH Γ 7) [\ N ; N u< N  3RXUWURXYHUOHSURGXLWGHFRUUpODWLRQLOVXIILWGRQFGHIDLUH • OD7)'GH[ Q VXLYLHGHVRQFRQMXJXp • OD7)'GH\ Q  • ODPXOWLSOLFDWLRQGHVGHX[7)' • OD7)'LQYHUVHGXSURGXLWGHVGHX[7)'

 

9,$SSOLFDWLRQGH&8'$ŒjODGpWHFWLRQG¶XQREMHW 3RXUIDLUHOHFDOFXOG¶XQH7)'VRXV&8'$RQSHXWGpFRPSRVHUOHFDOFXOHQVH EDVDQWVXUXQDOJRULWKPHGH))7&HSHQGDQWO¶HQYLURQQHPHQW&8'$FRQWLHQWXQH$3, RSWLPLVpHSRXUOHFDOFXOGH))7G¶XQHFRPSOH[LWpHQ1 ORJ1O¶$3,&8))7/HFDOFXO SRXUUDGRQFVHIDLUHSDUFHWWHELEOLRWKqTXHGHIRQFWLRQV /¶HQVHPEOHGXFDOFXOSHXWGRQFrWUHUpVXPpSDUO¶DOJRULWKPHGHOD)LJXUH  [ Q

))7 3DUWLH LQYDULDQWH

&RQMXJXp

(FKR \ Q ))7 ))7LQYHUVH ī[\ N   )LJXUH$OJRULWKPHGHFRUUpODWLRQUDSLGH 2QYHXWFRQQDvWUHOHWHPSVTXHQpFHVVLWHXQHFRUUpODWLRQ/DSDUWLH©WHPSVUpHOª GHODFRUUpODWLRQFRPSUHQG • XQH))7GLUHFWH • XQSURGXLWVFDODLUH • XQH))7LQYHUVH 2Q UDSSHOOH OHV WHPSV G¶H[pFXWLRQ G¶XQH ))7 GLUHFWH DYHF &8))7 GDQV OH 7DEOHDX 7DEOHDX7HPSVG¶H[pFXWLRQG¶XQH))7DYHF&8))7 7DLOOHGHWUDQVIRUPpH 7HPSVG¶H[pFXWLRQ PV          2Q VRXKDLWH HVWLPHU OH WHPSV G¶H[pFXWLRQ G¶XQ SURGXLW VFDODLUH FRPSOH[H VRXV &8%/$62QUDSSHOOHTXHODPXOWLSOLFDWLRQGHPDWULFHVDYHF&8%/$6DDWWHLQW *)/2362QVHEDVHUDGRQFSRXUFHWWHHVWLPDWLRQGHWHPSVVXUXQHGXUpHG¶H[pFXWLRQ  SDURSpUDWLRQGH VHFRQGHV u /D PXOWLSOLFDWLRQ GH GHX[ QRPEUHV FRPSOH[HV QpFHVVLWH  PXOWLSOLFDWLRQV HW  DGGLWLRQV'DQVOHFDVG¶XQHFRUUpODWLRQGHWDLOOH/HSURGXLWVFDODLUHQpFHVVLWHGRQF •  PXOWLSOLFDWLRQV •  ±§ DGGLWLRQV F HVWjGLUH RSpUDWLRQV2QSHXWpYDOXHUODGXUpHDSSUR[LPDWLYHGTX¶DXUDLWHXOH   SURGXLWVFDODLUHVRXV&8%/$6 G PV  u

 

 'DQVOHFDVG¶XQHWDLOOHGHWUDQVIRUPpHGH OHWHPSVG¶H[pFXWLRQWRWDOGHOD FRUUpODWLRQHVWGRQFGH  PV 3RXUOHVDXWUHVWDLOOHVGHWUDQVIRUPpHRQREWLHQWOHVYDOHXUVGX7DEOHDX 7DEOHDX7HPSVG¶H[pFXWLRQWRWDOGHODFRUUpODWLRQ 7HPSVG¶H[pFXWLRQGHOD 7DLOOHGHWUDQVIRUPpH 7HPSVG¶H[pFXWLRQ PV  FRUUpODWLRQ PV              'DQVOHFDVGHODFRUUpODWLRQHQWUHXQVLJQDOHQYR\pHWVRQpFKROHFDOFXOGHOD FRUUpODWLRQ SDU &8'$ &8))7  VH IHUD HQ GHX[ pWDSHV SULQFLSDOHV SUpOLPLQDLUH HW VHFRQGDLUH FRPSUHQDQWSOXVLHXUVpWDSHVLQWHUPpGLDLUHV (WDSHSUpOLPLQDLUH • FDOFXOVXU&38GHOD))7G¶XQVLJQDOSVHXGRDOpDWRLUH[ Q  • FDOFXOVXU&38GXFRQMXJXpGHOD))7GH[ Q  • WUDQVIHUW&38YHUVPpPRLUHJOREDOH*38GXFRQMXJXpGHOD))7GH[ Q  (WDSHVSULQFLSDOHVGHVFDOFXOVUpDOLVpVHQSHUPDQHQFH WHPSVUpHO  • HQYRLGXVLJQDOG¶pPLVVLRQSDUO¶DQWHQQH • pFKDQWLOORQQDJHSHUPDQHQWGHVVLJQDX[G¶HQWUpHHWVWRFNDJHGHVpFKDQWLOORQV VXU OH&38  • SUpOqYHPHQWG¶XQH ©IHQrWUHªG¶pFKDQWLOORQV\ Q SDUPLOHVpFKDQWLOORQVVWRFNpV HQ PpPRLUH HW WUDQVIHUW GH FHWWH IHQrWUH GX &38 YHUV OD PpPRLUH JOREDOH *38UpFHSWLRQ • FDOFXO DYHFO¶$3,&8'$ GHOD))7GH\ Q  • FDOFXO*38 DYHFO¶$3,&8'$ GXSURGXLWGH ; N SDU< N DYHFXWLOLVDWLRQGH ODPpPRLUHSDUWDJpH • FDOFXO *38 DYHF O¶$3, &8'$  GH OD ))7 LQYHUVH GX UpVXOWDW GX SURGXLW GH ; N SDU< N  • UHQYRLGXUpVXOWDWGHODFRUUpODWLRQ UpVXOWDWGHOD))7LQYHUVH YHUVOH&38 9,(YDOXDWLRQ GHV SHUIRUPDQFHV GH &8'$ SDU UDSSRUW j XQ UDGDU UpHO ,GpDOHPHQWOHWHPSVGHFDOFXOGRLWUHVWHULQIpULHXUjODSpULRGHGHUpFXUUHQFHGHOD VpTXHQFH SVHXGRDOpDWRLUH /H QRPEUH G¶pOpPHQWV GX VLJQDO SVHXGRDOpDWRLUH GpILQLW OH JDLQGHWUDLWHPHQW6¶LO\DQpOpPHQWVOHJDLQGHWUDLWHPHQWVHUDGHQG% '¶DSUqVOH7DEOHDXVLjPVGHWHPSVGHUpFXUUHQFHRQSHXWPRQWHUj pOpPHQWVDYHFXQHFDUWHJUDSKLTXHRQSHXWPRQWHUjVHXOHPHQWDYHF0$7/$%2Q JDJQHGRQFG%GHJDLQGHWUDLWHPHQWHQSDVVDQWG¶XQFDOFXOSDU0$7/$%jXQFDOFXO SDU&8))7 &HSHQGDQW RQ GRLW WHQLU FRPSWH GX IDLW TXH OH WHPSV GH UpFXUUHQFH HVW OLp DX[ VLJQDX[ j REVHUYHU (Q SDUWLFXOLHU OD SODJH 'RSSOHU REVHUYDEOHHVWOLpHDXWHPSVGH UpFXUUHQFHSDUODUHODWLRQ  'RSSOHU R7UUHSUpVHQWHOHWHPSVGHUpFXUUHQFH  ∗7U



Par conséquent, l’application de CUDA au calcul de distance par radar ne fonctionne qu’à condition de considérer une application pour laquelle la plage Doppler serait faible. Par exemple, un sondeur ionosphérique pourrait convenir étant donné que cet instrument est basé sur ce principe. Cependant, on doit se rendre compte qu’on reste dans des limites faibles, même pour un sondeur ionosphérique. L’intérêt serait de paralléliser plusieurs FFT plus petites. Ceci peut être intéressant dans la mesure où on obtient un gain de temps.

120

Conclusion

Ce mémoire avait pour objectif de réaliser l’étude et le test de CUDA™ (NVIDIA) appliqué à la mise en œuvre d’algorithmes de télécommunications. Une partie de l’objectif était donc d’étudier dans quelle mesure, le processeur d’une carte graphique NVIDIA pourrait éventuellement remplacer le CPU pour des calculs de grandes dimensions, voire le devancer au niveau de la performance. Dans un premier temps, une présentation générale des cartes graphiques NVIDIA a été faite. Un historique des cartes graphiques NVIDIA a donc été établi suivi d’un bref récapitulatif des principales parties d’une carte graphique, puis un descriptif de l’évolution des architectures GPU des cartes NVIDIA. Ainsi, nous avons pu observer de quelle manière les cartes graphiques NVIDIA sont passées d’un ensemble de pipelines de traitement graphique de plus en plus complexes à des processeurs de traitement graphique. Puis, nous avons vu comment ces processeurs de traitement ont progressivement été améliorés en passant d’un traitement graphique à un traitement à finalité non graphique. Il s’est alors avéré que la carte graphique présente au départ dans le PC dédié au projet (carte NVIDIA 8400GS comportant 8 cœurs de traitement) était particulièrement peu performante par rapport aux dernières générations de carte graphique. Nous avons donc procédé à son remplacement par une des dernières cartes graphiques sorties sur le marché au moment de ce stage : la GTX 470 (comportant 448 cœurs de traitement). Puis nous nous sommes lancés dans l’étude approfondie de CUDA™. Ainsi nous avons vu dans un premier temps un programme simple utilisant la bibliothèque CUDA, puis nous avons étudié l’intégration d’un programme CUDA dans une foncton MEX pour permettre la communication de données avec MATLAB. Et enfin, nous avons étudié un programme de multiplication de matrices utilisant les ressources de la carte graphique de manière optimale. Ces ressources étant limitées, nous avons vu la manière de gérer la mémoire partagée et les transferts de données de manière optimale. Puis, suite à des performance de CUDA relativement décevantes (en 2010) par rapport à ce qu’il en est dit par de nombreux experts, il a été découvert sur internet que l’API CUBLAS (bibliothèque CUDA dédiée à l’exécution de calculs optimisés sur matrices ou vecteurs) pouvait améliorer la performance de manière significative. Cette bibliothèque a donc été étudiée et s’est effectivement avérée plus performante pour la multiplication de matrices. Nous avons pu voir que la bibliothèque CUBLAS semble produire de bonnes performances bien qu’on aurait pu s’attendre à de bien meilleures performances. De plus, le temps de prise en main et de mise en œuvre de CUBLAS est beaucoup plus court que pour CUDA seul. Puis, ce mémoire ayant également pour but d’être appliqué à la mise en œuvre d’algorithmes de télécommunications, la bibliothèque CUFFT (bibliothèque CUDA consacrée aux FFT) a été également étudiée. Suite au test de ces différentes bibliothèques, il s’est avéré que les performances de CUDA sont assez décevantes d’une manière générale. Le gain en temps d’exécution

121

par rapport à MATLAB seul est relativement faible pour une complexité de programmation assez importante. Puis nous avons pu étudier une possibilité d’application de CUDA au traitement de signaux radar. La fin de la rédaction de ce mémoire ayant eu lieu en 2013 alors que le stage s’est terminé en 2010, il est donc à noter que d’importantes évolutions ont eu lieu dans l’architecture des cartes graphiques. Dans ce mémoire, l’architecture Fermi (comprenant 14 multiprocesseurs de 32 cœurs chacun) a été étudiée en détails. En 2012 est apparue l’architecture Kepler qui comprend 15 multiprocesseurs, chacun composés de 192 cœurs. Ce mémoire ne prétend donc pas montrer les performances des dernières cartes graphiques mais les performances d’une des cartes graphiques les plus rapides du début de l’année 2010. D’un point de vue personnel, malgré des performances de CUDA moins spectaculaires que ce que j’espérais, je suis plutôt satisfait d’avoir travaillé dans ce domaine que je connaissais très peu au départ. Je suis également satisfait d’avoir pu mettre en pratique mes connaissances de traitement du signal pour ce mémoire. De plus, l’autonomie complète dont j’ai bénéficié sur ce mémoire m’a permis d’acquérir des compétences transférables à d’autres domaines : la communication de données entre MATLAB et un programme C, la programmation en langage C sur un projet concret, la découverte d’un langage de programmation autre que le C, la configuration et l’utilisation de logiciels de développement (MATLAB, Visual Studio et outils spécifiques CUDA), la recherche sur internet et enfin, la persévérance.

122

Glossaire

Terme Description en anglais Description ou equivalent en français AGP Accelerated Graphics Port Port Graphique Accéléré ALU Arithmetic Logic Unit Unité Arithmétique et Logique AMD Nom d'un fabricant de semi-conducteurs American National Standards ANSI Institut national américain des normes Institute API Application Program Interface Interface de programmation Nom d'une entreprise canadienne de ATI Array Technologies Incorporated production de processeurs graphiques BIOS Basic Input/Output System Système élémentaire d'entrées/sorties Basic Linear Algebra Bibliothèque de fonctons spécialisée dans les BLAS Subprograms opérations de base de l'algèbre linéaire CPU Central Processing Unit Unité centrale CUDA Basic Linear Algebra API CUDA spécialisée dans les Sous- CUBLAS Subprograms programmes d'Algèbre Linéaire de Base Computer Unified Device CUDA Architecture de calcul unifiée Architecture API CUDA spécialisée dans l'exécution de CUFFT CUDA Fast Fourier Transfom Transformée de Fourier Rapide API CUDA spécialisée dans la génération de CURAND CUDA Random nombres aléatoires CUDA API CUDA spécialisée dans les calculs sur CUSP CUDA Sparse matrices creuses CUDA (Projet Google) API CUDA spécialisée dans les calculs sur CUSPARSE CUDA Sparse matrices creuses CUDA Débit de données double (sur front montant et DDR Double Data Rate descendant) DLL Dynamic Link Library Bibliothèque de liens dynamiques Dynamic Random Access DRAM Mémoire dynamique à accès aléatoire Memory Interface vidéo numérique pour les signaux DVI-A Digital Visual Interface Analog analogiques Interface vidéo numérique pour les signaux DVI-D Digital Visual Interface Digital numériques Interface vidéo numérique pour les signaux DVI-I Digital Visual Interface Integrated analogique ou numérique ECC Error-Correcting Code Code correcteur d’erreur Extended Industry Standard EISA Norme d'amélioration du bus ISA Architecture FFT Fast Fourier Transform Transformée de Fourier rapide Fastest Fourier Transform in the Transformée de Fourier la plus rapide du FFTW World monde Floating Point Operations per Nombre d'opérations à virgule flottante FLOPS Second exécutées par seconde Opération de multiplication et accumulation (résultat non arrondi pour la multiplication) qui FMA Fused Multiply-Add met en œuvre la norme IEEE 754-2008 pour la virgule flottante Type de mémoire DDR spécialement conçue GDDR Graphics Double Data Rate pour les cartes graphiques General-Purpose Computing on GPGPU Calcul générique sur processeur graphique Graphics Processing Units GPU Processeur Graphique

123

HD DVD High Density Digital Versatile Disc Disque numérique polyvalent de haute densité High Definition Multimedia HDMI Interface Multimédia Haute Définition Interface HPC High Performance Computing Calcul haute performance Integrated Development IDE Environnement de Développement Intégré Environment Institute of Electrical and Institut des ingénieurs électriciens et IEEE Electronics Engineers électroniciens IRM Imagerie par Résonance Magnétique ISA Industry Standard Architecture Norme de bus informatique Opération de multiplication et accumulation (résultat arrondi pour la multiplication) qui met MAD Multiply-Add en œuvre la norme IEEE 754-1985 pour la virgule flottante MCA Micro Channel Architecture Type de bus Type de fonction externe à MATLAB mais MEX Matlab Executable exécutable sous MATLAB Groupe de travail ayant introduit plusieurs MPEG Moving Picture Experts Group normes de traitement audio et vidéo Number of left-hand side Nombre d’arguments de sortie d'une fonction nlhs arguments MEX Number of right-hand side Nombre d’arguments d’entrée d'une fonction nrhs arguments MEX National Television System Norme de codage analogique de la vidéo en NTSC Committee couleur Nom d'un bus informatique parallèle NuBus NuMachine Bus initialement développé pour le projet NuMachine Nom de code d'un des premiers processeurs NV43 NVIDIA 43 graphiques NVIDIA NVCC NVIDIA CUDA Compiler Nom du compilateur CUDA OpenGL Open API libre pour la conception 2D et 3D PAL Phase Alternating Line Norme vidéo basée sur l'alternance de phase Nom d'une norme de bus interne permettant de Peripheral Component PCI connecter des cartes d'extension sur une carte Interconnect mère Peripheral Component Nom d'une norme de bus interne qui remplace PCI-Express Interconnect - Express les normes AGP et PCI Peripheral Component Nom d'une évolution du bus PCI standard. PCI-X Interconnect – X Rapidement remplacé par le PCI-Express PDB Program Data Base Base de données de programme Pointer to left-hand side Pointeur sur les arguments de sortie d'une plhs arguments fonction MEX Pointer to right-hand side Pointeur sur les arguments d’entrée d'une prhs arguments fonction MEX Machine virtuelle d'exécution de tâches PTX Parallel Thread Execution parallèles. Type d'instructions générées par les langages CUDA ou C RAM Random Access Memory Mémoire vive d'un ordinateur Random Access Memory Digital- Convertisseur qui transforme l'image RAMDAC to-Analog Converter numérique en signal analogique Opérations de traitement d'image précédant le ROP Raster Operations stockage de l’image en mémoire vidéo SDK Software Development Kit Kit de développement logiciel Séquentiel Couleur A Mémoire (système SECAM français de codage vidéo) Unité de l'architecture GT200 et GF100 SFU Special Function Unit spécialisée dans l'exécution de fonctions particulières (sin, cos, racine carrée...)

124

SIMD Single Instruction Multiple Data Instruction unique sur données multiples SIMT Single-Instruction Multiple-Thread Instruction unique sur tâches multiples SM Streaming Multiprocessor Multiprocesseur SP Streaming Processor Processeur de flux ou coeur Tableau de processeurs modulable SPA Scalable Processor Array (architectures G80). Contient un nombre modulable de TPC Langage de programmation pour bases de SQL Structured Query Language données ST Store Unité de stockage d’un multiprocesseur STL Standard Template Library Nom d'une bibliothèque C++ Bloc de traitement de texture contenant un TPC Texture Processing Cluster nombre modulable de multiprocesseurs Bloc de traitement de tâches contenant un TPC Thread Processing Cluster nombre modulable de multiprocesseurs UPA Ultra Port Architecture Architecture de bus d’interconnexion Norme de transmission série pour bus USB Universal Serial Bus informatique Video Electronics Standards Groupe informatique définissant certaines VESA Association normes vidéo VGA Video Graphics Array Norme d'affichage pour ordinateurs VLB VESA Local Bus Bus interne pour compatibles PC

125

Bibliographie

[1] KIRK David B., HWU Wen-mei W.. Programming massively parallel processors – A hands-on approach. Elsevier Inc.. Burlington, Massachusetts, 2010, 258 p. [2] NVIDIA. NVIDIA GeForce 8800 GPU Architecture Overview. Nvidia Corp. Santa Clara, Californie, 2006, 55 p. [3] NVIDIA. COMPATIBILITY GUIDE FOR CUDA APPLICATIONS. Nvidia Corp., 2010, 12 p. [4] NVIDIA. TUNING CUDA APPLICATIONS FOR FERMI – Application Note. Nvidia Corp., 2010, 11 p. [5] NVIDIA. NVIDIA CUDA™ C Programming Guide; Version 3.2. Nvidia Corp. Santa Clara, Californie, 2010, 183 p. [6] NVIDIA. NVIDIA CUDA™ C Best practices Guide; Version 3.2. Nvidia Corp. Santa Clara, Californie, 2010, 73 p. [7] NVIDIA. Whitepaper NVIDIA’s next Generation CUDA™ Compute Architecture. Nvidia Corp. 2009, 21 p. [8] NVIDIA. NVIDIA GeForce GTX 200 GPU Architectural Overview. Nvidia Corp. 2008, 23 p. [9] MSDN. Input-Assembler Stage (Direct3D 10), [en ligne]. Disponible sur : http://msdn.microsoft.com/en-us/library/bb205116(v=VS.85).aspx [10] MSDN. Stream-Output Stage (Direct3D 10), [en ligne]. Disponible sur : http://msdn.microsoft.com/en-us/library/bb205121(v=VS.85).aspx [11] MSDN. Rasterizer Stage (Direct3D 10), [en ligne]. Disponible sur : http://msdn.microsoft.com/en-us/library/bb205125(v=VS.85).aspx [12] MSDN. Stages (Direct3D 10), [en ligne]. Disponible sur : http://msdn.microsoft.com/en-us/library/bb205146(v=VS.85).aspx [13] NVIDIA. Whitepaper Nvidia GF100. Nvidia Corp. Santa Clara, Californie, 2010, 31 p. [14] NVIDIA. NVIDIA CUDA™ C Reference Manual; Version 3.2. Nvidia Corp. Santa Clara, Californie, 2010, 360 p. [15] The Mathworks. MATLAB® 7 External interfaces. The Mathworks. Natick, Massachusetts, 2009, 750 p. [16] Mathworks. Product Support, MEX-files Guide, [en ligne]. Disponible sur : http://www.mathworks.com/support/tech-notes/1600/1605.html [17] MSDN. Standard Types, [en ligne]. Disponible sur : http://msdn.microsoft.com/en- us/library/323b6b3k.aspx [18] NVIDIA. CUDA Technical Training, Volume I: Introduction to CUDA Programming. Nvidia Corp. Santa Clara, Californie, 2008, 94 p. [19] NVIDIA. The CUDA Compiler Driver NVCC. Nvidia Corp. Santa Clara, Californie, 2010, 39 p.

126

[20] NVIDIA. CUBLAS Library. Nvidia Corp. Santa Clara, Californie, 2010, 256 p. [21] National Science Foundation. BLAS (Basic Linear Algebra Subprograms), [en ligne]. Disponible sur : http://www.netlib.org/blas/ [22] NVIDIA. CUDA CUFFT LIBRARY. Nvidia Corp. Santa Clara, Californie, 2005- 2011, 31 p. [23] THOUREL L. Initiation aux techniques modernes des radars. Cepadues Editions. Toulouse, France, 1982, 304 p. [24] Jean-Marie COLIN. Le radar – Théorie et pratique. Ellipses. Paris, France, 2002, 151 p.

127

Table des annexes

Annexe 1 Comparaison et historique des cartes graphiques ...... 129 Annexe 2 Installation de CUDA™ et du pilote CUDA ...... 134 Annexe 3 Installation et configuration de Visual Studio 2005...... 137 Annexe 4 Création et configuration d’un projet CUDA™, CUBLAS ou CUFFT sous Visual Studio 2005...... 139 Annexe 5 Outils de développement CUDA ...... 161 Annexe 6 Programme MEX-CUDA-C ...... 170 Annexe 7 Programme MEX-CUBLAS-C...... 175 Annexe 8 Programme MEX-CUFFT-C ...... 180

128

Annexe 1 Comparaison et historique des cartes graphiques

Tableau 18 : Historique et comparaison des cartes graphiques des principaux constructeurs

Année ATI NVIDIA Videologic et ou STMicroelectronics 1995 STG2000 Millenium All-In-Wonder, Rage3D, 1996 Mystique PowerVR ou PCX1 Rage/Pro 1997 3D Rage Pro Riva 128 Rage 128 GL, Rage 1998 TNT G200 128 VR Rage 128 Pro GL, 1999 Vanta, TNT2, GeForce G400 Kyro Rage 128 Maxx Rage Fury Maxx, 2000 SDR, Radeon GeForce 2 G450 Kyro 2 DDR, Radeon VE FireGL, Radeon 7000, 2001 GeForce 3 G550 7200, 7500, 8500 Imageon, Radeon 2002 GeForce 4Ti Parhelia 9000, 9100, 9500, 9700 Radeon 9200, 9600, GeForce 5200, 5600, 2003 9800 5700, 5800, 5900 Radeon 9250, 9550, GeForce 4300, 5500, 2004 X300, X500, X600, 5750, 5950, 6200, X700, X800, X850 6500, 6600, 6800 Radeon X1300, X1600, 2005 GeForce 7800 X1800 GeForce 7100, 7200, Radeon X1600, X1650, 7300, 7500, 7600, 2006 X1900, X1950 7700, 7900, 7950, 7950GX2, 8800 Radeon HD 2400, HD GeForce 8800, 8600, 2007 2600, HD 2900, HD 8500, 8400, 8300 3800 Radeon HD3870X2, GeForce 9200, 9300, HD4550, HD4650 9400, 9500, 9600, 2008 HD4670, HD4850, 9800, GTX260, HD4870, HD4850X2, GTX280, 9800GX2, HD4870X2 9800 GTX Radeon HD 4770, GeForce GTX260+, HD4890, HD 5750, HD GTX275, GTX295, 2009 5770, HD 5850, HD GTX 285, G210, 5870, HD 5970 GT220, GT240 Radeon HD5450, HD5570, HD5670, GeForce GTX 480, HD5650, HD5750, GTX 470, GTX465, 2010 HD5770, HD5850, GTX 460, GTS 450, HD5870, HD6850, GT 430, GTX 580, HD6870, HD6950, GTX 570 HD6970 GeForce GTX 560ti, 2011 Radeon HD6990 GTX550ti, GTX590

129

Tableau 19 : Nombre de cœurs et de multiprocesseurs selon les cartes graphiques Nombre de Nombre de Cartes GeForce compatibles CUDA multiprocesseurs cœurs CUDA GeForce 9300M GS, 9200M GS, 9100M G, 8400M 1 8 G, G105M GeForce GT 415M 1 48 GeForce 210, 310M, 305M 2 16 GeForce G100, 8500 GT, 8400 GS, 8400M GT, 9500M G, 9300M G, 8400M GS, 9400 mGPU, 2 16 8300 mGPU, 8200 mGPU, 8100 mGPU, G210M, G110M GeForce GT 435M, GT 425M, GT 420M 2 96 GeForce GT 445M 3 144 GeForce GT 120, 9500 GT, 8600 GTS, 8600 GT, 9700M GT, 9650M GS, 9600M GT, 9600M GS, 4 32 9500M GS, 8700M GT, 8600M GT, 8600M GS GeForce GTS 450, GTX 460M 4 192 GeForce GT 220, GT 330M, GT325M, GT 240M 6 48 GeForce 9700M GT, GT230M 6 48 GeForce GTX 470M 6 288 GeForce GTX 460 7 336 GeForce 9600 GT, 8800M GTS, 9800M GTS 8 64 GeForce GT 335M 9 72 GeForce GTX 465, GTX 480M 11 352 GeForce 8800 GTS 12 96 GeForce GT 240, GTS 360M, GTS 350M 12 96 GeForce GT 130, 9600 GSO, 8800 GS, 8800M 12 96 GTX, GTS 260M, GTS 250M, 9800M GT GeForce 9800 GT, 8800 GT, GTX 260M, 9800M 14 112 GTX GeForce GTX 470 14 448 GeForce GTX 480 15 480 GeForce GTX 580 16 512 GeForce GTS 250, GTS 150, 9800 GTX, 9800 16 128 GTX+, 8800 GTS 512, GTX 285M, GTX 280M GeForce 8800 Ultra, 8800 GTX 16 128 GeForce 9800 GX2 2*16 2*128 GeForce GTX 260 24 192 GeForce GTX 285, GTX 280, GTX 275 30 240 GeForce GTX 295 2*30 2*240

Nombre de Nombre de Cartes Tesla compatibles CUDA multiprocesseurs cœurs CUDA Tesla C2050 14 448 Tesla C870 16 128 Tesla D870 2*16 2*128 Tesla S870 4*16 4*128 Tesla C1060 30 240 Tesla S1070 4*30 4*240

130

Nombre de Nombre de Cartes compatibles CUDA multiprocesseurs cœurs CUDA Quadro FX 380 LP, FX 380M, NVS 3100M, NVS 2 16 2100M Quadro FX 370, NVS 290, NVS 160M, NVS 150M, 2 16 NVS 140M, NVS 135M, FX 360M Quadro 600 2 96 Quadro FX 1700, FX 570, NVS 320M, FX 1700M, 4 32 FX 1600M, FX 770M, FX 570M Quadro 2000 4 192 Quadro FX 880M, NVS 5100M 6 48 Quadro FX 2700M 6 48 Quadro FX 3600M 8 64 Quadro 4000 8 256 Quadro FX 1800M 9 72 Quadro 5000M 10 320 Quadro 5000 11 352 Quadro FX 2800M 12 96 Quadro FX 4600 12 96 Quadro FX 3700 14 112 Quadro 6000 14 448 Quadro FX 4700 X2 2*14 2*112 Quadro Plex 2100 D4 4*14 4*112 Quadro FX 5600 16 128 Quadro FX 3700M, FX 3800M 16 128 Quadro 1000 Model IV 2*16 2*128 Quadro Plex 2100 Model S4 4*16 4*128 Quadro FX 4800 24 192 Quadro FX 5800 30 240 Quadro Plex 2200 D2 2*30 2*240

Tableau 20 : Principales caractéristiques de cartes graphiques

Taille de Version de Modèle Nb de Puissance mémoire GFLOPs GPU (Compute (GeForce) cœurs dissipée totale (Mo) capability) 8400 GS 8 512 33 25 1.1 9500 GT 32 512 134,4 50 1.1 GT 220 48 512 192 58 1.2 9600 GT 64 512 312 95 1.1 GT 240 96 512 385,9 69 1.2 9800 GT 112 512 504 125/105 1.1 GTS 250 128 512 705,024 145 1.1 9800 GTX 128 512 648 140 1.1 9800 128 2 * 512 705 141 1.1 GTX+ GTX 260 192 896 715,392 202 1.3 GTX 275 240 896 1010.880 219 x GTX 285 240 1024 1062.720 204 1.3 GTX 280 240 1024 933.120 236 1.3 2 * 240 (2 GTX 295 2 * 896 1788.480 289 1.3 GPUs)

131

Taille de Version de Modèle Nb total de Consommation mémoire GFLOPs GPU (Compute (Tesla) cœurs maximale (W) (Mo) capability) C870 128 1 * 1536 519 170 1.0 2 * 128 (2 D870 2 * 1536 1037 520 1.0 GPUs) 4 * 128 (4 S870 4 * 1536 2074 800 1.0 GPUs) 933,12 (Single P.) C1060 240 1 * 4096 200 1.3 77,76 (Double P.) 2 * 1536 (ou 1288 4 * 1536 - (Single P.) C2050 448 247 2.0 mémoire 515,2 ECC) (Double P.) 2 * 1536 (ou 1288 4 * 1536 - (Single P.) C2070 448 225 2.0 mémoire 515,2 ECC) (Double P.)

Taille de Version de Modèle Nb de Puisssance mémoire GFLOPs GPU (Compute (Quadro) coeurs dissipée totale (Mo) capability) FX 580 32 512 108 40 x FX 1700 32 512 88,32 42 1.1 FX 1800 64 768 264 59 x FX 4600 96 768 345 134 1.0 FX 3700 112 512 420 78 1.1 FX 3800 192 1024 693.504 108 x FX 4800 192 1536 693.504 150 1.3 FX 5800 240 4096 933.12 189 1.3

Tableau 21 : Spécifications techniques par version de processeur graphique

Fermi Tesla G80 Tesla GT200

132

Tesla G80 Tesla GT200 Fermi

133 

$QQH[H ,QVWDOODWLRQGH&8'$ŒHWGXSLORWH&8'$

 3UpVHQWDWLRQ 3RXUSRXYRLUXWLOLVHU&8'$ŒVXUXQV\VWqPHFHGHUQLHUGRLWFRPSRUWHU • XQSURFHVVHXUJUDSKLTXHFRPSDWLEOH&8'$ • 0LFURVRIW:LQGRZV;39LVWDRXRX:LQGRZV6HUYHURX • XQSLORWHGHSpULSKpULTXHJUDSKLTXH • OHORJLFLHO&8'$ GLVSRQLEOHJUDWXLWHPHQWVXUOHVLWHKWWSZZZQYLGLDFRPFXGD  • 0LFURVRIW9LVXDO6WXGLRRXRXRXOHVYHUVLRQVFRUUHVSRQGDQWHVGH 0LFURVRIW9LVXDO&([SUHVV /¶LQVWDOODWLRQGH&8'$ŒVXUXQV\VWqPHG¶H[SORLWDWLRQ0LFURVRIW:LQGRZVVH GpURXOHHQpWDSHVSULQFLSDOHV • YpULILHUTXHOHV\VWqPHFRPSRUWHXQSURFHVVHXUJUDSKLTXHFRPSDWLEOH&8'$ • WpOpFKDUJHUOHORJLFLHO&8'$ • LQVWDOOHUOHSLORWHSRXU:LQGRZV;3 RX:LQGRZV9LVWDRX:LQGRZV  • LQVWDOOHUOHORJLFLHO&8'$  'pWDLOGHVpWDSHVGHO¶LQVWDOODWLRQGXORJLFLHO&8'$  9pULILFDWLRQ GH OD FRPSDWLELOLWp GX SpULSKpULTXH GH WUDLWHPHQW JUDSKLTXH $XMRXUG¶KXL GH QRPEUHX[ SURGXLWV 19,',$ FRQWLHQQHQW GHV SURFHVVHXUV JUDSKLTXHVFRPSDWLEOH&8'$3DUPLFHVSURGXLWVRQWURXYHSULQFLSDOHPHQW • OHVSURFHVVHXUVJUDSKLTXHVGHVVpULHV19,',$*H)RUFHŠHWHW • OHVVROXWLRQVGHFDOFXO19,',$7HVOD • EHDXFRXSGHSURGXLWV19,',$4XDGURŠ /HSURFHVVHXUJUDSKLTXHSUpVHQWVXUOH3&HQGpEXWGHSURMHW *H)RUFH*6  IDLVDLWSDUWLHGHODVpULHLOpWDLWGRQFFRPSDWLEOH&8'$  7pOpFKDUJHPHQWGXORJLFLHO&8'$ /H SLORWH &8'$ HVW LQWpJUp GDQV OH SLORWH JUDSKLTXH 19,',$ TXL SHXW rWUH WpOpFKDUJpVXUOHVLWHKWWSZZZQYLGLDFRPREMHFWFXGDBJHWKWPO  ,QVWDOODWLRQGXSLORWHSRXU:LQGRZV;3 3RXUXWLOLVHU&8'$7RRONLWLOHVWQpFHVVDLUHG¶DYRLUDXPRLQVODYHUVLRQGHSLORWH JUDSKLTXH 19,',$ VSpFLILpH GDQV OH GRFXPHQW &8'$ 7RRONLW 5HOHDVH 1RWHV OH SOXV UpFHQW 3RXUFRQQDvWUHODYHUVLRQGXSLORWH19,',$LQVWDOOpLOVXIILWGHUHJDUGHUGDQVOH SDQQHDX GH FRQILJXUDWLRQ 19,',$ 2XYULU OH SDQQHDX GH FRQILJXUDWLRQ 19,',$ HQ FOLTXDQW GURLW VXU OH EXUHDX HW HQ VpOHFWLRQQDQW 3DQQHDX GH FRQILJXUDWLRQ 19,',$ YRLU ILJXUHVXLYDQWH SXLV ,QIRUPDWLRQVV\VWqPHHQEDVjJDXFKHGXSDQQHDXGHFRQILJXUDWLRQ SULQFLSDO

 

'DQV OH 3& XWLOLVp SRXUOH SURMHW OD YHUVLRQ GHGpSDUW GX SLORWH JUDSKLTXH pWDLW  FHWWH YHUVLRQ D GRQF GX rWUH FKDQJpH SOXVLHXUV IRLV &HSLORWHDpWpPLVjMRXU SURJUHVVLYHPHQWSDUOHVYHUVLRQV $QRWHUTXHOHVQRXYHOOHVYHUVLRQVGX7RRONLW&8'$QpFHVVLWHQWW\SLTXHPHQWOHV QRXYHOOHV YHUVLRQV GX SLORWH 19,',$ pJDOHPHQW GRQF LO HVW SUpIpUDEOH GH WRXMRXUV YpULILHU TXH OD ERQQH YHUVLRQ GH SLORWH HVW SUpVHQWH SRXU OD YHUVLRQ GX 7RRONLW &8'$ XWLOLVpH  ,QVWDOODWLRQGXORJLFLHO&8'$  3UpVHQWDWLRQ 3RXU IDLUH IRQFWLRQQHU GHV SURJUDPPHV &8'$ LO IDXW DYRLU OH PDWpULHO &8'$ VXLYDQW • OH&8'$7RRONLW • OHNLWGHGpYHORSSHPHQW 6'. &8'$ /H&8'$7RRONLWFRQWLHQWOHVRXWLOVQpFHVVDLUHVSRXUFRPSLOHUHWFRQFHYRLUXQH DSSOLFDWLRQ&8'$HQFRQMRQFWLRQDYHF0LFURVRIW9LVXDO6WXGLR,OLQFOXWGHVRXWLOVGHV ELEOLRWKqTXHVGHVILFKLHUVHQWrWHHWG¶DXWUHVUHVVRXUFHV 

/HQXPpURGHYHUVLRQGHSLORWHGRLWrWUH VXSpULHXURXpJDOj HQ 

  /HNLWGHGpYHORSSHPHQW 6'. &8'$LQFOXW • GHVSURMHWVpFKDQWLOORQVTXLRQWWRXWHODFRQILJXUDWLRQSURMHWQpFHVVDLUH • GHVILFKLHUVGHJpQpUDWLRQSRXUUpDOLVHUGHVJpQpUDWLRQVXQFOLFXWLOLVDQW0LFURVRIW 9LVXDO6WXGLR

 

/HVORJLFLHOVVRQWGLVSRQLEOHVSRXU:LQGRZVELWVHW:LQGRZVELWV 3RXUXQHLQVWDOODWLRQUpXVVLHLOHVWFRQVHLOOpGHVXLYUHODSURFpGXUHVXLYDQWH  7pOpFKDUJHU OH ORJLFLHO &8'$Œ 19,',$ j SDUWLU GX VLWH KWWSZZZQYLGLDFRPREMHFWFXGDBJHWKWPO HWVDXYHJDUGHUO¶LQVWDOODWHXUVXUOH EXUHDX  'pVLQVWDOOHU OHV YHUVLRQV SUpFpGHQWHV GX &8'$ 7RRONLW HW GX NLW GH GpYHORSSHPHQW&8'$Œ19,',$V¶LOVpWDLHQWGpMjLQVWDOOpV 3RXU GpVLQVWDOOHU OH &8'$ 7RRONLW SDVVHU SDU OH PHQX 'pPDUUHU GH OD PDQLqUH VXLYDQWH 'pPDUUHU ĺ 7RXV OHV SURJUDPPHV ĺ 19,',$ &RUSRUDWLRQ ĺ &XGD 7RRONLW ĺ 8QLQVWDOO&8'$ 3RXUGpVLQVWDOOHUOHNLWGHGpYHORSSHPHQW&8'$XQFKHPLQVLPLODLUHHVWXWLOLVp 'pPDUUHUĺ7RXVOHVSURJUDPPHVĺ19,',$&RUSRUDWLRQĺ19,',$*38&RPSXWLQJ6'.ĺ XQLQVWDOO19,',$*38&RPSXWLQJ6'.  ,QVWDOOHUOH&8'$7RRONLWHQH[pFXWDQWVRQSDTXHWDJHG¶LQVWDOODWLRQHWHQVXLYDQW OHV LQVWUXFWLRQV DSSDUDLVVDQW j O¶pFUDQ /H &8'$ 7RRONLW HVW LQVWDOOp SDU GpIDXW VRXV &?3URJUDP )LOHV?19,',$ *38 &RPSXWLQJ 7RRONLW?&8'$?Y DYHF  UHSUpVHQWDQWODYHUVLRQRXSOXV&HUpSHUWRLUHFRQWLHQWFHTXLVXLW • &8'$B%,1B3$7+TXLHVWXQHYDULDEOHG¶HQYLURQQHPHQWUHSUpVHQWDQWOHFKHPLQ VH WHUPLQDQWSDU &8'$?ELQ GHO¶HPSODFHPHQWFRQWHQDQWOHVELEOLRWKqTXHVGXPRWHXU G¶H[pFXWLRQ UXQWLPH HWOHVH[pFXWDEOHVGXFRPSLODWHXU • &8'$B,1&B3$7+TXLHVWXQHYDULDEOHG¶HQYLURQQHPHQWUHSUpVHQWDQWOHFKHPLQ VH WHUPLQDQW SDU &8'$?LQFOXGH RX SDU &8'$?LQF  GH O¶HPSODFHPHQW FRQWHQDQW OHV ILFKLHUVLQFOXGH OHVILFKLHUVK QpFHVVDLUHVSRXUFRPSLOHUGHVSURJUDPPHV&8'$ • &8'$B/,%B3$7+TXLHVWXQHYDULDEOHG¶HQYLURQQHPHQWUHSUpVHQWDQWOHFKHPLQ VH WHUPLQDQW SDU &8'$?OLE  GH O¶HPSODFHPHQW FRQWHQDQW OHV ELEOLRWKqTXHV OHV OLE  QpFHVVDLUHVSRXUO¶pGLWLRQGHOLHQGHVFRGHV&8'$ • ?&8'$GRFTXLHVWOHFKHPLQGHO¶HPSODFHPHQWGHODSOXSDUWGHVGRFXPHQWDWLRQV &8'$HQSDUWLFXOLHUOHJXLGHGHSURJUDPPDWLRQ 3URJUDPPLQJ*XLGH  /HVYDULDEOHVG¶HQYLURQQHPHQWFLGHVVXVVHURQWXWLOLVpHVHQSDUWLFXOLHUDXPRPHQW GHODFRQILJXUDWLRQGXSURMHWHWGXILFKLHUFRQWHQDQWOHFRGH  ,QVWDOOHU XQH QRXYHOOH YHUVLRQ GX NLW GH GpYHORSSHPHQW &8'$Œ 19,',$ HQ H[pFXWDQW FXGDVGNBBZLQBH[H DSUqV DYRLU UHPSODFp  SDU OH QXPpUR GH YHUVLRQjLQVWDOOHU/HNLWGHGpYHORSSHPHQW&8'$HVWLQVWDOOpVRXV&?'RFXPHQWV DQG 6HWWLQJV?$OO 8VHUV?$SSOLFDWLRQ 'DWD?19,',$ &RUSRUDWLRQ?19,',$*38&RPSXWLQJ 6'. HW FRQWLHQW OH FRGH VRXUFH SRXU GH QRPEUHX[ SUREOqPHV HW PRGqOHV H[pFXWDEOHVVRXV0LFURVRIW9LVXDO6WXGLR

 

$QQH[H ,QVWDOODWLRQHWFRQILJXUDWLRQGH9LVXDO6WXGLR

 ,QVWDOODWLRQGH9LVXDO6WXGLR  0LFURVRIW9LVXDO6WXGLRHVWGLVSRQLEOHGDQVOHVpGLWLRQVVXLYDQWHV • 9LVXDO6WXGLR7HDP6\VWHP • 9LVXDO6WXGLR3URIHVVLRQDO • 9LVXDO6WXGLR6WDQGDUG • 9LVXDO6WXGLR([SUHVV 0LFURVRIW 9LVXDO 6WXGLR ([SUHVV HVW XQ PRGqOH G¶HQYLURQQHPHQW GH GpYHORSSHPHQWLQWpJUpJUDWXLWGpYHORSSpSDU0LFURVRIW,OV¶DJLWG¶XQHYHUVLRQDOOpJpHGH 0LFURVRIW9LVXDO6WXGLR/HFKRL[GXORJLFLHOGHGpYHORSSHPHQWjXWLOLVHUSRXU&8'$ GDQVOHFDGUHGHFHPpPRLUHV¶HVWSRUWpVXUODYHUVLRQ([SUHVVGH9LVXDO6WXGLRFDU HOOHIRXUQLWXQHQYLURQQHPHQWGHGpYHORSSHPHQWIDFLOHjXWLOLVHU /DYHUVLRQGH9LVXDO6WXGLR([SUHVV  HVWVRUWLHOHQRYHPEUHHWpWDLW VXSSRVpHQ¶rWUHJUDWXLWHTXHSRXUXQDQ PLVjSDUW64/6HUYHU([SUHVV(GLWLRQ  7RXWHIRLV0LFURVRIWDDQQRQFpOHDYULOTXHFHVpGLWLRQVUHVWHURQWJUDWXLWHVjYLH 0LFURVRIW 9LVXDO 6WXGLR ([SUHVV HVW FRPSRVp GHV GLIIpUHQWV SURGXLWV VXLYDQWV FKDFXQVXSSRUWDQWXQVHXOODQJDJH • 9LVXDO%DVLF • & • & • - • :HE'HYHORSHU • 64/6HUYHU 7DEOHDX&RQILJXUDWLRQUHTXLVHSRXULQVWDOOHU9LVXDO6WXGLR([SUHVV &RQILJXUDWLRQGX  &RQILJXUDWLRQUHTXLVHSRXULQVWDOOHU9LVXDO& 3&XWLOLVp 7\SH3HQWLXP,,,0+] 3URFHVVHXU 4*+] 5HFRPPDQGp*+] 0R 0pPRLUHYLYH *R 5HFRPPDQGp 6\VWqPH :LQGRZV:LQGRZV;3RX:LQGRZV6HUYHU :LQGRZV;3 G¶H[SORLWDWLRQ &DSDFLWpGHEDVH (VSDFH • 0RG¶HVSDFHGLVSRQLEOHUHTXLVVXUOH GLVSRQLEOHVXU OHFWHXUV\VWqPH *RGLVSRQLEOH GLVTXHGXU • 0RG¶HVSDFHGLVSRQLEOHUHTXLVVXUOH OHFWHXUG¶LQVWDOODWLRQ  2Q FRQVWDWH TX¶LO Q¶\ D SDV GH SUREOqPH GH FRPSDWLELOLWp HQWUH 9LVXDO 6WXGLR ([SUHVVHWOH3&XWLOLVpSRXUFHPpPRLUHOHVSURSULpWpVGX3&pWDQWELHQVXSpULHXUHVj FHOOHVUHTXLVHVSRXULQVWDOOHUOHORJLFLHO

 &RQILJXUDWLRQ GH 9LVXDO 6WXGLR SRXU OH GpYHORSSHPHQW HW O¶H[pFXWLRQ G¶XQSURJUDPPH0(;&8'$

 

$YDQWWRXWHFRQILJXUDWLRQGHFRGHHWGHSURMHWGDQV9LVXDO6WXGLRXQILFKLHUGH FRGH &8'$ FX  HVW DIILFKp SDU GpIDXW VDQV OD FRORUDWLRQ V\QWD[LTXH GLVSRQLEOH KDELWXHOOHPHQWGDQVXQFRGH&FHTXLUHQGO¶pGLWLRQGXSURJUDPPHDVVH]GpOLFDWH3RXU UHWURXYHUFHWWHFRORUDWLRQV\QWD[LTXH19,',$IRXUQLWOHILFKLHUXVHUW\SHGDWTXLSHXWVH WURXYHU VRXV &?'RFXPHQWV DQG 6HWWLQJV?$OO 8VHUV?$SSOLFDWLRQ 'DWD?19,',$ &RUSRUDWLRQ?19,',$*38&RPSXWLQJ6'.?&?GRF?V\QWD[BKLJKOLJKWLQJ?YLVXDOBVWXGLRB • &RSLHU FH ILFKLHU GDQV &?3URJUDP )LOHV?0LFURVRIW 9LVXDO 6WXGLR?&RPPRQ?,'(? YLVXDOBVWXGLRB • 'DQV 9LVXDO 6WXGLR DOOHU GDQV OH PHQX 2XWLOV ĺ 2SWLRQV ĺ (GLWHXU GH WH[WH ĺ ([WHQVLRQGHILFKLHU'DQVOHFKDPS([WHQVLRQWDSHUFXYpULILHUTXH0LFURVRIW9LVXDO &HVWELHQVpOHFWLRQQpGDQVODOLVWHGpURXODQWHGH(GLWHXU&OLTXHUHQVXLWHVXU$MRXWHU SXLVVXU2.

 &RQWUDLUHPHQW DX[ SURSULpWpV G¶XQ SURMHW TXL GRLYHQW rWUH UHGpILQLHV j FKDTXH QRXYHDX SURMHW OD FRQILJXUDWLRQ GH OD FRORUDWLRQ V\QWD[LTXH HVW SHUPDQHQWH HW QH QpFHVVLWHDXFXQHQRXYHOOHFRQILJXUDWLRQORUVG¶XQQRXYHDXSURMHWFDUF¶HVW9LVXDO6WXGLR OXLPrPHTXLHVWFRQILJXUp HWQRQSDVOHILFKLHUGHFRGH&8'$RXOHSURMHW&8'$ 

 

$QQH[H &UpDWLRQHWFRQILJXUDWLRQG¶XQSURMHW&8'$Œ&8%/$6RX &8))7VRXV9LVXDO6WXGLR

 &UpDWLRQG¶XQQRXYHDXSURMHW0(;&8'$0(;&8%/$6RX0(; &8))7 • 2XYULU9LVXDO6WXGLR • 3RXUFUpHUXQQRXYHDXSURMHWDOOHUGDQVOHVPHQXVHWVRXVPHQXVVXLYDQWV)LFKLHU ĺ1RXYHDXĺ3URMHW • 6L FH Q¶HVW SDV IDLW FOLTXHU VXU :LQ HW$SSOLFDWLRQ FRQVROH :LQ  SRXU OHV VpOHFWLRQQHU • 'RQQHUXQQRPSRXUOHSURMHWGDQVOHFKDPS1RP • &KRLVLU O¶HPSODFHPHQW ± GDQV OHTXHO VHUD VWRFNp OH GRVVLHU FRQWHQDQW WRXV OHV ILFKLHUVGXSURMHW±GDQVOHFKDPS(PSODFHPHQW • 9pULILHUTXHODFDVH&UpHUOHUpSHUWRLUHSRXUODVROXWLRQQ¶HVWSDVFRFKpH • &OLTXHUVXU2.

 • 'DQVODIHQrWUHTXLV¶RXYUHFOLTXHUVXUVXLYDQW 

 

 • 'DQV OD IHQrWUH TXL V¶RXYUH FKRLVLU %LEOLRWKqTXH VWDWLTXH GDQV OD UXEULTXH 7\SH G¶DSSOLFDWLRQ TXLGHYUDrWUHFKDQJpHQGOODXPRPHQWGHODFRQILJXUDWLRQGHSURMHW  • 9pULILHU TXH OD FDVH (QWrWH SUpFRPSLOpHVWFRFKpHGDQVODUXEULTXH2SWLRQV VXSSOpPHQWDLUHV • &OLTXHUVXU7HUPLQHU

 &HWWHSURFpGXUHGHFUpDWLRQGHSURMHWHVWLGHQWLTXHSRXUOHVSURMHW0(;&8%/$6 HW0(;&8))7 

 



 &UpDWLRQ G¶XQ ILFKLHU GH GpILQLWLRQ GH PRGXOH 0(;&8'$ 0(; &8%/$6RX0(;&8))7 3RXUSRXYRLUH[pFXWHUOHFRGH0DWODEDEHVRLQGHFRQQDvWUHOH©SRLQWG¶HQWUpHª 'DQVOHFDVGHVILFKLHUV0(;0DWODEHVVDLHUDWRXMRXUVG¶H[pFXWHUXQHIRQFWLRQDSSHOpH ©NFY'VODUJPOª3DUFRQVpTXHQWLOHVWQpFHVVDLUHG¶LQIRUPHUOHFRPSLODWHXUTXHFHWWH IRQFWLRQGRLWrWUHDFFHVVLEOHGHO¶H[WpULHXU,OIDXWGRQFFUpHUXQILFKLHUGHGpILQLWLRQGH PRGXOH GRQW OH U{OH HVW GH GRQQHU DX FRPSLODWHXU OH QRP GHV IRQFWLRQV TXL VHURQW DFFHVVLEOHVGHO¶H[WpULHXU /HV ILFKLHUV GH GpILQLWLRQ GH PRGXOH GHI  IRXUQLVVHQW j O pGLWHXU GH OLHQV GHV LQIRUPDWLRQV VXU OHV H[SRUWDWLRQV 8Q ILFKLHU GHIHVWVXUWRXWXWLOHORUVGHOD JpQpUDWLRQ G XQHGOO &UpHUG¶DERUGXQQRXYHDXILFKLHUYLGHDYHFO¶H[WHQVLRQGHI • /HSOXVVLPSOHHVWGHFOLTXHUGURLWVXUOHQRPGXSURMHW PXOPDW SXLVG¶DOOHUGDQV OHPHQX$MRXWHUĺ1RXYHOpOpPHQW«

 • 3XLV FOLTXHU VXU &RGHGDQVOHPHQX&DWpJRULHVHWVXU)LFKLHU G¶HQWrWH K GDQVOH PHQX0RGqOHV • 'RQQHUXQQRPDXILFKLHUDYHFXQHH[WHQVLRQGHIGDQVOHFKDPS1RP

 

• 9pULILHU TXH O¶HPSODFHPHQW HVW ELHQ OD UDFLQH GX SURMHW F HVWjGLUH OH UpSHUWRLUH FRQWHQDQWWRXVOHVILFKLHUVGXSURMHW • &OLTXHUVXU$MRXWHU 

 • 'DQVOHILFKLHUWH[WHTXLV¶RXYUHpFULUHOHVGHX[OLJQHVVXLYDQWHV P /,%5$5<PXOPDW P (;32576PH[)XQFWLRQ P 5HPSODFHUOHQRPGHILFKLHU0(;PXOPDWSDUXQQRPHQUDSSRUWDYHFOH SURJUDPPHjGpYHORSSHU • 6DXYHJDUGHUOHILFKLHU • )HUPHUOHILFKLHUGHGpILQLWLRQGHPRGXOH /HPRWFOp/,%5$5<VXLYLGXQRP PXOPDWLQGLTXHjO¶pGLWHXUGHOLHQGHFUpHU XQHGOOGRQWOHQRPVHUDPXOPDW3DUDOOqOHPHQWO¶pGLWHXUGHOLHQFUpHXQHELEOLRWKqTXH G¶LPSRUWDWLRQ /H QRP PXOPDW UHSUpVHQWH OH QRP TXL VHUD XWLOLVp SRXU DSSHOHU OD IRQFWLRQjSDUWLUGH0DWODE /HPRWFOp(;32576 LQWURGXLW XQH VHFWLRQ TXL FRQWLHQW XQH RX SOXVLHXUV GHILQLWLRQVUHSUpVHQWDQWGHVGRQQpHVRXGHVIRQFWLRQVH[SRUWpHV'DQVQRWUHFDVLOQ¶\D TX¶XQHGpILQLWLRQUHSUpVHQWDQWXQHIRQFWLRQPH[)XQFWLRQ &HWWHSURFpGXUHGHFUpDWLRQGHILFKLHUGHGpILQLWLRQGHPRGXOHHVWLGHQWLTXHSRXU OHVSURMHW0(;&8%/$6HW0(;&8))7

 &UpDWLRQ G¶XQ ILFKLHU FRGH 0(;&8'$ 0(;&8%/$6 RX 0(; &8))7 3RXU FUpHU OH ILFKLHU TXL FRQWLHQGUD OH FRGH FOLTXHU DYHF OH ERXWRQ GURLW GH OD VRXULVVXU)LFKLHUVVRXUFHVGDQVO¶([SORUDWHXUGHVROXWLRQVGH96SXLVVXUOHVPHQXVHW VRXVPHQXVVXLYDQWV$MRXWHUĺ1RXYHOpOpPHQW

 

&HWWHSURFpGXUHGH FUpDWLRQGHILFKLHUFRGH0(;&8'$HVWLGHQWLTXH SRXUOHV SURMHW0(;&8%/$6HW0(;&8))7

 'DQVODIHQrWUHTXLV¶RXYUH • &OLTXHUVXUODFDWpJRULH&RGHSRXUODVpOHFWLRQQHU VLHOOHQHO¶HVWSDVGpMj  • &OLTXHUVXUOHPRGqOH)LFKLHU& FSS SRXUOHVpOHFWLRQQHU V¶LOQHO¶HVWSDVGpMj 

 • (QWUHUOHQRPGXILFKLHUTXLFRQWLHQGUDOHSURJUDPPHVXLYLGHO¶H[WHQVLRQFXGDQV OHFKDPS1RP • 'RQQHUO¶HPSODFHPHQWRVHWURXYHUDOHILFKLHUGDQVOHFKDPS(PSODFHPHQW • &OLTXHUVXU$MRXWHU

 

 

 &RQILJXUDWLRQ G¶XQ ILFKLHU 0(;&8'$ 0(;&8%/$6 RX 0(; &8))7  3URFpGXUHGHFRQILJXUDWLRQ 8QHIRLVOHILFKLHUGXFRGHFUppLOGRLWrWUHFRQILJXUp'DQVXQSUHPLHUWHPSVLO IDXWGRQFFRQILJXUHUOHILFKLHUVRXUFHFRQWHQDQWOHFRGH • &OLTXHUGURLWVXUOHQRPGXILFKLHU PXOPDWFX GDQVO¶H[SORUDWHXUGHVROXWLRQVSXLV VXU3URSULpWpV

  'DQV OD IHQrWUH GH SURSULpWpV XQ PRGH GH FRQILJXUDWLRQ GRLW G¶DERUG rWUH VpOHFWLRQQpDYDQWGHUHPSOLUOHVGLIIpUHQWVFKDPSV /D FRQILJXUDWLRQ HQ PRGH 'HEXJ SHUPHW GH FRUULJHU IDFLOHPHQW G¶pYHQWXHOOHV HUUHXUV GH SURJUDPPH PDLV RIIUH XQH H[pFXWLRQ PRLQV UDSLGH TXH OD FRQILJXUDWLRQ HQ PRGH 5HOHDVH TXL HOOH QH SHUPHW SDV GH IDLUH G¶H[pFXWLRQ SDV j SDV DYHF SRLQWV GH FRQWU{OH  &HWWH SURFpGXUH GH FRQILJXUDWLRQ GX ILFKLHU FRGH &8'$ HVW LGHQWLTXH SRXU OHV SURMHW0(;&8%/$6HW0(;&8))7 $WWHQWLRQ 'DQV OD IHQrWUH GH PRGLILFDWLRQV GHV SURSULpWpV GX SURJUDPPH WRXMRXUV YpULILHU TXHO PRGH GH FRQILJXUDWLRQ 'HEXJ RX 5HOHDVH  HVW VpOHFWLRQQp FDU j FKDTXH RXYHUWXUH GH OD IHQrWUH GH SURSULpWpV F¶HVW WRXMRXUV OH PRGH DFWLI TXL HVW VpOHFWLRQQpSDUGpIDXWFHTXLSHXWrWUHVRXUFHGHFRQIXVLRQ3HQGDQWOHGpURXOHPHQWGHV GLIIpUHQWHVpWDSHVGHFRQILJXUDWLRQLOHVWpJDOHPHQWWUqVFRQVHLOOpGHFOLTXHUVXUO¶LF{QH $SSOLTXHUV\VWpPDWLTXHPHQWDSUqVFKDTXHFRQILJXUDWLRQGDQVXQPRGHGRQQp

 

• $OOHUGDQVOHVPHQXVHWVRXVPHQXVVXLYDQWV3URSULpWpVGHFRQILJXUDWLRQĺ(WDSHGH JpQpUDWLRQ SHUVRQQDOLVpH ĺ *pQpUDO SXLV GDQV OH FKDPS /LJQH GH FRPPDQGH DMRXWHU OHV OLJQHVVXLYDQWHV P (Q PRGH 'HEXJ  &8'$B%,1B3$7+ ?QYFFH[H FFELQ  9&,QVWDOO'LU ?ELQ  DUFK VPB SW[DVRSWLRQV Y F ;FRPSLOHU (+VF:QRORJR:S2G=,0'G , &8'$B,1&B3$7+  ,  ,&?0$7/$%?5E?H[WHUQ?LQFOXGH PD[UUHJFRXQW  R  &RQILJXUDWLRQ1DPH ?PXOPDWREMPXOPDWFX P (Q PRGH 5HOHDVH  &8'$B%,1B3$7+ ?QYFFH[H FFELQ  9&,QVWDOO'LU ?ELQ  DUFK VPB F ;FRPSLOHU (+VF:QRORJR:S2=L0'  , &8'$B,1&B3$7+  , ,&?0$7/$%?5E?H[WHUQ?LQFOXGH  PD[UUHJFRXQW R &RQILJXUDWLRQ1DPH ?PXOPDWREMPXOPDWFX • 3RXU FHV GHX[ FRQILJXUDWLRQV FKDQJHU OH QRP PXOPDWSDUOHQRPGXILFKLHU FRQWHQDQWOHFRGH • 3RXUFRQWLQXHUODFRQILJXUDWLRQGXILFKLHUVDQVFKDQJHUGHPHQXVHWVRXVPHQXV VpOHFWLRQQHU OH PRGH 7RXWHV OHV FRQILJXUDWLRQV SXLV HQWUHU OD OLJQH  &RQILJXUDWLRQ1DPH ?PXOPDWREMGDQVOHFKDPS6RUWLHV&HWDMRXWSHUPHWGHVSpFLILHUOD VRUWLHGDQVODTXHOOHVHUDJpQpUpOHILFKLHUREMHW &KDQJHUOHQRPPXOPDWSDUOHQRPGXILFKLHUFRQWHQDQWOHFRGH

  'HVFULSWLRQGpWDLOOpHGHODFRQILJXUDWLRQGXSURMHW /DV\QWD[HVSpFLILpHSDU QRP SHUPHWGHUpIpUHUODFKDvQHGHWH[WHGpVLJQpHjOD YDOHXUFRXUDQWHGHYDULDEOHVG¶HQYLURQQHPHQWV /HWHUPH&8'$B%,1B3$7+HVWGRQFXQHYDULDEOHG¶HQYLURQQHPHQWFRUUHVSRQGDQW j XQ FKHPLQ GRQQp j 9LVXDO & OXL LQGLTXDQW O¶HPSODFHPHQW GX FRPSLODWHXU &8'$ 19&&  SRXU SRXYRLU O¶H[pFXWHU &H WHUPH FRUUHVSRQG j XQ FKHPLQ VH WHUPLQDQW SDU ?&8'$?ELQF¶HVWjGLUHGDQVOHFDGUHGHFHSURMHW&?3URJUDP)LOHV?19,',$*38&RPSXWLQJ 7RRONLW?&8'$?Y?ELQ /H FKHPLQ H[DFW FRQWHQX GDQV &8'$B%,1B3$7+ VH WURXYH HQ VXLYDQWODSURFpGXUHGpFULWHSOXVEDV $QQH[H†  /HVRSWLRQVGXFRPSLODWHXUVRQWVSpFLILpHVSDUXQHEDUUHREOLTXH  RXXQWLUHW  

 

/DFRPPDQGHFFELQSHUPHWGHVSpFLILHUOHUpSHUWRLUHGDQVOHTXHOO¶H[pFXWDEOHGX FRPSLODWHXU K{WH UpVLGH 3DU GpIDXW FHW H[pFXWDEOH HVW GDQV OH FKHPLQ GH UHFKHUFKH FRXUDQWGHO¶H[pFXWDEOH /D YDULDEOH G¶HQYLURQQHPHQW 9&,QVWDOO'LU GpVLJQH O¶HPSODFHPHQW GH 9LVXDO & GDQVO¶RUGLQDWHXUHOOHFRUUHVSRQGGRQFDXFKHPLQ&?3URJUDP)LOHV?0LFURVRIW9LVXDO6WXGLR ?9& /H FKLIIUH  GH FH FKHPLQ FRUUHVSRQG DX QXPpUR GH YHUVLRQ LQWHUQH GH 9LVXDO 6WXGLR  7RXWHV OHV ELEOLRWKqTXHV XWLOLVpHV SDU 9LVXDO 6WXGLR VH WURXYHQW GDQV FH GRVVLHU /H FKHPLQ H[DFW FRQWHQX GDQV 9&,QVWDOO'LU VH WURXYH HQ VXLYDQW OD SURFpGXUH GpFULWHSOXVEDV $QQH[HV†  /HWHUPHDUFKVHUWjVSpFLILHUOHW\SHG¶DUFKLWHFWXUHGHSURFHVVHXUJUDSKLTXHSRXU OHTXHO OD FRPSLODWLRQ YD VH IDLUH &HWWH DUFKLWHFWXUH SHXW rWUH VRLW ©UpHOOHª VRLW ©YLUWXHOOHª SW[  /H FRGH SW[ UHSUpVHQWH XQ IRUPDW LQWHUPpGLDLUH TXL SHXW HQFRUH rWUH FRPSLOpHWRSWLPLVpSRXUXQHFODVVHVSpFLILTXHGHSURFHVVHXUVJUDSKLTXHVUpHOV VHORQOD YHUVLRQSW[ /¶DUFKLWHFWXUHVSpFLILpHSDUFHWWHRSWLRQHVWO¶DUFKLWHFWXUHTXLHVWDGRSWpHSDU ODFKDvQHGHFRPSLODWLRQMXVTX¶jO¶pWDSHSW[DORUVTXHO¶DUFKLWHFWXUH RXOHVDUFKLWHFWXUHV  VSpFLILpH V SDUO¶RSWLRQ±FRGHHVW VRQW DGRSWpH V SDUODGHUQLqUHpWDSHGHFRPSLODWLRQ GRQFSRWHQWLHOOHPHQWO¶pWDSHGXPRWHXUG¶H[pFXWLRQ /HVDUFKLWHFWXUHVGHFRPSLODWLRQSULVHHQFKDUJHDFWXHOOHPHQW  VRQW • OHVDUFKLWHFWXUHVYLUWXHOOHVFRPSXWHBFRPSXWHBFRPSXWHBFRPSXWHB • OHVDUFKLWHFWXUHV*38VPBVPBVPBHWVPB /HVQXPpURV HW FRUUHVSRQGHQWjODYHUVLRQ &RPSXWH&DSDELOLW\  GH SpULSKpULTXHV GH FDOFXO FRPSDWLEOH &8'$ (WDQW GRQQp TXH OHV SURJUDPPHV GH FH SURMHWVRQWXQLTXHPHQWGHVWLQpVjrWUHH[pFXWpVVXUFDUWH*7; 9HUVLRQ LOIDXW VSpFLILHU DX FRPSLODWHXU GH FRPSLOHU SRXU XQH DUFKLWHFWXUH *38 UpHOOH GH YHUVLRQ  '¶RO¶DMRXWGHDUFK VPBGDQVODOLJQHGHFRPPDQGH&HWWHRSWLRQHVWXWLOHGDQVOHFDV ± WHO TXH GDQV FHWWH pWXGH GH &8'$Œ ± R RQ YHXW IDLUH GHV FDOFXOV HPSOR\DQW GHV QRPEUHVIORWWDQWVGRXEOHSUpFLVLRQ6LFHWWHRSWLRQQ¶HVWSDVXWLOLVpHSRXUXQSURJUDPPH SUpYX DYHF GHV GRXEOH RQ REWLHQW OH ZDUQLQJ 'RXEOH LV QRW VXSSRUWHG 'HPRWLQJ WR IORDW & HVWjGLUHTXHSDUGpIDXWODGRXEOHSUpFLVLRQQ¶HVWSDVSULVHHQFKDUJHHWHVWFRQYHUWLH HQVLPSOHSUpFLVLRQDYDQWOHFDOFXO /H WHUPH SW[DVRSWLRQV VHUW j VSpFLILHU GHV RSWLRQV GLUHFWHPHQW j O¶DVVHPEOHXU G¶RSWLPLVDWLRQ SW[ /H WHUPH ±Y HVW XQH RSWLRQ TXL VHUW j OLVWHU OHV FRPPDQGHV GH FRPSLODWLRQJpQpUpHVSDUOHSLORWHGHFRPSLODWHXUPDLVQHVXSSULPHSDUOHXUH[pFXWLRQ &HWWH RSWLRQ HVW SDUWLFXOLqUHPHQW XWLOH SRXU FRQQDvWUH OH QRPEUH GH UHJLVWUHV HPSOR\pV ORUVGHODSKDVHGHGpYHORSSHPHQWHWGHGpERJDJH GRQFVXUWRXWHQPRGH'HEXJ &HWWH RSWLRQQ¶DSOXVG¶XWLOLWpHQPRGH5HOHDVH /D FRPPDQGH F FRUUHVSRQG j XQH SKDVH GH FRPSLODWLRQ GHPDQGDQW DX FRPSLODWHXU GH WUDQVIRUPHU OH ILFKLHU F HQ ILFKLHU REMHW /H VXIIL[H GX QRP GX ILFKLHU VRXUFHpWDQWUHPSODFpSDUREM /HWHUPH±;FRPSLOHUSHUPHWGHVSpFLILHUGHVRSWLRQVGLUHFWHPHQWDXFRPSLODWHXU /HWHUPH(+VFHVWFRQVWLWXpGHGHX[SDUWLHV • /HWHUPH(+ • /HVWHUPHVVHWFDSSHOpVDUJXPHQWV /H WHUPH (+ VSpFLILH OH PRGqOH GH JHVWLRQ GHV H[FHSWLRQV j XWLOLVHU SDU OH FRPSLODWHXUHWGpWUXLWOHVREMHWV&TXLVRQWKRUVGHSRUWpHVXLWHjO¶H[FHSWLRQ

 

/H WHUPH V UHSUpVHQWH OH PRGqOH GH JHVWLRQ GHV H[FHSWLRQV TXL LQWHUFHSWH XQLTXHPHQWOHVH[FHSWLRQV&HWLQGLTXHDXFRPSLODWHXUGHSUpVXPHUTXHOHVIRQFWLRQV &GHW\SHH[WHUQOqYHQWXQHH[FHSWLRQ /H WHUPH F V¶LO HVW XWLOLVp DYHF V (+VF  LQWHUFHSWH XQLTXHPHQW OHV H[FHSWLRQV &HWLQGLTXHDXFRPSLODWHXUGHSUpVXPHUTXHOHVIRQFWLRQV&GHW\SHH[WHUQQHOqYHQW MDPDLVXQHH[FHSWLRQ& /H WHUPH : IL[H OH QLYHDX G¶DYHUWLVVHPHQW JpQpUp SDU OH FRPSLODWHXU j  /D IRXUFKHWWHG¶DYHUWLVVHPHQWYDOLGHV¶pWHQGGHj • OHQLYHDXGpVDFWLYHWRXVOHVDYHUWLVVHPHQWV • OH QLYHDX  DIILFKH OHV DYHUWLVVHPHQWV JUDYHV /H QLYHDX  HVW OH QLYHDX G¶DYHUWLVVHPHQWSDUGpIDXWSRXUODOLJQHGHFRPPDQGH • OHQLYHDXDIILFKHWRXVOHVDYHUWLVVHPHQWVGHQLYHDXHWOHVDYHUWLVVHPHQWVPRLQV JUDYHVTXHOHQLYHDX • OHQLYHDXDIILFKHWRXVOHVDYHUWLVVHPHQWVGHQLYHDXHWWRXVOHVDXWUHV DYHUWLVVHPHQWVUHFRPPDQGpVSRXUGHVREMHFWLIVGHSURGXFWLRQ • OHQLYHDXDIILFKHWRXVOHVDYHUWLVVHPHQWVGHQLYHDXDLQVLTXHOHVDYHUWLVVHPHQWV LQIRUPDWLRQQHOVTXLSHXYHQWrWUHLJQRUpVVDQVULVTXHGDQVODSOXSDUWGHVFDV /HWHUPHQRORJRVXSSULPH • O¶DIILFKDJHGHODEDQQLqUHGHVLJQHDXGpPDUUDJHGXFRPSLODWHXU • O¶DIILFKDJHGHPHVVDJHVLQIRUPDWLRQQHOVSHQGDQWODFRPSLODWLRQ /HWHUPH:SGpWHFWHOHVSUREOqPHVGHSRUWDELOLWpELWV&HWHUPHHVW • GpVDFWLYpSDUGpIDXWGDQVOHFRPSLODWHXUELWVGH9LVXDO& • DFWLYpSDUGpIDXWGDQVOHFRPSLODWHXUELWVGH9LVXDO& /H WHUPH 2G GpVDFWLYH O¶RSWLPLVDWLRQ ,O GpVDFWLYH WRXWHV OHV RSWLPLVDWLRQV GX SURJUDPPHHWDFFpOqUHODFRPSLODWLRQ&HWWHRSWLRQHVWXQHRSWLRQSDUGpIDXW /H WHUPH 2 HVW XQH RSWLRQ TXL SHUPHW GH UpGXLUH OD WDLOOH GX FRGH RX G¶DXJPHQWHUODYLWHVVH&HWWHRSWLRQDXJPHQWHODYLWHVVHHQFUpDQWOHFRGHOHSOXVUDSLGH GDQVODPDMRULWpGHVFDV SDUDPqWUHSDUGpIDXWSRXUOHVYHUVLRQVUHOHDVH  /H WHUPH =, SURGXLW XQH EDVH GH GRQQpHV GX SURJUDPPH GDQV XQ IRUPDW TXL SUHQG HQ FKDUJH OD IRQFWLRQQDOLWp 0RGLILHU &RQWLQXHU &HWWH RSWLRQ HVW QpFHVVDLUH SRXU XWLOLVHUOHGpERJDJH0RGLILHU &RQWLQXHU 0RGLILHU &RQWLQXHUHVWXQHIRQFWLRQQDOLWpTXLIDLWJDJQHUGXWHPSVHQSHUPHWWDQW GH PRGLILHU OH FRGH VRXUFH SHQGDQW TXH OH SURJUDPPH HVW HQ PRGH DUUrW /RUVTX¶RQ UHSUHQGO¶H[pFXWLRQGXSURJUDPPHHQFKRLVLVVDQWXQHFRPPDQGHG¶H[pFXWLRQWHOOHTXH &RQWLQXH RX 6WHS OD IRQFWLRQQDOLWp 0RGLILHU &RQWLQXHU DSSOLTXH DXWRPDWLTXHPHQW OHV PRGLILFDWLRQV GX FRGH DYHF FHUWDLQHVOLPLWDWLRQVWRXWHIRLV&HODSHUPHWGHPRGLILHUOH FRGHSHQGDQWODVHVVLRQGHGpERJDJHDXOLHXGHGHYRLUDUUrWHUUHFRPSLOHUOHSURJUDPPH HQWLHUHWUHGpPDUUHUODVHVVLRQGHGpERJDJH /H WHUPH =L JpQqUH GHV LQIRUPDWLRQV GH GpERJDJH FRPSOqWHV &H WHUPH SURGXLW XQH EDVH GH GRQQpHV TXL FRQWLHQW GHV LQIRUPDWLRQV GH W\SH HW GHV LQIRUPDWLRQV V\PEROLTXHVGHGpERJDJHjXWLOLVHUDYHFOHGpERJXHXU/HVLQIRUPDWLRQVV\PEROLTXHVGH GpERJDJHLQFOXHQW • OHVQRPV • OHVW\SHVGHYDULDEOH • OHVIRQFWLRQV • OHVQXPpURVGHOLJQH

 

&HWHUPHQ¶DIIHFWHSDVOHVRSWLPLVDWLRQV&HSHQGDQW =LLPSOLTXHG¶DYRLUFKRLVL O¶RSWLRQ '(%8* /HVLQIRUPDWLRQVGHW\SHVRQWSODFpHVGDQVOHILFKLHU SGEHWQRQSDV GDQVOHILFKLHUREM /¶RSWLRQ=LGXFRPSLODWHXUVHUWjVWRFNHUOHVLQIRUPDWLRQVGHGpERJDJHGXILFKLHU REMGDQVXQHEDVH3'%/¶pGLWHXUGHOLHQVUHFKHUFKHG¶DERUGODEDVH3'%GHO¶REMHWGDQV OH FKHPLQ G¶DFFqV DEVROX pFULW GDQV OH ILFKLHU REM SXLV GDQV OH UpSHUWRLUH FRQWHQDQW OH ILFKLHUREM /¶RSWLRQ 0'G GpILQLW B'(%8* B07DLQVLTXHB'// HW LQGLTXH j O¶DSSOLFDWLRQ G¶XWLOLVHU OHV YHUVLRQV VSpFLILTXHV GH GpERJDJH PXOWLWkFKHV HW GOO GH OD ELEOLRWKqTXH GX PRWHXU G¶H[pFXWLRQ UXQWLPH  /H FRPSLODWHXU SODFH DXVVL OH QRP GH OD ELEOLRWKqTXH 069&57'OLEGDQVOHILFKLHUREM /¶RSWLRQ0'LQGLTXHjO¶DSSOLFDWLRQG¶XWLOLVHUOHVYHUVLRQVVSpFLILTXHVPXOWLWkFKHV HWGOOGHODELEOLRWKqTXHGXPRWHXUG¶H[pFXWLRQ&HWWHRSWLRQGpILQLWB07DLQVLTXHB'// HWLQGLTXHDXFRPSLODWHXUGHSODFHUOHQRPGHODELEOLRWKqTXH069&57OLEGDQVOHILFKLHU REM /¶RSWLRQ ±, VSpFLILH OHV FKHPLQV GH UHFKHUFKH LQFOXGH /H WHUPH ±, DMRXWH OH UpSHUWRLUHLQGLTXpSDUOHFKHPLQjODOLVWHGHVUpSHUWRLUHV&HUpSHUWRLUHHVWDMRXWpHQWrWH GHOLVWH /HWHUPH,´ &8'$B,1&B3$7+ ´SHUPHWGHGLUHj9LVXDO&G¶LQFOXUHODYDULDEOH G¶HQYLURQQHPHQW &8'$B,1&B3$7+ UHSUpVHQWDQW OH FKHPLQ GH O¶HPSODFHPHQW FRQWHQDQW OHV ILFKLHUV LQFOXGH GH &8'$Œ QpFHVVDLUHV DX IRQFWLRQQHPHQW GX SURJUDPPH &8'$B,1&B3$7+ FRUUHVSRQG DX FKHPLQ VH WHUPLQDQW SDU ?&8'$?LQFOXGH RX ?&8'$?LQF GRQF GDQV OH FDGUH GH FH SURMHW &?3URJUDP )LOHV?19,',$ *38 &RPSXWLQJ 7RRONLW?&8'$?Y?LQFOXGH /H FKHPLQ H[DFW FRQWHQX GDQV &8'$B,1&B3$7+ VH WURXYH HQ VXLYDQWODSURFpGXUHGpFULWHSOXVEDV $QQH[H†  /H WHUPH ,&?0$7/$%?5E?H[WHUQ?LQFOXGH SHUPHW GH GLUH j 9LVXDO & G¶LQFOXUH OH FKHPLQ &?0$7/$%?5E?H[WHUQ?LQFOXGH SRXU OXL SHUPHWWUH G¶DFFpGHU DX[ ILFKLHUV LQFOXGH GH 0DWODE QpFHVVDLUHV DX IRQFWLRQQHPHQW GX SURJUDPPH /H WHUPH ±, DMRXWHOHUpSHUWRLUHLQGLTXpSDUOHFKHPLQ&?0$7/$%?5E?H[WHUQ?LQFOXGHjODOLVWHGHV UpSHUWRLUHV&HUpSHUWRLUHHVWDMRXWpHQWrWHGHOLVWH,FLOHWHUPH,VSpFLILHXQILFKLHUGH UHFKHUFKHLQFOXGH /HWHUPH±PD[UUHJFRXQWHVWXQHRSWLRQSHUPHWWDQWGHVSpFLILHUOHQRPEUHPD[LPDO GH UHJLVWUHV TXH OHV IRQFWLRQV *38 SHXYHQW XWLOLVHU 8QH YDOHXU SOXV JUDQGH GDQV OHV OLPLWHV VSpFLILTXHV j XQH IRQFWLRQ  DXJPHQWHUD OD SHUIRUPDQFH GH WkFKHV *38 LQGLYLGXHOOHV TXL H[pFXWHQW FHWWH IRQFWLRQ &HSHQGDQW XQH YDOHXU SOXV pOHYpH GH FHWWH RSWLRQ UpGXLUD pJDOHPHQW OD WDLOOH GH EORF GH WkFKHV  PD[LPDOH UpGXLVDQW DLQVL OD TXDQWLWpGHSDUDOOpOLVPHGHVWkFKHVSDUFHTXHOHVUHJLVWUHVGHWkFKHVRQWDOORXpVjSDUWLU G¶XQHQVHPEOHOLPLWpGHUHJLVWUHVVXUFKDTXHSURFHVVHXUJUDSKLTXH&¶HVWSRXUTXRLXQH ERQQH YDOHXU GH PD[UUHJFRXQW HVW OH UpVXOWDW G¶XQ FRPSURPLV 6L FHWWH RSWLRQ Q¶HVW SDV VSpFLILpHDORUVDXFXQPD[LPXPQ¶HVWSULVHQFRPSWH GDQVODOLPLWHGHUHJLVWUHV  /HWHUPH R VSpFLILHOHQRPHWO¶HPSODFHPHQWGXILFKLHUJpQpUpSDUO¶pGLWHXUGH OLHQV ILFKLHUGHVRUWLH &HWHUPHHVWGRQFVXLYLGH &RQILJXUDWLRQ1DPH ?PXOPDWREMTXL FRPSRUWH&RQILJXUDWLRQ1DPH OHFKHPLQ F HVWjGLUH • VRLW&?XVHUV?SDROHWWL?3URMHW?(VVDLV0H[&XGD?PXOPDW?'HEXJ • VRLW&?XVHUV?SDROHWWL?3URMHW?(VVDLV0H[&XGD?PXOPDW?(PX'HEXJ • VRLW&?XVHUV?SDROHWWL?3URMHW?(VVDLV0H[&XGD?PXOPDW?(PX5HOHDVH • VRLW&?XVHUV?SDROHWWL?3URMHW?(VVDLV0H[&XGD?PXOPDW?5HOHDVH

 

VHORQODFRQILJXUDWLRQFRXUDQWHGDQV9LVXDO& /H WHUPH PXOPDWREM UHSUpVHQWH OH ILFKLHU JpQpUp j OD FRPSLODWLRQ /H WHUPH VXLYDQW PXOPDWFX UHSUpVHQWHOHILFKLHUVRXUFHXWLOLVpSRXUJpQpUHUOHILFKLHUREMHW/HFKHPLQ H[DFW FRQWHQX GDQV &RQILJXUDWLRQ1DPH VH WURXYH HQ VXLYDQW OD SURFpGXUH GpFULWH FL GHVVRXV

 3URFpGXUHSRXUFRQQDvWUHOHFRQWHQXG¶XQHYDULDEOHG¶HQYLURQQHPHQW 6HORQOHW\SHGHYDULDEOHG¶HQYLURQQHPHQWLOH[LVWHGHX[IDoRQVGHFRQQDvWUHOHXU FRQWHQX • VRLW HQ WDSDQW VHW GDQV O¶LQYLWH GH FRPPDQGH GH 9LVXDO 6WXGLR /¶LQYLWH GH FRPPDQGH GH 9LVXDO 6WXGLR VH WURXYH HQ DOODQW GDQV OH PHQX 'pPDUUHU ĺ 7RXV OHV SURJUDPPHVĺ9LVXDO&([SUHVV(GLWLRQĺ9LVXDO6WXGLR7RROVĺ,QYLWHGHFRPPDQGHV GH 9LVXDO 6WXGLR  3DUPL OHV QRPEUHXVHV YDULDEOHV G¶HQYLURQQHPHQW VH WURXYHQW HQ SDUWLFXOLHU 9&,QVWDOO'LU &8'$B%,1B3$7+HW&8'$B,1&B3$7+ PDLVSDV &RQILJXUDWLRQ1DPH 

 • VRLW HQ FOLTXDQW VXU O¶LF{QH ©«ª GDQV OH FKDPS /LJQH GH FRPPDQGH GDQV OHV SURSULpWpV GX ILFKLHU VRXUFH FRQWHQDQW OH FRGH SXLV VXU O¶LF{QH 0DFURV 3DUPL OHV QRPEUHXVHV YDULDEOHV G¶HQYLURQQHPHQW VH WURXYHQW HQ SDUWLFXOLHU 9&,QVWDOO'LU HW &RQILJXUDWLRQ1DPH PDLVSDV&8'$B%,1B3$7+QL&8'$B,1&B3$7+ 



 

  &RQILJXUDWLRQ G¶XQ SURMHW 0(;&8'$ 0(;&8%/$6 RX 0(; &8))7  3URFpGXUHGHFRQILJXUDWLRQ 8QHIRLVOHILFKLHUFRGHFRQILJXUpLOIDXWDXVVLFRQILJXUHUOHSURMHW3RXUFHOD • FOLTXHUGURLWVXUOHQRPGXSURMHWSXLVFOLTXHUVXU3URSULpWpV • GDQVODIHQrWUHTXLV¶RXYUHUHSUpVHQWDQWOHVSURSULpWpVGXSURMHWFKRLVLU7RXWHVOHV FRQILJXUDWLRQVGDQVOHFKDPS&RQILJXUDWLRQ 'DQV FHWWH IHQrWUH GH SURSULpWpV DOOHU GDQV OHV PHQXV VXLYDQWV 3URSULpWpV GH FRQILJXUDWLRQĺ*pQpUDOSXLVVpOHFWLRQQHU%LEOLRWKqTXHG\QDPLTXH GOO GDQVOHFKDPS7\SH GHFRQILJXUDWLRQSXLV$SSOLTXHU



151 

  (QVXLWH • $OOHUHQVXLWHGDQVOHVPHQXVHWVRXVPHQXVVXLYDQWV3URSULpWpVGHFRQILJXUDWLRQĺ && ĺ *pQpUDO HW HQWUHU OD OLJQH &?0$7/$%?5E?H[WHUQ?LQFOXGH &8'$B,1&B3$7+  GDQV OH FKDPS $XWUHV UpSHUWRLUHVLQFOXGH • &OLTXHUVXU$SSOLTXHU

 • $OOHU HQVXLWH GDQV OH PHQX GH FRQILJXUDWLRQ GX SUpSURFHVVHXU 3URSULpWpV GH FRQILJXUDWLRQĺ&&ĺ3UpSURFHVVHXUHWDMRXWHU DX[RSWLRQVGpMjSUpVHQWHV GDQV OHFKDPS'pILQLWLRQVGXSUpSURFHVVHXU P PRGH'HEXJ0$7/$%B0(;B),/(B:,1'2:608/0$7B(;32576 P PRGH5HOHDVH0$7/$%B0(;B),/(B:,1'2:608/0$7B(;32576 6LQpFHVVDLUHUHPSODFHU GDQVOHVGHX[PRGHV OHQRP08/0$7SDUXQQRPSOXV UHSUpVHQWDWLIGXSURMHWSDUH[HPSOH&))7GDQVOHFDVG¶XQSURJUDPPHGH))7

 

  • &OLTXHVXU$SSOLTXHU • $OOHUGDQVOHPHQXGHO¶pGLWHXUGHOLHQ3URSULpWpVGHFRQILJXUDWLRQĺ(GLWHXUGHOLHQV ĺ *pQpUDO HW VpOHFWLRQQHU HQ PRGH '(%8*  GDQV OH FKDPS $FWLYDWLRQ GHV OLHQV LQFUpPHQWLHOV2XL ,1&5(0(17$/ 

 • 'DQV OH PrPH PHQX HQWUHU OD OLJQH &?0$7/$%?5E?H[WHUQ?OLE?ZLQ?PLFURVRIW  &8'$B/,%B3$7+ GDQVOHFKDPS5pSHUWRLUHVGHELEOLRWKqTXHVVXSSOpPHQWDLUHV • 'DQV OH PHQX (QWUpH GHV SURSULpWpV GH O¶pGLWHXU GH OLHQ WDSHU GDQV OH FKDPS 'pSHQGDQFHVVXSSOpPHQWDLUHV D  SRXUXQSURMHW0(;&8'$ ƒ PRGH'HEXJFXGDUWOLEFXGDOLEFXWLO'OLEOLEPDWOLEOLEPH[OLEOLEP[OLE ƒ PRGH5HOHDVHFXGDUWOLEFXGDOLEFXWLOOLEOLEPDWOLEOLEPH[OLEOLEP[OLE E  SRXUXQSURMHW0(;&8%/$6

 

ƒ PRGH'HEXJFXGDUWOLEFXEODVOLEFXWLO'OLEOLEPDWOLEOLEPH[OLEOLEP[OLE ƒ PRGH5HOHDVHFXGDUWOLEFXEODVOLEFXWLOOLEOLEPDWOLEOLEPH[OLEOLEP[OLE F  SRXUXQSURMHW0(;&8))7 ƒ PRGH'HEXJFXGDUWOLEFXIIWOLEFXWLO'OLEOLEPDWOLEOLEPH[OLEOLEP[OLE ƒ PRGH5HOHDVHFXGDUWOLEFXIIWOLEFXWLOOLEOLEPDWOLEOLEPH[OLEOLEP[OLE • 'DQV OH PrPH PHQX WDSHU PXOPDWGHIGDQVOHFKDPS)LFKLHU GH GpILQLWLRQ GH PRGXOH PRGH 7RXWHV OHV FRQILJXUDWLRQV  HW UHPSODFHU PXOPDW SDU OH QRP GX SURJUDPPHVLQpFHVVDLUH



• (QUHJLVWUHUFHWWHFRQILJXUDWLRQHQFOLTXDQWVXU$SSOLTXHU

 'HVFULSWLRQGpWDLOOpHGHODSURFpGXUHGHFRQILJXUDWLRQGXSURMHW  'DQVOHPHQXSULQFLSDO /H FKRL[ GX W\SH GH FRQILJXUDWLRQ HQ %LEOLRWKqTXH G\QDPLTXH GOO SHUPHWGH SUpFLVHU j 9LVXDO & GH FUpHU XQH ELEOLRWKqTXH G\QDPLTXH j SDUWLU GX SURJUDPPH &8'$ TXLSRXUUDrWUHDSSHOpHSDU0DWODE 'DQV OH VRXVPHQX && ĺ *pQpUDO GRLYHQW rWUH OLVWpV OHV UpSHUWRLUHV LQFOXGH XWLOHVDXSURJUDPPHGDQVOHFKDPS$XWUHVUpSHUWRLUHVLQFOXGH • UpSHUWRLUH LQFOXGH GH 0DWODE &?0$7/$%?5E?H[WHUQ?LQFOXGH GDQV OHTXHO VH WURXYHPH[K  • UpSHUWRLUHLQFOXGHGH&8'$Œ&8'$B,1&B3$7+ GDQVOHTXHOVHWURXYHFXGDK  /HWHUPH&8'$B,1&B3$7+HVWXQHYDULDEOHG¶HQYLURQQHPHQWFRUUHVSRQGDQWjXQ FKHPLQ GRQQp j 9LVXDO & OXL LQGLTXDQW O¶HPSODFHPHQW GHV ILFKLHUV G¶HQWrWHV &H WHUPHFRUUHVSRQGjXQFKHPLQVHWHUPLQDQWSDU?LQFRX?LQFOXGHF¶HVWjGLUHGDQVOHFDGUH GHFHSURMHW&?3URJUDP)LOHV?19,',$*38&RPSXWLQJ7RRONLW?&8'$?Y?LQFOXGH/HFKHPLQ H[DFW FRQWHQX GDQV &8'$B,1&B3$7+ VH WURXYH HQ VXLYDQW OD SURFpGXUH GpFULWH GDQV OD FRQILJXUDWLRQGHILFKLHUDXVXMHWGHVYDULDEOHVG¶HQYLURQQHPHQW $QQH[H† 

 

 'DQVOHVSURSULpWpVGHFRQILJXUDWLRQGXSUpSURFHVVHXU /H V\PEROH B'(%8* HVW XQH PDFUR SHUPHWWDQW G¶DFWLYHU OHV IRQFWLRQQDOLWpV GH GpERJDJH j OD FRPSLODWLRQ &H V\PEROH LQGLTXH j O¶pGLWHXU GH OLHQV G¶LQFOXUH OHV LQIRUPDWLRQVGHGpERJDJHTXLDXURQWOHIRUPDWVSpFLILpSDUO¶XQGHVWHUPHVVXLYDQWV= =G=LRX=, 1'(%8*HVWFRPSRVpGHGHX[SDUWLHV • 1 • '(%8* 1 D SRXU EXW G¶DIILFKHU OHV FRPPDQGHV VDQV OHV H[pFXWHU OHV FRPPDQGHV GH SUpWUDLWHPHQWVRQWH[pFXWpHV /H WHUPH '(%8*HVWXQHRSWLRQTXLFUpHGHVLQIRUPDWLRQVGHGpERJDJH SRXUOH ILFKLHUH[HRXODGOO /HWHUPH0$7/$%B0(;B),/(HVWXQHGpILQLWLRQGHSUpSURFHVVHXUTXLUHQGSRVVLEOH ODFRPSLODWLRQHWODJpQpUDWLRQGHILFKLHUV0(;DYHFO¶HQYLURQQHPHQWGHGpYHORSSHPHQW LQWpJUp ,'( GH0LFURVRIW9LVXDO& /H WHUPH B:,1'2:6 HVW XQH YDULDEOH V\VWqPH LQFOXVH SRXU OD FRPSDWLELOLWp UpWURDFWLYHHWFRQWLHQWWRXMRXUVODYDOHXUYUDLHHQFDVG¶XWLOLVDWLRQGH9LVXDO)R[3UR /H WHUPH (;32576SHUPHWGHSUpVHQWHUXQHVHFWLRQ G¶XQH GpILQLWLRQ RX SOXV &KDTXHGpILQLWLRQHVWVXUXQHOLJQHVpSDUpH/HSURMHWGOOGpILQLW08/0$7B(;32576ORUV GH OD JHQHUDWLRQ 08/0$7B(;32576 HVW GpILQL SRXU GHV ILFKLHUV VRXUFHV JpQpUpV SRXU XQHELEOLRWKqTXHSDUWDJpH  'DQVOHVSURSULpWpVGHFRQILJXUDWLRQGHO¶pGLWHXUGHOLHQV /HWHUPH,1&5(0(17$/FRQWU{OHODIDoRQGRQWO¶pGLWHXUGHOLHQVJqUHOHVOLDLVRQV LQFUpPHQWLHOOHV /HWHUPH,1&5(0(17$/HVWLPSOLFLWHORUVTXH'(%8*HVWVSpFLILp 8QSURJUDPPHOLpGHIDoRQLQFUpPHQWLHOOHpTXLYDXWHQWHUPHVGHIRQFWLRQQDOLWpV jXQSURJUDPPHOLpGHIDoRQQRQLQFUpPHQWLHOOH7RXWHIRLVFRPPHLOVVRQWSUpSDUpVSRXU GHVOLHQVLQFUpPHQWLHOVjYHQLUOHVILFKLHUVH[pFXWDEOHVOLpVGHIDoRQLQFUpPHQWLHOOH H[H  RXOHVELEOLRWKqTXHVGHOLHQVG\QDPLTXHV GOO SUpVHQWHQWOHVFDUDFWpULVWLTXHVVXLYDQWHV • ,OVVRQWSOXVYROXPLQHX[TX¶XQSURJUDPPHOLpGHIDoRQQRQLQFUpPHQWLHOOHGXIDLW GX UHPSOLVVDJH GX FRGH HW GHV GRQQpHV /H UHPSOLVVDJH SHUPHW j O¶pGLWHXU G¶DXJPHQWHUODWDLOOHGHVIRQFWLRQVHWGHVGRQQpHVVDQVUHFUpHUOHILFKLHUH[H • ,OVSHXYHQWFRQWHQLUGHVWKXQNVGHEUDQFKHPHQWJpUDQWOHUpDGUHVVDJHGHVIRQFWLRQV YHUVOHVQRXYHOOHVDGUHVVHV 3RXU V¶DVVXUHU TXH OD JpQpUDWLRQ GH OD YHUVLRQ UHOHDVH QH FRQWLHQW SDV GH UHPSOLVVDJHVRXGHWKXQNVLOIDXWOLHUOHSURJUDPPHGHIDoRQQRQLQFUpPHQWLHOOH • 'DQV OH UpSHUWRLUH &?0$7/$%?5E?H[WHUQ?OLE?ZLQ?PLFURVRIW O¶pGLWHXU GH OLHQV WURXYHUDOHVELEOLRWKqTXHVVXLYDQWHV OLEPDWOLE OLEPH[OLEHWOLEP[OLE ELEOLRWKqTXHV QpFHVVDLUHV DX[ SDUWLHV 0(; GX SURJUDPPH SRXU TXH OH SURJUDPPH SXLVVH rWUH DSSHOpSDU0DWODE  • 'DQV OH UpSHUWRLUH  &8'$B/,%B3$7+  O¶pGLWHXU GH OLHQV WURXYHUD OD ELEOLRWKqTXH FXGDUWOLE ELEOLRWKqTXH UXQWLPH GH &8'$Œ  /H WHUPH &8'$B/,%B3$7+ HVW XQH YDULDEOH G¶HQYLURQQHPHQW FRUUHVSRQGDQW j XQ FKHPLQ GRQQp j 9LVXDO & OXL

 

LQGLTXDQWO¶HPSODFHPHQWGHVELEOLRWKqTXHVOLE&HWHUPHFRUUHVSRQGjXQFKHPLQ VH WHUPLQDQW SDU ?OLE RX FRQWHQDQW ?OLE F¶HVW j GLUH GDQV OH FDGUH GH FH SURMHW &?3URJUDP)LOHV?19,',$*38&RPSXWLQJ7RRONLW?&8'$?Y?OLE?:LQ/HFKHPLQH[DFW FRQWHQX GDQV &8'$B/,%B3$7+ VH WURXYH HQ VXLYDQW OD SURFpGXUH GpFULWH GDQV OD FRQILJXUDWLRQGHILFKLHUDXVXMHWGHVYDULDEOHVG¶HQYLURQQHPHQW $QQH[H†  /HVELEOLRWKqTXHVOLEVRQWOHVELEOLRWKqTXHVGRQWO¶pGLWHXUGHOLHQVDEHVRLQSRXU IDLUHO¶RSpUDWLRQGHOLDLVRQGXSURJUDPPH/¶pGLWHXUFKHUFKHUDFHVELEOLRWKqTXHVGDQVOHV UpSHUWRLUHVSUpFpGHPPHQWOLVWpV /H ILFKLHU GH GpILQLWLRQ GH PRGXOH PXOPDWGHI IRXUQLW j O pGLWHXU GH OLHQV GHV LQIRUPDWLRQVVXUOHVH[SRUWDWLRQVHWOHVDWWULEXWVDLQVLTXHG DXWUHVGRQQpHVFRQFHUQDQWOH SURJUDPPH GHYDQW rWUH OLp &H ILFKLHU HVW XWLOH ORUV GH OD JpQpUDWLRQ GH OD GOO GX SURJUDPPH6RQFRQWHQXHVWGpFULWGDQVO¶$QQH[H† 

 &UpDWLRQ HW FRQILJXUDWLRQ G¶XQ PRGH pPXODWLRQ SRXU SURMHW 0(; &8'$0(;&8%/$6RX0(;&8))7  'HVFULSWLRQJpQpUDOH /RUVTX¶RQYHXWWHVWHUXQSURJUDPPHPDLVTX¶RQQ¶DSDVGHFDUWHJUDSKLTXHVXU ODTXHOOHOHWHVWHULOHVWSRVVLEOHGHWHVWHUOHERQIRQFWLRQQHPHQWGXSURJUDPPHVXU&38 ELHQ TX¶LO VHUD pYLGHPPHQW SOXV OHQW  HQ O¶H[pFXWDQW GDQV XQ PRGH G¶pPXODWLRQ /H PRGH G¶pPXODWLRQ Q¶H[LVWDQW SDV SDU GpIDXW LO GHYUD rWUH FUpp VRXV GHX[ IRUPHV SDUWLFXOLqUHV • (PX'HEXJSRXUO¶pPXODWLRQHQPRGH'HEXJ • (PX5HOHDVHSRXUO¶pPXODWLRQHQPRGH5HOHDVH 'DQV9LVXDO&([SUHVVFOLTXHUVXUOD©IOqFKHYHUVOHEDVªVLWXpHjGURLWH GHODFRQILJXUDWLRQFRXUDQWH

 'DQVODFRORQQH&RQILJXUDWLRQFOLTXHUVXU1RXYHDX



Entrer EmuDebug dans le champ Nom de la fenêtre Nouvelle configuration de projet. Choisir ensuite Debug dans le champ Copier les paramètres à partir de :

Faire la même chose pour la configuration EmuRelease :

Ensuite cliquer sur OK, puis sur l’icône Fermer du Gestionnaire de configurations.

157 

8QH IRLV OHV PRGHV (PX'HEXJHW(PX5HOHDVH FUppV LO IDXW FRQILJXUHU FHOOHV GH OHXUVRSWLRQVTXLGLIIqUHQWGHVPRGHV UHVSHFWLYHPHQW 'HEXJHW5HOHDVH &HWWHOpJqUHPRGLILFDWLRQGHODFRQILJXUDWLRQVHIDLWSDUOHVpWDSHVVXLYDQWHV • $OOHU GDQV OHV PHQXV HW VRXVPHQXV VXLYDQWV GDQV OHV SURSULpWpV GX ILFKLHU 3URSULpWpVGHFRQILJXUDWLRQĺ(WDSHGHJpQpUDWLRQSHUVRQQDOLVpHĺ*pQpUDOSXLVGDQVOH FKDPS/LJQHGHFRPPDQGH P 3RXUXQSURMHW&8'$HQPRGH(PX'HEXJHW(PX5HOHDVHDMRXWHUGHYLFHHPX HQWUHFFELQ³ 9&,QVWDOO'LU ELQ´HW±F P 3RXU XQ SURMHW &8%/$6 HQ PRGH (PX'HEXJHW(PX5HOHDVH DMRXWHU  OFXEODVHPXHQWUHFFELQ³ 9&,QVWDOO'LU ELQ´HW±F P 3RXUXQSURMHW&8))7HQPRGH(PX'HEXJHW(PX5HOHDVHDMRXWHUOFXIIWHPX HQWUHFFELQ³ 9&,QVWDOO'LU ELQ´HW±F P 5HPSODFHU2SDU2GSRXUOHPRGH(PX5HOHDVHXQLTXHPHQWHWTXHOTXHVRLW OHW\SHGHSURMHW &8'$&8%/$6RX&8))7  • $OOHUHQVXLWHGDQVOHVSURSULpWpVGXSURMHWHW P 'DQV OHV PHQXV HW VRXVPHQXV 3URSULpWpV GH FRQILJXUDWLRQ ĺ && ĺ 2SWLPLVDWLRQ UHPSODFHU $XJPHQWHU OD YLWHVVH 2 SDU'pVDFWLYp 2G  SRXU OH PRGH(PX5HOHDVHXQLTXHPHQWGDQVOHFKDPS2SWLPLVDWLRQ P 'DQV OHV PHQXV HW VRXVPHQXV (GLWHXU GH OLHQV ĺ (QWUpH ĺ GpSHQGDQFHV VXSSOpPHQWDLUHV SRXU OHV PRGHV (PX'HEXJ HW (PX5HOHDVH XQLTXHPHQW UHPSODFHUOHVELEOLRWKqTXHV ƒ FXEODVOLESDUFXEODVHPXOLE ƒ FXIIWOLESDUFXIIWHPXOLE  'HVFULSWLRQ GpWDLOOpH GH OD FUpDWLRQ HW FRQILJXUDWLRQ GHV GHX[ PRGHV G¶pPXODWLRQ /HIDLWGHFKRLVLU'HEXJGDQV&RSLHUOHVSDUDPqWUHVjSDUWLUGHVLJQLILHTXH9LVXDO &YDFRSLHUOHFRQWHQXGHODFRQILJXUDWLRQ'HEXJSRXUODPHWWUHGDQVODFRQILJXUDWLRQ (PX'HEXJ &HFL SHUPHW GH JDJQHU GX WHPSV HQ pYLWDQW GH UHIDLUH XQH ORQJXH FRQILJXUDWLRQ FRQWHQDQWGHQRPEUHX[SDUDPqWUHVLGHQWLTXHV SXLVTX¶LOVXIILUDHQVXLWHGH PRGLILHUXQLTXHPHQWOHVSDUDPqWUHVTXLGLIIqUHQWUpHOOHPHQWHQWUH'HEXJHW(PX'HEXJ /D PrPH UHPDUTXH HVW YDODEOH SRXU OD FRQILJXUDWLRQ GH (PX5HOHDVH FRSLpH j SDUWLUGHODFRQILJXUDWLRQGH5HOHDVH /H WHUPH GHYLFHHPX HVW XQH RSWLRQ GX FRPSLODWHXU 19&& TXL JpQqUH GX FRGH SRXU OD ELEOLRWKqTXH G¶pPXODWLRQ *3*38 &HWWH RSWLRQ HVW SDUWLFXOLqUHPHQW XWLOH ORUVTX¶RQQ¶DSDVGHFDUWHJUDSKLTXHFRPSDWLEOH&8'$PDLVTX¶RQYHXWTXDQGPrPH HVVD\HUG¶H[pFXWHUXQSURJUDPPH&HWWHRSWLRQIDLWOHOLHQDYHF XQ pPXODWHXU GH FDUWH JUDSKLTXH&8'$TXLV¶H[pFXWHVXUO¶K{WH OH&38  /¶pPXODWHXUGHYLHQWODFLEOHSRXU WRXV OHV DSSHOV &8'$ HW H[pFXWH OH NHUQHO /H SURJUDPPH V¶H[pFXWHUD GH OD PrPH PDQLqUHPDLVSOXVOHQWHPHQWTXHVLXQHFDUWHJUDSKLTXHpWDLWSUpVHQWH &H SURMHW D pWp HQWLqUHPHQW EDVp VXU OHV LQVWUXFWLRQV GH O¶$3, GX PRWHXU G¶H[pFXWLRQ UXQWLPH &8'$,OH[LVWHXQDXWUHMHXG¶LQVWUXFWLRQTXLV¶XWLOLVHSDUO¶$3, GX SLORWH &8'$ /H PRGH pPXODWLRQ Q¶H[LVWH SDV ORUVTX¶RQ XWLOLVH O¶$3, GX SLORWH &8'$

 &RQILJXUDWLRQGH0$7/$%SRXUO¶H[pFXWLRQG¶XQSURMHW0(;&8'$ 0(;&8%/$60(;&8))7RXDXWUH 

 

8QHIRLVOHSURMHWHWOHILFKLHUFRGHFRQILJXUpVVLOHFRGHHVWSUrWLOQHUHVWHSOXV TX¶j OH FRPSLOHU JpQpUHU OD VROXWLRQ HW O¶H[pFXWHU /H SOXV UDSLGH HVW G¶XWLOLVHU OHV UDFFRXUFLVFODYLHU • FRPSLOHU&WUO) • JpQpUHU) • H[pFXWHU&WUO) /RUV GH OD SUHPLqUH H[pFXWLRQ G¶XQ QRXYHDX SURMHW GDQV 9LVXDO &  OD IHQrWUHVXLYDQWHV¶RXYUH

 'DQV FHWWH IHQrWUH GRQQHU OH FKHPLQ G¶XQ ILFKLHU H[pFXWDEOH F HVWjGLUH 0$7/$% GDQV FH FDV /RUV GH WRXWHV OHV H[pFXWLRQV GH FH SURJUDPPH GDQV OD PrPH FRQILJXUDWLRQOHFKHPLQUHVWHUDHQUHJLVWUpHWQ¶DXUDGRQFSDVEHVRLQG¶rWUHGHQRXYHDX PHQWLRQQp /RUVG¶H[pFXWLRQVXOWpULHXUHVFHPHVVDJHQ¶DSSDUDvWUDSOXV6¶LOHVWQpFHVVDLUHGH FKDQJHUOHFKHPLQGXILFKLHUH[pFXWDEOH GRQFGH0$7/$% LOHVWHQFRUHSRVVLEOHGHOH IDLUHHQDOODQWGDQVOHVSURSULpWpVGXSURMHWPXOPDWHWHQFOLTXDQWVXUGpERJDJHGDQVOH PHQX3URSULpWpVGHFRQILJXUDWLRQ,OVXIILWHQVXLWHGHVSpFLILHUOHFKHPLQFRUUHFWGDQVOHTXHO VH WURXYH 0$7/$%H[H $WWHQWLRQ j ELHQ FKRLVLU 7RXWHV OHV FRQILJXUDWLRQV 'HEXJ (PX'HEXJHWF GDQV&RQILJXUDWLRQDYDQWGHFOLTXHUVXU$SSOLTXHU

 (QVXLWHVLRQYHXWFRPSDUHUOHVSHUIRUPDQFHVG¶XQSURJUDPPH&8'$DYHFOHV SHUIRUPDQFHVPD[LPDOHVGX&38RQSHXWFKRLVLUGHFRQILJXUHU0$7/$%GHIDoRQjFH

 

TX¶LOV¶H[pFXWHVXUSOXVLHXUVF°XUVGX&38/H&38XWLOLVpGDQVOHFDGUHGHFHPpPRLUH FRPSRUWHF°XUVGRQFSRXUFRQILJXUHU0$7/$%DOOHUGDQVOHVPHQXVHWVRXVPHQXV VXLYDQWVGH0$7/$%)LOHĺ3UHIHUHQFHVĺ*HQHUDOĺ0XOWLWKUHDGLQJHWFRFKHU • (QDEOHPXOWLWKUHDGHGFRPSXWDWLRQSRXUDXWRULVHUOHFDOFXOPXOWLWkFKH • SXLV P $XWRPDWLFRX P 0DQXDOHWWKUHDGV



 

$QQH[H 2XWLOVGHGpYHORSSHPHQW&8'$

'DQVOHNLWGHGpYHORSSHPHQW&8'$ &8'$7RRONLW LOH[LVWHG¶DXWUHVRXWLOVHW ELEOLRWKqTXHVTXLQ¶RQWSDVpWpXWLOLVpVGDQVFHSURMHW/HEXWGHFHWWHDQQH[HHVWGRQFGH SUpVHQWHUUDSLGHPHQWFHVIRQFWLRQQDOLWpVVXSSOpPHQWDLUHV

 $XWUHVELEOLRWKqTXHVGLVSRQLEOHV

,OH[LVWHGHQRPEUHXVHVDXWUHVELEOLRWKqTXHV/HVSOXVXWLOHVVRQW • /DELEOLRWKqTXH&85$1'SRXUJpQpUHUGHVQRPEUHVDOpDWRLUHV • /DELEOLRWKqTXH&863$56(SRXUJpUHUOHVPDWULFHVFUHXVHV

 3URFpGXUHGHGpERJDJHG¶XQSURJUDPPH0(;&8'$PXOWLWkFKHVRXV 9LVXDO& 3RXUGpERJXHUXQSURJUDPPHPXOWLWkFKHVXLYUHODSURFpGXUHVXLYDQWH • 6pOHFWLRQQHUOHPRGH'HEXJGDQVODEDUUHG¶RXWLOVGH9LVXDO& • 3RVHU GHV SRLQWV G¶DUUrWV GHYDQW FKDTXH LQVWUXFWLRQ DYDQW OHVTXHOOHV RQ VRXKDLWH V¶DUUrWHUDYHF%DVFXOHUOHSRLQW G¶DUUrWGDQVODUXEULTXH'pERJXHUGXPHQXGH9LVXDO &RXELHQSOXVVLPSOHPHQWHQDSSX\DQWVXUODWRXFKH) UDFFRXUFLFODYLHU  • &OLTXHU VXU ([pFXWHU VDQV GpERJDJH GDQV OD UXEULTXH 'pERJXHU GX PHQX GH 9LVXDO &RXELHQSOXVVLPSOHPHQWHQDSSX\DQWVXUOHVWRXFKHV&WUO) • /RUVTXHOHFXUVHXUGHODIHQrWUHGHFRPPDQGHGH0$7/$%DSSDUDvWUHWRXUQHUVRXV 9LVXDO & HW FOLTXHU VXU $WWDFKHU DX SURFHVVXV GDQV OD UXEULTXH 2XWLOV RX GDQV OD UXEULTXH'pERJXHUGXPHQXGH9LVXDO& • &OLTXHUVXUO¶DSSOLFDWLRQ0$7/$%H[HGDQVODOLVWHGHSURFHVVXVTXLDSSDUDvWSXLVVXU $WWDFKHU • 5HWRXUQHUVRXV0$7/$%HWGRXEOHFOLTXHUVXUOHUpSHUWRLUH 'HEXJGDQVODIHQrWUH 5pSHUWRLUHFRXUDQW &XUUHQW'LUHFWRU\  • /DQFHUOHSURJUDPPH0$7/$%GDQVOHTXHOOHSURJUDPPH0(;&8'$HVWDSSHOp • 9LVXDO&UpDSSDUDvWDORUVDXWRPDWLTXHPHQWDYHFXQHIOqFKHVXUOHSUHPLHUSRLQW G¶DUUrW/HSURJUDPPHDpWpH[pFXWpMXVTX¶jFHSRLQWG¶DUUrW • 3RXUSDVVHUDXSRLQWG¶DUUrWVXLYDQWFOLTXHUVXU&RQWLQXHUGDQVODUXEULTXH'pERJXHU GXPHQXGH9LVXDO&RXELHQSOXVVLPSOHPHQWDSSX\HUVXUODWRXFKH) • 3RXUIDLUHGXSDVjSDVHQWUHOHVSRLQWVG¶DUUrWFOLTXHUVXU3DVjSDVSULQFLSDOGDQVOD UXEULTXH'pERJXHUGXPHQXGH9LVXDO&RXELHQSOXVVLPSOHPHQWDSSX\HUVXUOD WRXFKH) • 'DQVODIHQrWUHGXEDVjJDXFKH WRXMRXUVGDQV9LVXDO& RQSHXWYRLUXQHIHQrWUH GDQVODTXHOOHHVWDIILFKpHVHORQO¶RQJOHWVpOHFWLRQQp P ODYDOHXUFRXUDQWHGHVYDULDEOHVDXWRPDWLTXHV P ODYDOHXUFRXUDQWHGHVYDULDEOHVORFDOHV P O¶pWDWGHVWkFKHVFRXUDQWHVVRXVO¶RQJOHW7KUHDGV P ODOLVWHGHVELEOLRWKqTXHVG\QDPLTXHV GOO XWLOLVpHVDXSRLQWG¶DUUrWVRXVO¶RQJOHW 0RGXOHV • 8QHIRLVOHGpERJDJHWHUPLQpFOLTXHUVXU$UUrWHUOHGpERJDJH YLVLEOHVHXOHPHQWDX PRPHQWGXGpERJDJH GDQVODUXEULTXH'pERJXHUGXPHQXGH9LVXDO&RXELHQ SOXVVLPSOHPHQWHQDSSX\DQWVXUODWRXFKH0DM)

 

 $XWUHVRXWLOVGHGpYHORSSHPHQW  &DOFXODWHXUGHWDX[G¶RFFXSDWLRQ &8'$RFFXSDQF\FDOFXODWRU   3UpVHQWDWLRQ /H FDOFXODWHXU GH WDX[ G¶RFFXSDWLRQ &8'$ 2FFXSDQF\ &DOFXODWRU HVWXQ WDEOHDX([FHOIRXUQLDYHFOH&8'$7RRONLW,OVHWURXYHGRQFGDQVOHUpSHUWRLUHGX&8'$ 7RRONLW6¶LOQ¶\HVWSDVSUpVHQWODGHUQLqUHYHUVLRQSHXWrWUHWpOpFKDUJpHVXUOHVLWHGH 19,',$ 9pULILHU TXH OD YHUVLRQ GX FDOFXODWHXU XWLOLVp HVW VXIILVDPPHQW UpFHQWH OHV YHUVLRQVDQFLHQQHVQHSUHQDQWSDVHQFRPSWHOHVFDSDFLWpVGHFDOFXOGHHWVXSpULHXUHV /DSOXVUpFHQWHGLVSRQLEOHHQGDWHGXMXLOOHWHVWODYHUVLRQ/DYHUVLRQHVW YLVLEOHVXUODOLJQHGHO¶RQJOHW&DOFXODWRUGHODIHXLOOHGHFDOFXO &HFDOFXODWHXUSHXWrWUHXWLOLVpSRXUGpWHUPLQHUVLORUVGXODQFHPHQWG¶XQNHUQHO OH QRPEUH GH WkFKHV SDU EORF HVW RSWLPDO RX QRQ 6RQ FRQWHQX Q¶HVW GLVSRQLEOH TX¶HQ ODQJXHDQJODLVH &HWDEOHDX([FHOFRPSRUWHSDJHVDFFHVVLEOHVGLUHFWHPHQW • VRLWSDUOHVRQJOHWVVLWXpVHQEDVGHIHXLOOH &DOFXODWRU+HOS*38'DWDHW&RS\ULJKW  /LFHQVH  • VRLWHQFOLTXDQWVXUOHVOLHQVK\SHUWH[WHV TXLUHQYRLHQWDX[RQJOHWVFRQFHUQpV   &H WDEOHDX SHUPHW REWHQLU j SDUWLU GH  GRQQpHV GH EDVH GH QRPEUHXVHV LQIRUPDWLRQV VXU OHV SDUDPqWUHV JpQpUpV SDU XQH FRQILJXUDWLRQ SDUWLFXOLqUH G¶XQ SURMHW &8'$ /HVGRQQpHVjHQWUHUVRQW • /DYHUVLRQGHSURFHVVHXU &RPSXWH&DSDELOLW\  • /DFRQILJXUDWLRQGHODWDLOOHGHODPpPRLUHSDUWDJpHHQRFWHWV 6KDUHG0HPRU\6L]H &RQILJ  • /HQRPEUHGHWkFKHVSDUEORFV 7KUHDGV3HU%ORFN  • /HQRPEUHGHUHJLVWUHVSDUWkFKHV 5HJLVWHUVSHU7KUHDG  • /DTXDQWLWpGHPpPRLUHSDUWDJpHSDUEORF HQRFWHWV  6KDUHG0HPRU\3HU%ORFN 

 5HFKHUFKHGHODFDSDFLWpGHFDOFXO /DFDSDFLWpGHFDOFXOGpSHQGGXW\SHGHSURFHVVHXUJUDSKLTXHSUpVHQWVXUODFDUWH JUDSKLTXH6HORQOHPRGqOHGHFDUWHJUDSKLTXHXWLOLVpHODYHUVLRQGHSURFHVVHXU FRPSXWH FDSDELOLW\ VHWURXYHGDQVO¶DQQH[H$GXJXLGHGHSURJUDPPDWLRQGH&8'$Œ6LRQQH FRQQDvWSDVOHPRGqOHGHFDUWHJUDSKLTXHSUpVHQWGDQVOH3&XWLOLVpLOHVWSRVVLEOHGHOH WURXYHU • 6RLW HQ FOLTXDQW GURLW VXU OH %XUHDX SXLV HQ DOODQW GDQV 3DQQHDX GH FRQILJXUDWLRQ 19,',$ĺ,QIRUPDWLRQV6\VWqPHĺ$IILFKDJHĺ(OHPHQWV • 6RLW HQ DOODQW GDQV OH PHQX GpPDUUHU ĺ 3DQQHDX GH FRQILJXUDWLRQ ĺ 3DQQHDX GH FRQILJXUDWLRQ19,',$ĺ,QIRUPDWLRQV6\VWqPHĺ$IILFKDJHĺ(OHPHQWV • 6RLW HQ p[pFXWDQW OH SURJUDPPH &8'$ DSUqV DYRLU DMRXWp OD IRQFWLRQ FXGD*HW'HYLFH3URSHUWLHV

 5HFKHUFKHGHODFRQILJXUDWLRQGHODWDLOOHGHODPpPRLUHSDUWDJpH 'DQV OHV SUpFpGHQWHV JpQpUDWLRQV G¶DUFKLWHFWXUH &8'$ YHUVLRQV      OD WDLOOH GH PpPRLUH SDUWDJpH pWDLW IL[pH j  NR SDU PXOWLSURFHVVHXU 6XU OHV DUFKLWHFWXUHV)HUPLXQHSDUWLHGHODPpPRLUHSDUWDJpHHVWSDUWDJpHDYHFXQHSDUWLHGHOD

 

PpPRLUH FDFKH / PDLV OD TXDQWLWp PD[LPDOH GH PpPRLUH SDUWDJpH HVW GH  NR /D UpSDUWLWLRQGHPpPRLUHHVWFRQILJXUDEOH SDUOHSURJUDPPHXU GHODPDQLqUHVXLYDQWH • VRLWNRGHPpPRLUHSDUWDJpHHWNRGHPpPRLUHFDFKH/ • VRLWNRGHPpPRLUHSDUWDJpHHWNRGHPpPRLUHFDFKH/

 5HFKHUFKHGXQRPEUHGHWkFKHVSDUEORF (QJpQpUDOOHQRPEUHGHWkFKHVSDUEORFHVWFRQQXGXSURJUDPPHXUSXLVTX¶LOD FKRLVLOXLPrPHOHVGLPHQVLRQVGHVEORFV 'DQVOHVUDUHVFDVROHSURJUDPPHXUQHFRQQDvWUDLWSDVOHQRPEUHGHWkFKHVSDU EORFLOSHXWOHVFRQQDvWUHHQH[pFXWDQWVRQSURJUDPPHDSUqVDYRLUDMRXWpXQHLQVWUXFWLRQ G¶H[WUDFWLRQ GH OD YDOHXU GH OD VWUXFWXUH SUpGpILQLH CMPDL%JN 8QH IRLV FRQQXHV OHV GLPHQVLRQVGHEORFLOVXIILWHQVXLWHGHOHVPXOWLSOLHUHQWUHHOOHVSRXUREWHQLUOHQRPEUH GHWkFKHVSDUEORF

 5HFKHUFKHGXQRPEUHGHUHJLVWUHVSDUWkFKHHWGHODTXDQWLWpGHPpPRLUHSDUWDJpH 3RXUGpWHUPLQHUOHQRPEUHGHUHJLVWUHVXWLOLVpVSDUWkFKHGDQVOHNHUQHORXELHQOD TXDQWLWpGHPpPRLUHSDUWDJpHUpHOOHPHQWXWLOLVpHLOVXIILWGHFRPSLOHUOHFRGHGXNHUQHO HQXWLOLVDQWO¶RSWLRQSW[DVRSWLRQV YGDQVODOLJQHGHFRPPDQGHGHODFRQILJXUDWLRQGX ILFKLHU&8'$ 'DQVO¶LQVWUXFWLRQSW[DVRSWLRQV YODSDUWLHSW[DVRSWLRQVHVWXQHLQVWUXFWLRQGH OLJQH GH FRPPDQGH SHUPHWWDQW GH VSpFLILHU GHV RSWLRQV GLUHFWHPHQWjO¶DVVHPEOHXU G¶RSWLPLVDWLRQSW[/DSDUWLHY PRGHYHUERVH GHO¶LQVWUXFWLRQFLGHVVXVHVWXQHRSWLRQ TXLSHUPHWGHOLVWHUOHVFRPPDQGHVGHFRPSLODWLRQJpQpUpHVSDUOHSLORWHGHFRPSLODWHXU PDLVQHVXSSULPHSDVOHXUH[pFXWLRQ/RUVTXHFHWWHRSWLRQHVWSUpVHQWHGDQVODOLJQHGH FRPPDQGHGXFRPSLODWHXUGHX[OLJQHVVXSSOpPHQWDLUHVDSSDUDLVVHQWGDQVODIHQrWUHGH VRUWLHGH9LVXDO&GXW\SH  QUYBTJOGP$PNQJMJOHFOUSZGVODUJPOh@;.BU.VM,FSOFM.BUSJY4@4@hGPShTN@h  QUYBTJOGP6TFESFHJTUFST  CZUFTTNFN CZUFTDNFN<>

2Q\WURXYHHQSDUWLFXOLHUOHQRPEUHGHUHJLVWUHVUpHOOHPHQWXWLOLVpV SFHJTUFST  HWODTXDQWLWpGHPpPRLUHSDUWDJpHUpHOOHPHQWXWLOLVpH  CZUFTTNFN  3RXU OHV DQFLHQQHV YHUVLRQV GH &8'$ŒLOHVW pJDOHPHQWSRVVLEOHG¶REWHQLUOD TXDQWLWp GH PpPRLUH SDUWDJpH UpHOOHPHQW XWLOLVpH HW OH QRPEUH GH UHJLVWUHV XWLOLVpV HQ RXYUDQWOHILFKLHUREMGXSURJUDPPHFRQFHUQpGDQVXQpGLWHXUGHWH[WHVLPSOHGXW\SH :RUG3DG QRQOLVLEOHVRXV:RUG 3DUPLOHVQRPEUHXVHVOLJQHVVHWURXYHXQSDUDJUDSKH GXW\SH @@@BSDIJUFDUVSF\TN@^ BCJWFSTJPO\^ NPEOBNF\DVCJO^ DPEF\  OBNF@;TRVBSF@FMFNFOUT1G4@J  MNFN  TNFN  SFH  CBS  CJODPEF\   YYDYBY   YDYYDEGEYDDD   YYYYD   YDYYEFYD   YFBYDYEFYBD

 

^ ^ 'DQVFHSDUDJUDSKHOHVGRQQpHVOHVSOXVXWLOHVVRQW • /¶DUFKLWHFWXUHSRXUODTXHOOHDpWpFRPSLOpOHSURJUDPPHHVWLGHQWLILpHSDUOHWHUPH GDQVOHWHUPHTN@ /¶DUFKLWHFWXUH  FRUUHVSRQG j OD YHUVLRQ GH SURFHVVHXU  'H PDQLqUH JpQpUDOH XQH DUFKLWHFWXUH [\ FRUUHVSRQG j XQH YHUVLRQ GH SURFHVVHXU[\ • /DTXDQWLWpGHPpPRLUHSDUWDJpHLGHQWLILpHSDUOHWHUPHTNFN • /HQRPEUHGHUHJLVWUHVXWLOLVpVLGHQWLILpSDUOHWHUPHSFH /D TXDQWLWp GH PpPRLUH SDUWDJpH XWLOLVpH HW OD TXDQWLWp GH UHJLVWUHV XWLOLVpV SHXYHQWpJDOHPHQWrWUHWURXYpVDYHFOH&RPSXWH9LVXDO3URILOHU $WWHQWLRQ ORUVTX¶RQ IHUPH OH FDOFXODWHXU GH WDX[ G¶RFFXSDWLRQ LO HVW V\VWpPDWLTXHPHQWGHPDQGpVLRQVRXKDLWHVDXYHJDUGHUOHVFKDQJHPHQWVFOLTXHUVXU1RQ VDXI VL RQ YHXW VDXYHJDUGHU XQ FHUWDLQ SURILO GH FRQILJXUDWLRQ SRXU XQH UDLVRQ SDUWLFXOLqUH

 &RPSXWH9LVXDO3URILOHU /H &RPSXWH9LVXDO3URILOHUHVWIRXUQLDYHFOH&8'$7RRONLWGDQVOHUpSHUWRLUH FRPSXWHSURI /H &RPSXWH 9LVXDO 3URILOHU HVW XQ RXWLO GH SURILODJH EDVp VXU XQH LQWHUIDFH XWLOLVDWHXU JUDSKLTXH HW TXL SHXW rWUH XWLOLVp SRXU PHVXUHU OD SHUIRUPDQFH G¶XQ SURJUDPPH &8'$ &HWWH DSSOLFDWLRQ UpDOLVH GHV PHVXUHV HW OHV DIILFKH VRXV IRUPH GH WDEOHDX[RXGHJUDSKLTXHV 3RXUIDLUHOHSURILODJHG¶XQSURJUDPPHVXLYUHSUpDODEOHPHQWOHVpWDSHVVXLYDQWHV GHFRQILJXUDWLRQGX&RPSXWH9LVXDO3URILOHU • $OOHUGDQV0$7/$%HWDMRXWHU2VJUjODILQGXSURJUDPPH0DWODE • $OOHU GDQV 9LVXDO & HW DMRXWHU DVEB5ISFBE&YJU  j OD ILQ GXSURJUDPPH &8'$&VLFHQ¶HVWSDVGpMjIDLW • /DQFHU&RPSXWH9LVXDO3URILOHU P VRLWHQDOODQWGDQVGpPDUUHUĺ7RXVOHVSURJUDPPHVĺ19,',$&RUSRUDWLRQĺ&8'$ 7RRONLWĺYĺ&RPSXWH9LVXDO3URILOHUĺ&RPSXWH9LVXDO3URILOHU P VRLW HQ SDVVDQW SDU OH SRVWH GH WUDYDLO GDQV XQ UpSHUWRLUH QRPPp FRPSXWHSURI &?3URJUDP)LOHV?19,',$*38&RPSXWLQJ7RRONLW?&8'$?Y?FRPSXWHSURI?ELQ • $WWHQWLRQSOXVLHXUVYHUVLRQVGH3URILOHUH[LVWHQW,OHVWFRQVHLOOpG¶XWLOLVHUODGHUQLqUH YHUVLRQ3RXUWURXYHUODYHUVLRQLOVXIILWGHFOLTXHUVXU$ERXW&RPSXWH9LVXDO3URILOHU GDQVOHPHQX+HOSGX&RPSXWH9LVXDO3URILOHU • 'DQVOH&RPSXWH9LVXDO3URILOHUFOLTXHUVXU1HZGDQVOHPHQX)LOH • 'RQQHU XQ QRP DX SURMHW GH SURILODJH QRP GLIIpUHQW GX QRP XWLOLVp GDQV 9LVXDO & GDQV3URMHFW1DPH • (QWUHUOHFKHPLQGXUpSHUWRLUHGDQVOHTXHOOHVILFKLHUVGXSURMHWVHURQWVDXYHJDUGpV GDQV3URMHFW/RFDWLRQ

 

 • &OLTXHUVXU2. • 'DQVODIHQrWUH6HVVLRQVHWWLQJVTXLDSSDUDvWDOOHUGDQVO¶RQJOHW6HVVLRQ • 'DQV6HVVLRQ1DPHOHFKLIIUHSUpVHQWGDQVOHQRPGHODVHVVLRQHVWLQFUpPHQWpSDU GpIDXWjFKDTXHQRXYHOOHVHVVLRQ • (QWUHU GDQV /DXQFK OH QRP GX ORJLFLHO j SURILOHU HW VRQ FKHPLQ &0$7/$%5EELQZLQ0$7/$%H[H • (QWUHU GDQV :RUNLQJ 'LUHFWRU\ OH FKHPLQ GX UpSHUWRLUH GH WUDYDLO j XWLOLVHU SRXU H[pFXWHU OH ORJLFLHO VSpFLILp GDQV /DXQFK &XVHUVSDROHWWL3URMHW(VVDLV0H[&XGDPXOPDW'HEXJ • (QWUHU GDQV $UJXPHQWV OHV DUJXPHQWV GH OLJQH GH FRPPDQGH j SDVVHU DX ORJLFLHO VSpFLILpGDQV/DXQFKUPP • $MRXWHUQRMYPGDQV$UJXPHQWVSRXUUpFXSpUHUOHVUpVXOWDWV • (QWUHU GDQV 0D[ ([HFXWLRQ 7LPH OD GXUpH PD[LPDOH SRXU ODTXHOOH &RPSXWH 9LVXDO 3URILOHU DWWHQG OD ILQ G¶H[pFXWLRQ GX ORJLFLHO VSpFLILp GDQV /DXQFK F HVWjGLUH  6HFV$SUqVFHWWHGXUpHOLPLWHO¶H[pFXWLRQGXORJLFLHOHVWDEDQGRQQpH • /DLVVHUODFDVH(QDEOHSURILOLQJDWDSSOLFDWLRQODXQFKFRFKpHFDUVLQRQOHSURILODJHQH VHUDLWSDVH[pFXWpORUVGHO¶H[pFXWLRQGXORJLFLHOVSpFLILpGDQV/DXQFK • 'DQV OHV DXWUHV RQJOHWV OHV RSWLRQV FRFKpHV UHSUpVHQWHQW WRXV OHV SDUDPqWUHV TXL YRQWrWUHPHVXUpVORUVGHO¶H[pFXWLRQGXSURJUDPPH0(;&8'$VRXV0$7/$% &RFKHU RX GpFRFKHU OHV RSWLRQV VHORQ OHV EHVRLQV GH PHVXUH /H QRPEUH G¶H[pFXWLRQV TXH OH SURILOHU UpDOLVHUD HVW SURSRUWLRQQHO j OD TXDQWLWp G¶RSWLRQV FRFKpHV • &OLTXHUVXU/DXQFK • 6LRQFOLTXHVXU2NjODSODFHGH/DXQFKOHVLQIRUPDWLRQVHQWUpHVVRQWHQUHJLVWUpHVHW LOHVWSRVVLEOHGHOHVUHWURXYHUHQFOLTXDQWVXUO¶LF{QH 6HVVLRQ 6HWWLQJVRXHQDOODQW GDQVOHPHQX6HVVLRQĺ6HWWLQJV

 

 'DQV OH FDV RX RQ XWLOLVH XQH GHV SUHPLqUHV YHUVLRQV GH &8'$ΠOD IHQrWUH 6HVVLRQ 6HWWLQJVDSSDUDvWUDFRPPHGDQVODILJXUHFLGHVVRXV

 8QH IRLV OH SURILODJH H[pFXWp RQ SHXW \ WURXYHU GH QRPEUHXVHV LQIRUPDWLRQV XWLOHVHQSDUWLFXOLHU • /DWDLOOHGHVEORFV HQYZHW[  • /DWDLOOHGHODJULOOH P HQYZHW[SRXUOHVYHUVLRQVOHVSOXVUpFHQWHVGH&8'$ŒRX P YHWZVHXOHPHQWSRXUOHVYHUVLRQVOHVPRLQVUpFHQWHV  • /DTXDQWLWpGHPpPRLUHSDUWDJpHXWLOLVpH • /HQRPEUHGHUHJLVWUHVXWLOLVpVSDUWkFKH • /HVWHPSVG¶H[pFXWLRQGXNHUQHO HQȝV HWGHFKDTXHWUDQVIHUWPpPRLUH/HSURILOHU SHUPHWDLQVLG¶pYLWHUG¶DYRLUUHFRXUVjXQHVpULHG¶LQVWUXFWLRQV&8'$IDVWLGLHXVHV SRXUPHVXUHUOHVWHPSVGHVWUDQVIHUWVPpPRLUHHWOHWHPSVG¶H[pFXWLRQGXNHUQHO

 

• 8QHIRLVOHSURILODJHDFKHYpRQDDFFqVjSOXVLHXUVW\SHVG¶LQIRUPDWLRQV P 'HVLQIRUPDWLRQVGHWHPSVHQFOLTXDQWVXUOHVLF{QHV*38WLPHVXPPDU\SORW*38 WLPH KHLJKW SORW HW *38WLPHZLGWKSORW TXL RIIUHQW GHV UpSUpVHQWDWLRQV GX PrPH WHPSVGHFDOFXOHWGHVPrPHVWHPSVGHWUDQVIHUWGHGRQQpHV P 'HVLQIRUPDWLRQVUpVXPpHVHQFOLTXDQWVXUO¶LF{QH6XPPDU\WDEOH P /HVSULQFLSDOHVGRQQpHVFRQFHUQDQWOHNHUQHOVHXOHQFOLTXDQWVXUO¶LF{QH.HUQHO WDEOH P /HVSULQFLSDOHVGRQQpHVFRQFHUQDQWOHVWUDQVIHUWVPpPRLUHV&38*38VHXOVHQ FOLTXDQWVXUO¶LF{QH0HPFRS\7DEOH

 • ,OHVWSRVVLEOHGHVDXYHUOHVGRQQpHVFUppHVSDUOHSURILODJHHQFOLTXDQWVXUO¶LF{QH 6DYHRXHQFOLTXDQWVXU6DYHGDQVOHPHQX)LOH&RQVHUYHUOHVGRQQpHVGHSURILODJH G¶XQSURJUDPPHSHUPHWGHFRPSDUHUFRPPRGpPHQWOHIRQFWLRQQHPHQWGHSOXVLHXUV SURJUDPPHVHQWUHHX[RXG¶XQPrPHSURJUDPPHDYHFGHVSDUDPqWUHVGLIIpUHQWV/D FRPSDUDLVRQHQWUHSURJUDPPHVHVWIDFLOLWpHSDUO¶DIILFKDJHGHSOXVLHXUVVHVVLRQV GDQVODIHQrWUH6HVVLRQV,OVXIILWHQVXLWHGHFOLTXHUVXUOHV&RQWH[WB'HYLFHBHW 6HVVLRQRX6HVVLRQSRXUFRPSDUHUWUqVUDSLGHPHQWOHVFDUDFWpULVWLTXHVGHGHX[ SURJUDPPHV /RUVGHO¶H[pFXWLRQGXSURILODJHRQUHPDUTXHTX¶XQPrPHSURJUDPPHSHXWrWUH H[pFXWpSOXVLHXUVIRLV/HQRPEUHG¶H[pFXWLRQVGpSHQGGXQRPEUHGHSDUDPqWUHVFKRLVLV GDQV OHV RSWLRQV GH OD VHVVLRQ 6HVVLRQ 6HWWLQJV  (WDQW GRQQp TXH VHXOH XQH SDUWLH GHV FRPSWHXUVGHSURILOFKRLVLV SDUDPqWUHV SHXYHQWrWUHDFWLYpVORUVG¶XQHVHXOHH[pFXWLRQ GHSURJUDPPHOHSURJUDPPHGRLWrWUHH[pFXWpSOXVLHXUVIRLV&LGHVVXV RQ SHXW REVHUYHUXQSURILODJHW\SH

 3UHPLHUVGpERJXHXUV19,',$1H[XVHW3DUDOOHO1VLJKW

 

'HSXLVLOH[LVWHGHVORJLFLHOVGHGpERJDJHFRPSOqWHPHQWLQWpJUpVj9LVXDO 6WXGLR&HVRQW1H[XVHW3DUDOOHO1VLJKWVRUWLHQ1H[XVVHUDUDSLGHPHQWUHPSODFp SDU3DUDOOHO1VLJKWHQ 6RUWLSRXUODSUHPLqUHIRLVHQ19,',$1H[XVHVWOHSUHPLHUHQYLURQQHPHQW GH GpYHORSSHPHQW VSpFLDOHPHQW FRQoX SRXU SUHQGUH HQ FKDUJH OH &8'$& GDQV GHV DSSOLFDWLRQV SDUDOOqOHV ,O IDLW OH OLHQ HQWUH FRGH &38 HW FRGH *38 HQ LQWpJUDQW OH GpERJDJHGHFRGHVRXUFHHWO DQDO\VHGHGRQQpHVGLUHFWHPHQWGDQV9LVXDO6WXGLR 1H[XV SHUPHW DX[ GpYHORSSHXUV 9LVXDO 6WXGLR G pFULUH HW GH GpERJXHU GX FRGH VRXUFH*38HQXWLOLVDQWH[DFWHPHQWOHVPrPHVRXWLOVHWLQWHUIDFHVTXHSRXUO pFULWXUHHWOH GpERJDJHGHFRGHVRXUFH&38\FRPSULVOHVSRLQWVG DUUrWHWO LQVSHFWLRQGHODPpPRLUH 'HSOXV1H[XVpWHQGOHVIRQFWLRQQDOLWpVGH9LVXDO6WXGLRHQRIIUDQWGHVRXWLOVGHJHVWLRQ GXSDUDOOpOLVPHWHOVTXHODSRVVLELOLWpGHVHFRQFHQWUHUVXUXQHWkFKHXQLTXH SDUPLOHV PLOOLHUVGHWkFKHVIRQFWLRQQDQWHQSDUDOOqOH HWODGpERJXHUHWODSRVVLELOLWpGHYLVXDOLVHU VLPSOHPHQWHWHIILFDFHPHQWOHVUpVXOWDWVSURGXLWVSDUO HQVHPEOHGHVWkFKHVSDUDOOqOHV $WWHQWLRQ 1H[XV Q¶HVW FRPSDWLEOH TX¶DYHF :LQGRZV 9LVWD 63 RXDYHF :LQGRZV 'qV MDQYLHU  XQ QRXYHO RXWLO GH GpERJDJH VRUW SRXU OH GpYHORSSHPHQW G DSSOLFDWLRQVSDUDOOqOHVF HVWO RXWLOGHGpERJDJHHWGHSURILODJH19,',$3DUDOOHO1VLJKW GLVSRQLEOHFRPPHXQPRGXOHFRPSOpPHQWDLUHSRXU9LVXDO6WXGLR &RPPH SRXU 1H[XV 3DUDOOHO 1VLJKWQ HVWFRPSDWLEOHTX¶DYHFOHVV\VWqPHV :LQGRZV9LVWDHW:LQGRZV $ VDYRLU TX LO H[LVWH XQ DXWUH GpERJXHXU &8'$ PDLV XWLOLVDEOH VXU /LQX[ XQLTXHPHQWF HVW&8'$*'%

 $PpOLRUDWLRQVSRVVLEOHV 'DQVFHPpPRLUHXQHJUDQGHSDUWLHGHVSRVVLELOLWpVGH&8'$ŒDpWpH[SORLWpHV &HSHQGDQWSDUPDQTXHGHWHPSVTXHOTXHVIRQFWLRQQDOLWpVQ¶RQWSDVSXO¶rWUH/HEXWGH FHWWHSDUWLHHVWGRQFGHSUpVHQWHUUDSLGHPHQWOHVGLIIpUHQWHVSRVVLELOLWpVG¶DPpOLRUDWLRQV

 1RWLRQGHIOX[GHGRQQpHVRXVWUHDPLQJ /¶XWLOLVDWLRQGHIOX[HVWWUqVXWLOHSRXUSRXYRLUH[pFXWHUGHVWkFKHVFRPSOqWHPHQW GLIIpUHQWHV HQ SDUDOOqOH /¶XWLOLVDWLRQ GH IOX[ SHXW SHUPHWWUH G¶H[pFXWHU GHX[ NHUQHOV VLPXOWDQpPHQWDYHFSDUH[HPSOH • XQGHVGHX[NHUQHOVTXLHIIHFWXHQDGGLWLRQVVLPXOWDQpHVGDQVXQHJULOOHGHWkFKHVHW • O¶DXWUHNHUQHOTXLHIIHFWXHPPXOWLSOLFDWLRQVVLPXOWDQpHVGDQVXQHDXWUHJULOOHGH WkFKHV &HFLQ¶DXUDLWSDVpWpSRVVLEOHVDQVO¶H[LVWHQFHGHODQRWLRQGHIOX[ /¶XWLOLVDWLRQGHIOX[HVWpJDOHPHQWSRVVLEOHVRXV&8%/$6&8))7&85$1'HW &863$56(

 3UpFKDUJHPHQWGHGRQQpHV SUHIHWFKLQJ  8QHGHVSOXVLPSRUWDQWHVOLPLWDWLRQVGHUHVVRXUFHVSRXUO LQIRUPDWLTXHSDUDOOqOH HQJpQpUDOHVWOHIDLWTXHODPpPRLUHJOREDOHDXQHEDQGHSDVVDQWHOLPLWpHORUVGHO DFFqV DX[GRQQpHVHWFHVDFFqVGHPDQGHQWEHDXFRXSGHWHPSVjV DFKHYHU

 

8QH VROXWLRQ XWLOH DX SUREOqPH HVW GH IDLUH XQ SUpFKDUJHPHQW GHV GRQQpHV RSpUDQGHVVXLYDQWHVWRXWHQXWLOLVDQWOHVGRQQpHVFRXUDQWHVGpMjFKDUJpHVFHTXLDFFURLW OH QRPEUH G LQVWUXFWLRQV LQGpSHQGDQWHV HQWUH OHV DFFqV PpPRLUH HW O XWLOLVDWLRQ GHV GRQQpHVDFFpGpHV /DWHFKQLTXHGHSUpFKDUJHPHQWGHGRQQpHVHVWVRXYHQWXWLOLVpHGDQVOHVERXFOHV G LWpUDWLRQV / DYDQWDJH GH SUpFKDUJHU GHV GRQQpHV HVW GH WLUHUSURILWGHO DVSHFW DV\QFKURQH GH O DFFqV PpPRLUH GDQV &8'$Π/RUVTX XQH RSpUDWLRQ G DFFqV j OD PpPRLUHHVWH[pFXWpHHOOHQHEORTXHSDVOHVDXWUHVRSpUDWLRQVTXLVXLYHQWjFRQGLWLRQTXH FHVGHUQLqUHVQ XWLOLVHQWSDVOHVGRQQpHVHQWUDLQG rWUHFKDUJpHV

 'pURXOHPHQWGHERXFOHV 'DQVFHUWDLQVSURFHVVHXUVJUDSKLTXHV&8'$FKDTXHF°XUDXQHEDQGHSDVVDQWH GH WUDLWHPHQW G LQVWUXFWLRQV OLPLWpH &KDTXH LQVWUXFWLRQ XWLOLVH GH OD EDQGH SDVVDQWH GH WUDLWHPHQWG LQVWUXFWLRQTXHFHVRLWSRXU • XQHLQVWUXFWLRQGHFDOFXOHQYLUJXOHIORWWDQWH • XQHLQVWUXFWLRQGHFKDUJHPHQW • RXXQHLQVWUXFWLRQGHEUDQFKHPHQW 'DQVOHFDVGHODPXOWLSOLFDWLRQGHPDWULFHVODERXFOHGXSURGXLWVFDODLUHXWLOLVH GHVLQVWUXFWLRQVVXSSOpPHQWDLUHVSRXUUHPHWWUHjMRXUOHFRPSWHXUGHERXFOHHWHIIHFWXHU GHVEUDQFKHPHQWVFRQGLWLRQQHOVjODILQGHFKDTXHLWpUDWLRQ 8QHPpWKRGHVRXYHQWXWLOLVpHSRXUDPpOLRUHUOHUDWLRHQWUHLQVWUXFWLRQVGHFDOFXO HWDXWUHVLQVWUXFWLRQVHVWGHGpURXOHUODERXFOH /HGpURXOHPHQWSHUPHWG pOLPLQHUO LQVWUXFWLRQGHEUDQFKHPHQWHWODUHPLVHjMRXU GH FRPSWHXU GH ERXFOH ,GpDOHPHQW OH GpURXOHPHQW GH ERXFOH HVW UpDOLVp DXWRPDWLTXHPHQW SDU OH FRPSLODWHXU &RPPH SRXU OD WHFKQLTXH GX SUpFKDUJHPHQW GH GRQQpHV OH GpURXOHPHQW GH ERXFOH SHXW QpFHVVLWHU GHV UHJLVWUHV VXSSOpPHQWDLUHV SRXU VWRFNHUOHVGRQQpHVpTXLYDOHQWHVjGHPXOWLSOHSDVVDJHGDQVODERXFOHHWSDUFRQVpTXHQW OLPLWHUOHQRPEUHGHEORFVH[pFXWDEOHVSDUPXOWLSURFHVVHXU

 $PpOLRUDWLRQVGLYHUVHV • /RUVTX RQYHXWUpDOLVHUODGLYLVLRQSDUGHX[G XQQRPEUHLOHVWFRQVHLOOpGHIDLUHjOD SODFHXQGpFDODJHjGURLWHGXQRPEUHVRXVVDIRUPHELQDLUH • /RUVTX RQYHXWUpDOLVHUODPXOWLSOLFDWLRQSDUGHX[G XQQRPEUHLOHVWFRQVHLOOpGH IDLUHjODSODFHXQGpFDODJHjJDXFKHGXQRPEUHVRXVVDIRUPHELQDLUH • (QPRGHGpERJDJHLOSHXWSDUIRLVrWUHXWLOHG DSSHOHUOHVIRQFWLRQV&8'$SDU O LQWHUPpGLDLUHGHODPDFUR$6%"@4"'&@$"--&HWWHPDFURYpULILHVLODIRQFWLRQ DSSHOpHQHUHQYRLHG HUUHXUV$WWHQWLRQLOQHIDXWSDVRXEOLHUGHGpILQLUB'(%8*GDQV ODOLJQHGHFRPPDQGH YRLUO DQQH[HVXUODFRQILJXUDWLRQG XQILFKLHUHWG XQSURMHW &8'$ FDUVLQRQFHWWHPDFURQ HVWSDVIRQFWLRQQHOOHSRXUGHVUDLVRQVGH SHUIRUPDQFH3RXUSRXYRLUXWLOLVHU$6%"@4"'&@$"--LOQHIDXWSDVQRQSOXVRXEOLHU G DMRXWHUODIRQFWLRQG HQWrWHFXWLOK IRXUQLHDYHF&8'$Œ HQGpEXWGXSURJUDPPH &8'$ 



Annexe 6 Programme MEX-CUDA-C

/* Programme utilisant la mémoire partagée */ /* Utilisation de nombres flottants double précision */

#include #include "mex.h" #include typedef struct { int width; int height; int stride; double* elements; } Matrix;

/* Nombre de tâches par ligne (dans un bloc) */ #define BLOCK_SIDE 16

/* Extraction d'un élement de matrice */ __device__ double GetElement(const Matrix A, int row, int col) { return A.elements[row * A.stride + col]; }

/* Initialisation d'un élément de matrice */ __device__ void SetElement(Matrix A, int row, int col, double value) { A.elements[row * A.stride + col] = value; }

/* Extrait la sous-matrice Asub de dimensions BLOCK_SIDE x BLOCK_SIDE (à partir de la matrice A) et située col sous-matrices en partant de la gauche et row sous-matrices vers le bas en partant du coin supérieur gauche de A */ __device__ Matrix GetSubMatrix(Matrix A, int row, int col) { Matrix Asub; Asub.width = BLOCK_SIDE; Asub.height = BLOCK_SIDE; Asub.stride = A.stride; /* Extrait l'adresse du premier élément de chaque bloc (dans l'ordre des blocs) */ Asub.elements = &A.elements[A.stride * BLOCK_SIDE * row + BLOCK_SIDE * col]; return Asub; }

/* Déclaration du kernel de multiplication matricielle */ __global__ void MatMulKernel(const Matrix, const Matrix, Matrix);

/* Code hôte de la multiplication matricielle. Les dimensions de matrice sont supposées être des multiples de BLOCK_SIDE */ void mexFunction( int nlhs, mxArray *plhs[],int nrhs, const mxArray *prhs[]) {

170

/* Déclaration de pointeurs vers les matrices d'entrée */ double *h_A,*h_B,*h_C;

unsigned int mrowsA, ncolsA, mrowsB, ncolsB; /* entier non signé */

/* Vérifie que le nombre d'arguments d'entrée et de sortie sont corrects */ if(nrhs!=2) mexErrMsgTxt("Deux entrées demandées."); if(nlhs!=1) mexErrMsgTxt("Une sortie seulement demandée.");

/* Extraction des dimensions des matrices d'entrée */ mrowsA = (unsigned int)mxGetM(prhs[0]); ncolsA = (unsigned int)mxGetN(prhs[0]); mrowsB = (unsigned int)mxGetM(prhs[1]); ncolsB = (unsigned int)mxGetN(prhs[1]);

/* Crée un pointeur pour la matrice hôte d'entrée */ h_A = mxGetPr(prhs[0]); h_B = mxGetPr(prhs[1]);

/* Chargement de A et B en mémoire GPU */ Matrix d_A; d_A.width = d_A.stride = ncolsA; d_A.height = mrowsA; size_t size = ncolsA * mrowsA * sizeof(double);

cudaMalloc((void**)&d_A.elements, size); cudaMemcpy(d_A.elements, h_A, size, cudaMemcpyHostToDevice);

Matrix d_B; d_B.width = d_B.stride = ncolsB; d_B.height = mrowsB; size = ncolsB * mrowsB * sizeof(double);

cudaMalloc((void**)&d_B.elements, size); cudaMemcpy(d_B.elements, h_B, size, cudaMemcpyHostToDevice);

/* Allocation de mémoire pour C en mémoire GPU */ Matrix d_C; d_C.width = d_C.stride = ncolsB; d_C.height = mrowsA; size = ncolsB * mrowsA * sizeof(double);

cudaMalloc((void**)&d_C.elements, size);

dim3 dimBlock(BLOCK_SIDE, BLOCK_SIDE); dim3 dimGrid(ncolsB / dimBlock.x, mrowsA / dimBlock.y);

/* Mesure du temps d'exécution */ /*cudaEvent_t start, stop; float time; cudaEventCreate(&start); cudaEventCreate(&stop); cudaEventRecord( start, 0 );*/ /* Début */

/* Appel du kernel */ MatMulKernel<<>>(d_B, d_A, d_C);

/* Fin de la mesure du temps d'exécution du programme */ /*cudaEventRecord( stop, 0 );*/ /* Fin */ /*cudaEventSynchronize( stop ); cudaEventElapsedTime( &time, start, stop );

171

cudaEventDestroy( start ); cudaEventDestroy( stop );*/

/* Affichage du temps d'exécution sur carte graphique */ /*printf("\n"); printf("Temps ecoule: %f ms\n", time);*/

/* Crée un mxArray 2 dimensions pour des flottants double précision initialisés à 0 */ /* Initialise le pointeur de sortie sur la matrice de sortie */ plhs[0] = mxCreateDoubleMatrix(mrowsA,ncolsB, mxREAL);

/* Crée un pointeur pour la matrice hôte de sortie */ h_C = mxGetPr(plhs[0]);

/* Transfert du résultat de la carte graphique vers le CPU */ cudaMemcpy(h_C, d_C.elements, size, cudaMemcpyDeviceToHost);

/* Libération de la mémoire GPU */ cudaFree(d_A.elements); cudaFree(d_B.elements); cudaFree(d_C.elements);

cudaThreadExit(); }

/* Kernel de multiplication matricielle appelé par le programme principal (mexFunction) */ __global__ void MatMulKernel(Matrix A, Matrix B, Matrix C) { /* Extraction dans un bloc des numéros de ligne et des numéros de colonnes */ int blockRow = blockIdx.y; int blockCol = blockIdx.x;

/* Chaque bloc de tâches calcule une sous-matrice Csub de C */ Matrix Csub = GetSubMatrix(C, blockRow, blockCol);

/* Chaque tâche calcule un élément de Csub en cumulant les résultats dans Cvalue */ double Cvalue = 0;

/* Extraction des indices rangée-colonne des tâches à l'intérieur de Csub */ int row = threadIdx.y; int col = threadIdx.x;

/* Boucles sur chaque paire de blocs (de A et B) requise pour calculer Csub. Produit de chaque paire de blocs et accumulation des résultats */ for (int m = 0; m < (A.width / BLOCK_SIDE); ++m) { /* Extraction du bloc Asub à partir de A */ Matrix Asub = GetSubMatrix(A, blockRow, m);

/* Extraction du bloc Bsub à partir de B */ Matrix Bsub = GetSubMatrix(B, m, blockCol);

/* Réservation de mémoire partagée pour stocker Asub et Bsub respectivement */ __shared__ double As[BLOCK_SIDE][BLOCK_SIDE]; __shared__ double Bs[BLOCK_SIDE][BLOCK_SIDE];

172

/* Chargement de Asub et Bsub de la mémoire GPU vers la mémoire partagée. Chaque tâche charge un élément de chaque bloc. */

As[row][col] = GetElement(Asub, row, col); Bs[row][col] = GetElement(Bsub, row, col);

/* Synchronisation pour s'assurer que les deux blocs sont complètement chargées avant le démarrage du calcul */ __syncthreads();

/* Produit scalaire d’une ligne d’éléments de Asub et d’une colonne d’éléments de Bsub */ for (int e = 0; e < BLOCK_SIDE; ++e) Cvalue += As[row][e] * Bs[e][col];

/* Synchronisation pour s'assurer que le calcul précédent est terminé avant de charger deux nouveaux blocs de A et B lors les itérations suivantes */ __syncthreads(); }

/* Ecriture de Csub dans la mémoire globale de la carte. Chaque tâche écrit un élément résultat */ SetElement(Csub, row, col, Cvalue); }

Le programme MATLAB de vérification des résultats et des erreurs de calcul est le suivant : t=1024; %Taille des côtés (nombre d’éléments) des matrices carrées x1=rand(t,t); x2=rand(t,t); y=x1*x2; z=mulmat17(x1,x2);

%Vérification de l’importance et du nombre des erreurs sur un nombre réduit de éléments de la matrice résultat rescudamex=z(1:8,1:8) resmat=y(1:8,1:8) diff=resmat-rescudamex

%Vérification de l’importance et du nombre des erreurs sur la totalité des éléments de la matrice résultat diff2=y-z; hist(diff2(:),200) clear global;

Le programme MATLAB de mesure des temps est le suivant : t=1024; x1=rand(t,t); x2=rand(t,t);

% Mesure des temps de calcul de MATLAB seul sur 10 valeurs tic;

173

y=x1*x2; y=x1*x2; y=x1*x2; y=x1*x2; y=x1*x2; y=x1*x2; y=x1*x2; y=x1*x2; y=x1*x2; y=x1*x2; toc

% L’exécution de la 1ère des instructions suivantes n’est pas comtabilisée en raison des incertitudes dues au temps de mise en place des ressources sur la carte graphique z=mulmat17(x1,x2); % Mesure des temps de calcul de la fonction MEX-CUDA-C sur 10 valeurs tic; z=mulmat17(x1,x2); z=mulmat17(x1,x2); z=mulmat17(x1,x2); z=mulmat17(x1,x2); z=mulmat17(x1,x2); z=mulmat17(x1,x2); z=mulmat17(x1,x2); z=mulmat17(x1,x2); z=mulmat17(x1,x2); z=mulmat17(x1,x2); toc clear global;

Le programme MATLAB de test appelé par le profiler est le suivant : t=1024; x1=rand(t,t); x2=rand(t,t); z=mulmat17(x1,x2); clear global; quit;

174

Annexe 7 Programme MEX-CUBLAS-C

/* Programme de multiplication de matrices avec nombres à virgule flottante double précision */

/* mulmat05.cpp : définit le point d'entrée pour l'application console. */

#include #include #include "mex.h" #include "cuda.h" #include "cublas.h"

/* Calcul de l'indice de rangement en colonne (dans un vecteur à indice débutant à 0) de l'élément de la ième ligne et de la jème colonne d'un tableau à indices débutant à 0 */ #define IDX2C(i,j,ld) (((j)*(ld))+(i)) void mexFunction(int nlhs, mxArray *plhs[],int nrhs, const mxArray *prhs[]) { cublasStatus status = 0; /* cublasStatus est un type prédéfini comme entier non signé dans la bibliothèque cublas.h */ status = cublasInit(); /* Initialisation de la bibliothèque CUBLAS */ if (status != CUBLAS_STATUS_SUCCESS) { printf("status = %d", status); mexErrMsgTxt("Erreur lors de l'initialisation de CUBLAS !\n"); }

/* Déclaration des variables */ double *h_A,*h_B,*h_C; double *d_A,*d_B,*d_C; double alpha = 1; double beta = 0; int i; unsigned int mrowsA, ncolsA, mrowsB, ncolsB; /* entier non signé */

/* Vérifie que le nombre d'arguments d'entrée et de sortie sont corrects */ if(nrhs!=2) mexErrMsgTxt("Deux entrées demandées."); if(nlhs!=1) mexErrMsgTxt("Une sortie seulement demandée.");

/* Extraction des dimensions des matrices d'entrée */ mrowsA = (unsigned int)mxGetM(prhs[0]); ncolsA = (unsigned int)mxGetN(prhs[0]); mrowsB = (unsigned int)mxGetM(prhs[1]); ncolsB = (unsigned int)mxGetN(prhs[1]);

/* Crée un pointeur pour la matrice hôte d'entrée */ h_A = mxGetPr(prhs[0]); h_B = mxGetPr(prhs[1]); int nb_elem1 = mrowsA * ncolsA;

175

int nb_elem2 = mrowsB * ncolsB; int nb_elem3 = mrowsA * ncolsB;

/* Crée un mxArray 2 dimensions pour des flottants double précision initialisés à 0. Initialise le pointeur de sortie sur la matrice de sortie */ plhs[0] = mxCreateDoubleMatrix(mrowsA,ncolsB, mxREAL);

/* Crée un pointeur pour la matrice hôte de sortie */ h_C = mxGetPr(plhs[0]);

/* Remplissage de la matrice de sortie par des zéros */ for (i = 0 ; i < nb_elem3 ; i++) { h_C[i] = 0; }

/* Allocation de la mémoire GPU avec gestion des erreurs */ /* d_A */ status = cublasAlloc(nb_elem1, sizeof(d_A[0]), (void **) & d_A); if (status != CUBLAS_STATUS_SUCCESS) { printf("status = %d", status); mexErrMsgTxt("Erreur lors de l'allocation mémoire de la matrice A sur le périphérique !\n"); }

/* d_B */ status = cublasAlloc(nb_elem2, sizeof (d_B[0]), (void **) & d_B); if (status != CUBLAS_STATUS_SUCCESS) mexErrMsgTxt("Erreur lors de l'allocation mémoire de la matrice B sur le périphérique !\n");

/* d_C */ status = cublasAlloc(nb_elem3, sizeof (d_C[0]), (void **) & d_C); if (status != CUBLAS_STATUS_SUCCESS) mexErrMsgTxt("Erreur lors de l'allocation mémoire de la matrice C sur le périphérique !\n");

/* Remplissage des matrices du périphérique avec les données des matrices de l'hôte et gestion des erreurs */ status = cublasSetVector(nb_elem1, sizeof(h_A[0]), h_A, 1, d_A, 1); if (status != CUBLAS_STATUS_SUCCESS) mexErrMsgTxt("Erreur d'accès au périphérique lors de l'écriture de la matrice A !\n"); status = cublasSetVector(nb_elem2, sizeof(h_B[0]), h_B, 1, d_B, 1); if (status != CUBLAS_STATUS_SUCCESS) mexErrMsgTxt("Erreur d’accès au périphérique lors de l'écriture de la matrice B !\n");

/* La fonction suivante renvoie la dernière erreur apparue à l'appel de n'importe laquelle des fonctions coeur de CUBLAS. Contrairement aux fonctions "helper" de CUBLAS, les fonctions coeur de CUBLAS ne renvoient pas le statut directement. */ status = cublasGetError();

/* Mesure du temps d'exécution */ /*cudaEvent_t start, stop; float time; cudaEventCreate(&start);

176

cudaEventCreate(&stop); cudaEventRecord( start, 0 );*/ /* Début */

/* Multiplication des matrices avec CUBLAS en nombres flottants double précision*/ cublasDgemm('n', 'n', mrowsA, ncolsB, ncolsA, alpha, d_A, mrowsA, d_B, mrowsB, beta, d_C, mrowsA);

/* Fin de la mesure du temps d'exécution du programme */ /*cudaEventRecord( stop, 0 );*/ /* Fin */ /*cudaEventSynchronize( stop ); cudaEventElapsedTime( &time, start, stop ); cudaEventDestroy( start ); cudaEventDestroy( stop );*/

/* Affichage du temps d'exécution sur la carte graphique */ /*printf("\n"); printf("Temps ecoule: %f ms\n", time);*/

/* Lecture du résultat avec gestion des erreurs */ status = cublasGetVector(nb_elem3, sizeof(h_C[0]), d_C, 1, h_C, 1); if (status != CUBLAS_STATUS_SUCCESS) mexErrMsgTxt("Erreur d'accès au périphérique lors de la lecture de la matrice C !\n");

/* Libération de la mémoire sur le périphérique avec gestion des erreurs */ status = cublasFree(d_A); if (status != CUBLAS_STATUS_SUCCESS) mexErrMsgTxt("Erreur lors de la libération de l'espace périphérique de la matrice A !\n"); status = cublasFree(d_B); if (status != CUBLAS_STATUS_SUCCESS) mexErrMsgTxt("Erreur lors de la libération de l'espace périphérique de la matrice B !\n"); status = cublasFree(d_C); if (status != CUBLAS_STATUS_SUCCESS) mexErrMsgTxt("Erreur lors de la libération de l'espace périphérique de la matrice C !\n");

/* Fermeture de CUBLAS avec gestion des erreurs. Libère les resources CPU utilisées par la bibliothèque CUBLAS. */ status = cublasShutdown(); if (status != CUBLAS_STATUS_SUCCESS) mexErrMsgTxt("Erreur à la fermeture de CUBLAS !\n");

/*cudaThreadExit();*/ cublasShutdown(); }

Le programme MATLAB de vérification des résultats et des erreurs de calcul est le suivant : t=1024; %Taille des côtés (nombre d’éléments) des matrices carrées x1=rand(t,t); x2=rand(t,t); y=x1*x2;

177

z=mulmat05(x1,x2);

%Vérification du nombre d’erreurs et de leur importance sur un nombre réduit de éléments de la matrice résultat rescudamex=z(1:8,1:8) resmat=y(1:8,1:8) diff=resmat-rescudamex

%Vérification du nombre d’erreurs et de leur importance sur la totalité des éléments de la matrice résultat diff2=y-z; hist(diff2(:),200) clear global;

Le programme MATLAB de mesure des temps est le suivant : t=1024; x1=rand(t,t); x2=rand(t,t);

% Mesure des temps de calcul de MATLAB seul sur 10 valeurs tic; y=x1*x2; y=x1*x2; y=x1*x2; y=x1*x2; y=x1*x2; y=x1*x2; y=x1*x2; y=x1*x2; y=x1*x2; y=x1*x2; toc

% L’exécution de la 1ère des instructions suivantes n’est pas comptabilisée en raison des incertitudes dues au temps de mise en place des ressources sur la carte graphique z=mulmat05(x1,x2); % Mesure des temps de calcul de la fonction MEX-CUDA-C sur 10 valeurs tic; z=mulmat05(x1,x2); z=mulmat05(x1,x2); z=mulmat05(x1,x2); z=mulmat05(x1,x2); z=mulmat05(x1,x2); z=mulmat05(x1,x2); z=mulmat05(x1,x2); z=mulmat05(x1,x2); z=mulmat05(x1,x2); z=mulmat05(x1,x2); toc clear global;

Le programme MATLAB de test appelé par le profiler est le suivant : t=1024; x1=rand(t,t); x2=rand(t,t);

178

z=mulmat05(x1,x2); clear global; quit;

179

Annexe 8 Programme MEX-CUFFT-C

/* Programme MEX-CUFFT pour un vecteur */

#include #include #include "mex.h" #include #include #include

void pack_dc2dc(cufftDoubleComplex *output, double *input_re, double *input_im, int Ntot) { int n; for(n=0; n

/* Vérification du nombre d'arguments d'entrée et de sortie */ if(nrhs!=1) mexErrMsgTxt("Une entrée demandée."); if(nlhs!=1) mexErrMsgTxt("Une sortie seulement demandée.");

/* Extraction des dimensions des matrices d'entrée */ nx = (unsigned int)mxGetM(prhs[0]); batch = (unsigned int)mxGetN(prhs[0]);

prA = mxGetPr(prhs[0]); piA = mxGetPi(prhs[0]);

/* Réservation d'espace mémoire */ h_A = (cufftDoubleComplex*)mxMalloc(sizeof(cufftDoubleComplex) * nx * batch);

180

h_B = (cufftDoubleComplex*)mxMalloc(sizeof(cufftDoubleComplex) * nx * batch);

cufftHandle plan; cufftDoubleComplex *devPtr;

/* Transformation du format Re/Im de Matlab en un tableau cufftDoubleComplex */ pack_dc2dc(h_A,prA,piA,nx*batch);

/* Allocation de mémoire GPU */ cudaMalloc((void**)&devPtr, sizeof(cufftDoubleComplex)*nx*batch);

/* Transfert en mémoire GPU */ cudaMemcpy(devPtr, h_A, sizeof(cufftDoubleComplex)*nx*batch, cudaMemcpyHostToDevice);

/* Création d'un plan FFT 1D */ cufftPlan1d(&plan, nx, CUFFT_Z2Z, batch); /* nx: taille de la transformée */

/* Exécution d'une FFT directe */ cufftExecZ2Z(plan, devPtr, devPtr, CUFFT_FORWARD);

/* Exécution d'une FFT inverse */ /*cufftExecC2C(plan, devPtr, devPtr, CUFFT_INVERSE);*/

/* Transfert des résultats à partir de la mémoire GPU */ cudaMemcpy(h_B, devPtr, sizeof(cufftDoubleComplex)*batch*nx, cudaMemcpyDeviceToHost);

/* Initialisation du pointeur de sortie sur la matrice de sortie */ plhs[0] = mxCreateDoubleMatrix(nx,batch, mxCOMPLEX);

/* Transformation d'un tableau cufftComplex en un format Re/Im compatible Matlab */ unpack_dc2dc(h_B,mxGetPr(plhs[0]),mxGetPi(plhs[0]),nx*batch);

/* Suppression du plan CUFFT */ cufftDestroy(plan);

/* Libération de la mémoire GPU */ cudaFree(devPtr);

/* Libération de la mémoire CPU */ mxFree(h_A); mxFree(h_B); }

Le programme MATLAB de vérification des résultats et des erreurs de calcul est le suivant : nx=1024; %Taille de la transformée de Fourier batch=1024; %Nombre de transformées de meme taille x=rand(nx,batch) + i*rand(nx,batch);

%FFT MATLAB y=fft(x);

181

%FFT CUDA z=cfft02(x);

%Vérification du nombre d’erreurs et de leur importance sur un nombre réduit de éléments de la matrice résultat resmat=y(1:4,1:4) rescudamex=z(1:4,1:4) diff=resmat-rescudamex

%Vérification du nombre d’erreurs et de leur importance sur la totalité des éléments de la matrice résultat diff2=y-z; prd2 = real(diff2); %Extraction de la partie réelle de diff2 pid2 = imag(diff2); %Extraction de la partie imaginaire de diff2 hist(prd2(:),256) hist(pid2(:),256) clear global;

Le programme MATLAB de mesure des temps est le suivant : nx=1024; %taille de la transformée de Fourier batch=1024; %nombre de transformées de meme taille x=rand(nx,batch) + i*rand(nx,batch);

% Mesure des temps de calcul de MATLAB seul sur 10 valeurs tic; y=fft(x); y=fft(x); y=fft(x); y=fft(x); y=fft(x); y=fft(x); y=fft(x); y=fft(x); y=fft(x); y=fft(x); toc

% L’exécution de la 1ère des instructions suivantes n’est pas comtabilisée en raison des incertitudes dues au temps de mise en place des ressources de la carte graphique z=cfft02(x); % Mesure des temps de calcul de la fonction MEX-CUDA-C sur 10 valeurs tic; z=cfft02(x); z=cfft02(x); z=cfft02(x); z=cfft02(x); z=cfft02(x); z=cfft02(x); z=cfft02(x); z=cfft02(x); z=cfft02(x); z=cfft02(x); toc clear global;

Le programme MATLAB appelé par le profiler est le suivant :

182

nx=1024; %taille de la transformée de Fourier batch=1024; %nombre de transformées de meme taille x=rand(nx,batch) + i*rand(nx,batch); z=cfft02(x); clear global; quit;

183

Liste des figures

Figure 1 : Comparaison du nombre de GFLOP/s de plusieurs générations de CPU et de cartes graphiques [5]...... 11 Figure 2 : Etapes de création et/ou de traitement d’une image avant affichage...... 15 Figure 3 : Le processeur graphique NV43 d’une GeForce 6600 GT ...... 16 Figure 4 : Types de connecteurs DVI...... 18 Figure 5 : Répartition des zones mémoire d’une carte graphique ...... 20 Figure 6 : Répartition des blocs de tâches dans le cas où sont attribués 2 blocs résidents par multiprocesseur (SM)...... 22 Figure 7 : Symbole d’une tâche...... 23 Figure 8 : Attribution de 3 blocs à un multiprocesseur d’une architecture GF100 [1]...... 24 Figure 9 : Ordonnancement des warps et des instructions [7]...... 25 Figure 10 : Pipeline des API graphiques DirectX 9 et antérieurs [2]...... 28 Figure 11 : Pipeline DirectX 10 [2]...... 31 Figure 12 : Pipeline de traitement graphique du processeur G80 [2]...... 33 Figure 13 : Pipeline de traitement de calculs du processeur G80 [2] (1ère génération)...... 35 Figure 14 : architecture d’un multiprocesseur Fermi™ ...... 38 Figure 15 : Architecture Fermi™ en mode calculs ...... 39 Figure 16 : Structure d’un programme CUDA-C...... 41 Figure 17 : Description du passage d’arguments MATLAB à une fonction MEX [15] ...... 46 Figure 18 : Détermination de la taille de grille (en terme de blocs) pour des blocs de taille 4*2 .... 52 Figure 19 : Détermination de la taille de grille (en terme de blocs) pour des blocs de taille 8*4 .... 53 Figure 20 : Tâche isolée ...... 54 Figure 21 : Bloc de 8 tâches exécutées simultanément ...... 54 Figure 22 : Grille de tâches découpée en n blocs de tâches ...... 54 Figure 23 : Grille de tâches découpée en 3 blocs de tâches ...... 56 Figure 24 : Description du système d’indices (des blocs et tâches) ...... 59 Figure 25 : Système de rangement par ligne d’une matrice dans un tableau à une dimension ...... 60 Figure 26 : Système de calcul d’indice de la donnée d’une matrice stockée par ligne dans un tableau à une dimension...... 61 Figure 27 : multiplication de la 1ère colonne de blocs de la matrice A avec la 1ère ligne de blocs de la matrice B...... 63 Figure 28 : multiplication de la 2ème colonne de blocs de la matrice A avec la 2ème ligne de blocs de la matrice B...... 64 Figure 29 : Chronogramme du calcul du point de vue d’un multiprocesseur ...... 66 Figure 30 : Multiplication de matrices utilisant la mémoire partagée...... 69 Figure 31 : Programme MATLAB appelé lors de l’utilisation du profiler...... 72 Figure 32 : Vérification de l’exactitude des résultats renvoyés par CUDA ...... 73 Figure 33 : Mesure des temps d’exécution CUDA et MATLAB...... 74 Figure 34 : Temps d’exécution pour une grille de tâches de taille 1024*1024...... 75 Figure 35 : Temps d’exécution pour une grille de tâches de taille 992*992...... 75 Figure 36 : Temps d’exécution pour une grille de tâches de taille 960*960...... 76 Figure 37 : Rangement d’une matrice par ligne ou par colonne dans un vecteur ...... 86 Figure 38 : Fonctionnement de la fonction cublasSaxpy ...... 88 Figure 39 : GFLOPS pour des côtés de matrice résultat multiples de 64...... 93 Figure 40 : GFLOPS pour des côtés de matrice résultat multiples de 32...... 94 Figure 41 : GFLOPS pour des côtés de matrice résultat multiples de 16...... 94 Figure 42 : GFLOPS pour des côtés de matrice résultat multiples de 14 (nombre de multiprocesseurs de la carte GTX470) ...... 95 Figure 43 : GFLOPS pour des côtés de matrice résultat multiples de 8...... 95 Figure 44 : GFLOPS pour des côtés de la matrice résultat multiples de 4...... 96 Figure 45 : Hypothèse de fonctionnement de CUBLAS concernant le choix des paramètres...... 98

184

Figure 46 : Comparaison des temps d’exécution de la fonction MEX-CUFFT-C et de MATLAB seul ...... 110 Figure 47 : Comparaison des temps d’exécution de la fonction MEX-CUFFT-C et de MATLAB seul ...... 111 Figure 48 : Comparaison des temps d’exécution de la fonction MEX-CUFFT-C et de MATLAB selon le nombre de transformées de taille fixe (215) exécutées simultanément ...... 112 Figure 49 :Mesure de distance par radar ...... 117 Figure 50 : Algorithme de corrélation rapide...... 118

185

Liste des tableaux

Tableau 1 : Cartes graphiques NVIDIA prenant en charge CUDA™...... 13 Tableau 2 : Fréquence d’horloge et bande passante selon les types de mémoire...... 16 Tableau 3 : Caractéristiques des différentes zones mémoire de la carte GTX 470 [6] ...... 27 Tableau 4 : Différences d’architecture entre les processeurs des séries GeForce 8/9 et GeForce GTX 200...... 36 Tableau 5 : Taux d’occupation des ressources...... 76 Tableau 6 : Performances de CUDA (en GFLOPS) pour une grille de taille 1024*1024...... 80 Tableau 7 : Performances de CUDA (en GFLOPS) pour une grille de taille 992*992...... 80 Tableau 8 : Performances de CUDA (en GFLOPS) pour une grille de taille 960*960...... 80 Tableau 9 : Performance de CUDA (en GFLOPS) pour une taille de grille multiple du nombre de multiprocesseurs (896*896) ...... 80 Tableau 10 : Comparaison de la performance pour différentes tailles de matrice résultat...... 81 Tableau 11 : Synhtèse des résultats pour des blocs de taille 16*16 ...... 82 Tableau 12 : Caractéristiques des deux modes de fonctionnement de CUBLAS selon la taille de matrice résultat ...... 100 Tableau 13 : Temps de transfert et d’exécution de la fonction MEX-CUBLAS-C...... 100 Tableau 14 : Comparaison des durées d’exécution de la fonction MEX-CUDA-C totale et des durées d’exécution de certaines fonctions prises isolément...... 114 Tableau 15 : Comparaison des temps d’exécution affichés par MATLAB et affichés par le profiler pour la fonction MEX-CUBLAS-C...... 114 Tableau 16 : Temps d’exécution d’une FFT avec CUFFT...... 118 Tableau 17 : Temps d’exécution total de la corrélation ...... 119 Tableau 18 : Historique et comparaison des cartes graphiques des principaux constructeurs ...... 129 Tableau 19 : Nombre de cœurs et de multiprocesseurs selon les cartes graphiques ...... 130 Tableau 20 : Principales caractéristiques de cartes graphiques...... 131 Tableau 21 : Spécifications techniques par version de processeur graphique...... 132 Tableau 22 : Configuration requise pour installer Visual Studio Express ...... 137

186

Résumé

Ce mémoire présente l’étude des capacités de calcul d’une carte graphique dernière génération pour observer dans quelle mesure elle peut se substituer au CPU pour les calculs parallèles. Ce mémoire présente également une possibilité d’application du calcul GPU pour du traitement de signal radar. Pour atteindre l’objectif ci-dessus, nous avons procédé à l’étude approfondie de trois API dédiées aux calculs sur carte graphique NVIDIA : CUDA, CUBLAS et CUFFT. Pour réaliser cette étude, nous avons utilisé une carte graphique GTX470 du fabricant NVIDIA comportant 448 cœurs de traitement parallèle. Le logiciel MATLAB a été utilisé afin de vérifier l’exactitude des calculs GPU. Une fonction MEX a été utilisée pour que MATLAB et le code CUDA puissent se transmettre des données. Cette étude a été réalisée avec les outils logiciels MATLAB 7.1, Visual C++ (Visual Studio 2005) et les outils spécifiques CUDA que sont le Profiler et tableau de calcul de taux d’occupation des ressources.

Abstract

This document presents the study of the compute resources of a from the most recent ones in order to observe to which degree it is able to replace the CPU for . This document also presents an example of implementation of GPU computing for radar signal processing. In order to achieve this goal, we carried out the complete study of three APIs dedicated to computing on NVIDIA video cards : CUDA, CUBLAS and CUFFT. For this study, we used a GTX470 video card made by NVIDIA and featuring 448 streaming processors for parallel computing. The MATLAB software has been used in order to check the accuracy of the GPU computing. A MEX function has been used in order for MATLAB and the CUDA program to be able to exchange data. This study has been carried out using the MATLAB 7.1 and Visual C++ (Visual Studio 2005) softwares as well as the CUDA dedicated tools which are the Compute Visual Profiler and the Occupancy Calculator.

Mots-clés : GPU, GTX 470, SIMT, CUDA, CUBLAS, CUFFT, C, processeur graphique, multiprocesseur, cœur de traitement, mémoire partagée, calcul parallèle. Keywords : GPU, GTX 470, SIMT, CUDA, CUBLAS, CUFFT, C, graphic processor, streaming multiprocessor, streaming processor, shared memory, parallel computing.