Comparaison entre une architecture matérielle dédiée et un GP-GPU pour l optimisation Université de Bretagne-Sud Lab-STICC, Lorient, France ROADeF Troyes, France 13-15 Février 2013 1/22
Objectifs Après 7 ans dans un labo d électronique, la RO a contribué à : optimiser la synthèse de haut niveau ordonnancement, affectation, allocation optimiser le placement des données en mémoire optimiser les chemins de données dans les NoC optimiser l utilisation des réseaux de capteurs Mais qu a fait l électronique pour la RO? 2/22
Objectifs Après 7 ans dans un labo d électronique, la RO a contribué à : optimiser la synthèse de haut niveau ordonnancement, affectation, allocation optimiser le placement des données en mémoire optimiser les chemins de données dans les NoC optimiser l utilisation des réseaux de capteurs Mais qu a fait l électronique pour la RO? L objectif de notre travail est de proposer une architecture matérielle dédiée à l optimisation afin d accélérer la résolution de ces problèmes 2/22
Motivations Jusqu où peut-on aller? les ordinateurs offrent de plus en plus de processeurs ils sont équipés de cartes GP-GPU puissantes les logiciels suivent le rythme en s adaptant 3/22
Motivations Jusqu où peut-on aller? les ordinateurs offrent de plus en plus de processeurs ils sont équipés de cartes GP-GPU puissantes les logiciels suivent le rythme en s adaptant Mais sait-on bien utiliser ces nouvelles puissances? sait-on bien programmer en parallèle? les cartes GP-GPU sont-elles faites pour ça? 3/22
Motivations Jusqu où peut-on aller? les ordinateurs offrent de plus en plus de processeurs ils sont équipés de cartes GP-GPU puissantes les logiciels suivent le rythme en s adaptant Mais sait-on bien utiliser ces nouvelles puissances? sait-on bien programmer en parallèle? les cartes GP-GPU sont-elles faites pour ça? Peut-on faire encore mieux avec une architecture dédiée? 3/22
de référence Le plus court chemin plus court chemin d un sommet vers tous les autres nombreux algorithmes disponibles bibliothèques gratuites facilement parallélisable applications en logistique noyau de plusieurs problèmes compliqués 4/22
Algorithme Algo retenu : Dijkstra version séquentielle BOOST avec liste d adjacence version séquentielle C++ avec représentation matricielle version parallèle C++ CUDA version parallèle VHDL 5/22
Instance from DIMACS challenge Description Rome99 Large portion of the directed road network of the city of Rome, Italy, from 1999. The graph contains 3,353 vertices and 8,870 arcs. Vertices correspond to intersections between roads and edges correspond to roads or road segments Source : University of Rome La Sapienza Auteurs : Gianni Storchi, Paolo Dell Olmo, Monica Gentili Date : March 2006 6/22
Rome99 7/22
de test Algo séquentiel Algo parallèle PC standard Carte GP-GPU Sea of Vertexes 8/22
de test Algo séquentiel Algo parallèle PC standard Carte GP-GPU Sea of Vertexes 8/22
PC et Carte GP-GPU PC Standard Processeur : Intel Core 2 RAM : 4 Go Fréquence : 2GHz (et 1.33GHz) 3353 nœuds par processeur Carte GP-GPU Fabriquant : NVIDIA Modèle : GeForce GTX 570 Fréquence : 1.4 GHz 7 nœuds par processeur (480 processeurs) 9/22
Sea of Vertexes Le calculateur est conçu à partir de NoC sur FPGA FPGA (Field Programmable Gate Array) L acronyme FPGA (Field Programmable Gate Arrays) désigne un circuit intégré composé d un réseau de cellules programmables. Chaque cellule est capable de réaliser une fonction, choisie parmi plusieurs possibles. Les interconnexions sont également programmables 10/22
Sea of Vertexes (suite) Sea of Vertexes est une architecture mesh-2d simplex (communications à un seul sens à chaque top horloge) chaque processeur peut effectuer le calcul pour 1 ou plusieurs nœuds du graphe. Les calculs restent très simples il faut éviter les deadlocks 11/22
Mesh 2D full-duplex Une variante de Sea of Vertexes, mais idéale (sans deadlock) En full-duplex les communications sont bi-directionnelles les processeurs sont organisés en grille 2D chacun peut traiter un ou plusieurs nœuds 12/22
Plans d exérience Les tests sont réalisés avec les caractéristiques suivantes : Id. Nom Implémentation # proc nœuds/proc. Fréq. 1 BOOST Séquentielle, LA, C++ 1 tous 2.0 GHz 2 DIJMAT Séquentielle, MAT, C++ 1 tous 1.3 GHz 3 GP-GPU Parallèle, C++/CUDA 480 7 1.4 GHz 4 SOV1 Parallèle, VHDL 3353 1 0.1 GHz 5 SOV840 Parallèle, VHDL 4 840 0.1 GHz 6 MESH5 Parallèle, VHDL 24 140 0.1 GHz 7 MESH21 Parallèle, VHDL 440 8 0.1 GHz LA : liste d adjacence; MAT : Matrice 13/22
Résultats Détails temps de chargement des données pas inclus CPU représente le temps d exécution normalisé à 1GHz ratio est le facteur d accélération par rapport à BOOST Id. Nom CPU (ms) CPU ratio 1 BOOST 28 56 1.00 2 DIJMAT 105 140 0.40 3 GP-GPU 92.5 130 0.43 4 SOV1 1.06 0.106 528 5 SOV840 0.27 0.027 2074 6 MESH5 0.26 0.026 2153 7 MESH21 0.067 0.0067 8358 14/22
Analyse des résultats Organisation SOV et MESH sont organisés en grille X Y (1 processeur sert à communiquer avec l environnement) X : # colonnes Y : # lignes P : # processeurs réellement exploités V : # nœuds par processeur X 2 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 26 Y 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 26 P 1 3 8 15 24 35 48 63 80 99 120 143 168 195 224 255 288 323 360 399 440 483 575 675 V 3353 1118 420 224 140 96 70 54 42 34 28 24 20 18 15 14 12 11 10 9 8 7 6 5 15/22
Evolution de la taille de la grille CPU (ms) 4 3.5 3 2.5 2 1.5 SOV MESH 1 0.5 0 0 5 10 15 20 25 Taille grille 16/22
Comparaison avec une liste triée 3.5 3 2.5 Natural Sorted CPU (ms) 2 1.5 1 0.5 0 0 5 10 15 20 25 30 Taille grille 17/22
Meilleure performance La meilleure performance est obtenue sur un Mesh 14 14 avec 195 processeurs, 18 nœuds par processeurs et une liste des nœuds candidats triée à chaque fois Id. Nom CPU (ms) CPU ratio 1 BOOST 28 56 1.00 2 DIJMAT 105 140 0.40 3 GP-GPU 92.5 130 0.43 4 SOV1 1.06 0.106 528 5 SOV840 0.27 0.027 2074 6 MESH5 0.26 0.026 2153 7 MESH21 0.067 0.0067 8358 8 MESH14* 0.062 0.0062 9032 Les gains peuvent atteindre un ratio de 10 4 par rapport à une version séquentielle 18/22
Extensibilité Les résultats sont-ils extensibles? On test notre matériel sur une instance beaucoup plus large New York City Description Original instance of the DIMACS Challenge,with roads from New York city. The graph contains 264,346 vertices and 733,846 arcs 19/22
Résultats partiels BOOST est bon!!! Sur un graphe 100 fois plus grand, BOOST est seulement 10 fois plus lent...les densités ne sont pas identiques! Id. Nom proc. # nœuds/proc. CPU (ms) CPU ratio 1 BOOST 1 264,346 300 600 1.00 2 MESH2* 3 88,116 189 18.9 31.7 3 MESH3* 8 33,044 78 7.8 76.9 4 MESH4* 15 17,624 61 6.1 98.4 5 MESH5* 24 11,015 46 4.6 130.4 6 MESH6* 35 7,535 36 3.6 166.7 7 MESH7* 48 5,508 26 2.6 230.8 8 MESH8* 63 4,196 19 1.9 315.8 9 MESH9* 80 3,305 14 1.4 426.6 10 MESH10* 99 2,671 13 1.3 461.5 11 MESH11* 120 2,203 10 1.0 600.0 20/22
s et perspectives s Une architecture dédiée est une solution envisageable + gains importants + extensibilité de la méthode difficultés d implémentation simulation nécessaire Perspectives il faut se comparer à une architecture multicœurs réaliser une implantation physique partitionner le graphe au mieux (k-partition) la RO au service de l électronique pour la RO 21/22
Visit our web site... OR-Group@Lab-STICC, Lorient http://www.univ-ubs.fr/or/ Contact : marc.sevaux@univ-ubs.fr 22/22