• Aucun résultat trouvé

Automatisation de l’extension de jeux d’instructions

1.3

Automatisation de l’extension de jeux d’instructions

Dans cette section, nous nous int´eresserons aux principales techniques existantes d’automatisation de la g´en´eration de code pour un processeur extensible. Comme il a ´et´e ´evoqu´e pr´ec´edemment, cette ´etape requiert de diff´erencier les op´erations qui seront ex´ecut´ees sur l’extension de celles qui le seront sur le GPP.

1.3.1

Partitionnement d’une application

Le probl`eme d’identification et de s´election d’instructions sp´ecialis´ees peut ˆetre assimil´e `a un probl`eme de partitionnement logiciel/mat´eriel. Dans ce cas, l’objectif est de choisir pour chaque nœud d’un graphe s’il est ex´ecut´e sur le GPP hˆote ou bien sur l’extension mat´erielle. La complexit´e d’un tel partitionnement pour un graphe de n nœuds est alors de O(2n) et repr´esente donc un ´enorme

espace d’exploration qui ne peut ˆetre trait´e en un temps raisonnable que pour un faible nombre de nœuds (e.g., pour 20 nœuds cela repr´esente d´ej`a plus d’un million de partitionnements possibles) ou par des heuristiques sp´ecifiques. Pour que les ISE s´electionn´ees soient ordonnan¸cables, il est imp´eratif de s’assurer de leurs convexit´es : il ne doit exister aucun chemin `a la fois sortant et entrant de chaque ISE.

Une des heuristiques les plus couramment cit´ees est celle propos´ee dans [14]. Il s’agit d’une ap- proche par s´eparation et ´evaluation (BB17) qui s´electionne, `a chaque it´eration, l’ISE respectant plu-

sieurs contraintes (i.e., nombre d’entr´ees et de sorties ainsi que convexit´e des op´erations regroup´ees) et qui maximise une fonction de m´erite. L’heuristique est termin´ee quand aucun des nœuds ne peut plus ˆetre couvert par une nouvelle ISE.

L’approche propos´ee dans [23] extrait de mani`ere gloutonne les ISE qui maximisent une fonction de m´erite et respecte `a la fois les contraintes de convexit´e et celles limitant le nombre d’entr´ees et de sorties. Elle se base sur l’heuristique de Kernighan-Lin [106] et la construction d’une ISE est it´erative : les nœuds du graphe sont ajout´es ou enlev´es en fonction de leurs contributions respectives au m´erite de l’ISE. Lorsque tous les nœuds ont ´et´e ´evalu´es et que l’ISE n’´evolue plus, elle est consid´er´ee comme ´etant s´electionn´ee.

D’autres techniques de partitionnement s’appuient sur une formulation dans un probl`eme lin´eaire en nombre entier (ILP18) pour s´electionner de mani`ere gloutonne l’ISE qui maximise/minimise une

fonction de m´erite/coˆut. Dans [12], chaque nœud qui n’est pas encore couvert par une ISE est associ´e `a une variable binaire indiquant si ce nœud sera ex´ecut´e sur l’extension ou contenu dans une ISE. De plus, des contraintes lin´eaires limitent le nombre d’entr´ees et de sorties de l’ISE et garantissent sa convexit´e dans le graphe. L’objectif est alors de s´electionner, `a chaque it´eration de l’heuristique, l’ISE qui minimise la dur´ee du chemin critique du graphe analys´e. Une approche similaire [117] tient compte des coˆuts de communication entre le processeur hˆote et l’extension mat´erielle : seuls les liens entre le processeur et l’extension ont un coˆut non n´egligeable puisque deux nœuds plac´es sur le mat´eriel communiqueront par un registre interne `a l’extension. L’objectif est de s´electionner de mani`ere gloutonne les ISE convexes qui maximiseront la somme des dur´ees logicielles (i.e., op´erations ex´ecut´ees sur le GPP hˆote) des nœuds qu’elles contiennent afin de favoriser l’acc´el´eration mat´erielle qu’elles apporteront.

17. Branch and Bound

26 Chapitre 1. Contexte et ´etat de l’art sur l’extension de jeux d’instructions

Les approches de partitionnement profitent g´en´eralement d’une derni`ere ´etape qui r´eduit le nombre d’ISE identifi´ees en analysant leurs isomorphismes. Malgr´e cette ´etape suppl´ementaire, les techniques de partitionnement n’offriront g´en´eralement que peu de flexibilit´e au processeur puisque les ISE auront ´et´e g´en´er´ees pour am´eliorer les performances d’un unique graphe.

1.3.2

G´en´eration d’instructions sp´ecialis´ees

La g´en´eration automatique d’instructions sp´ecialis´ees vise `a construire une biblioth`eque d’ISE qui sera utilis´ee par une ´etape ult´erieure de s´election pour chaque application cibl´ee. La principale diff´erence de cette m´ethode par rapport `a une s´election par partitionnement est de permettre au concepteur de rechercher un compromis entre les performances des ISE et leurs possibilit´es de r´euti- lisation dans des familles d’applications. En effet, celui-ci pourra notamment ne s´electionner que des ISE pr´esentes dans plusieurs applications ou encore chercher `a minimiser leurs nombres.

Les techniques de g´en´eration consistent `a ´enum´erer les diff´erents motifs de calcul pr´esents dans un graphe. Ceux-ci peuvent ˆetre connexes (i.e., il existe un chemin non orient´e entre chaque couple de nœuds du motif) ou non. Dans les deux cas (d’autant plus pour des motifs non connexes), l’espace exhaustif d’´enum´eration est exponentiel et ne peut ˆetre raisonnablement parcouru pour des graphes dont la taille d´epasse une centaine de nœuds.

1.3.2.1 Motifs sous contraintes d’entr´ees/sorties

La plupart des approches existantes limitent le nombre d’entr´ees et de sorties des motifs (i.e., liens entrants et sortants des nœuds d’un motif) afin de restreindre l’espace d’´enum´eration et de le rendre analysable en un temps acceptable (i.e., de l’ordre de quelques minutes pour des graphes de plusieurs centaines de nœuds). Dans ce cas, le nombre maximal de groupements convexes de nœuds d’un graphe G(V, E) nœuds est prouv´e [38] comme ´etant inf´erieur ou ´egal `a |V |in+outpour des motifs

ayant au plus in entr´ees et out sorties. Cet espace reste donc, dans le pire cas, trop complexe pour un nombre ´elev´e d’entr´ees ou de sorties.

Les travaux pr´esent´es dans [6] proposent de ne g´en´erer que des motifs MISO19 qui, comme leur

nom l’indique, ne comportent qu’une seule sortie. L’algorithme g´en`ere, en un temps polynomial, tous les motifs MISO d’un graphe ou encore uniquement ceux dont la taille est maximale (MaxMISO).

Il existe ´egalement des heuristiques qui ne g´en`erent pas exhaustivement tous les motifs existants dans un graphe. La m´ethode [65] g´en`ere des motifs convexes dont le nombre d’entr´ees et de sorties est limit´e. Le principe est d’´etendre it´erativement une ISE qui ne contient au d´epart qu’un unique nœud graine. Les nœuds de son voisinage sont ensuite ajout´es de mani`ere incr´ementale tant qu’il est possible de respecter les diff´erentes contraintes. Dans [28], un algorithme de complexit´e polynomiale est cens´e g´en´erer l’ensemble exhaustif des motifs convexes ´egalement sous contraintes d’entr´ees/sorties. Cependant cet algorithme est bas´e sur une restriction qui ´elimine jusqu’`a 25% des regroupements possibles [160].

Les algorithmes [38,122,198] exploitent la s´emantique de la convexit´e d’une ISE pour g´en´erer, tr`es efficacement, l’ensemble exhaustif des ISE d’un graphe. Le principe est d’´enum´erer toutes les ISE par une croissance r´ecursive tout en filtrant les nœuds qui ne permettront pas de respecter la convexit´e.

1.3. Automatisation de l’extension de jeux d’instructions 27 Les complexit´es de ces algorithmes ne sont pas ´evalu´ees mais les techniques mises en œuvre pour r´eduire l’espace de recherche permettent g´en´eralement de produire l’ensemble des motifs connexes pour des contraintes relativement lˆaches (6 entr´ees, 3 sorties) en moins d’une seconde, et ce pour des graphes de plusieurs centaines de nœuds. De plus, ces m´ethodes peuvent g´en´erer des motifs non connexes en un temps raisonnable (ce qu’aucune autre technique ne permet) pour des graphes de plusieurs centaines de nœuds.

La m´ethode [126] est bas´ee sur la programmation par contraintes (cf. chapitre2) et mod´elise un probl`eme de g´en´eration exhaustive des motifs respectant des contraintes qui ne sont pas n´ecessaire- ment lin´eaires (i.e., diff´erentes d’une forme a1x1+ . . . + akxk+ c ≥ 0). Cette flexibilit´e se paie par

un temps de r´esolution qui s’av`ere ˆetre de l’ordre de plusieurs minutes pour des graphes de plusieurs centaines de nœuds et avec des contraintes lˆaches. Cependant, il est int´eressant de remarquer que la s´emantique de la convexit´e utilis´ee dans les approches [38,122, 198] pourrait ˆetre avantageusement mod´elis´ee par des contraintes suppl´ementaires qui permettraient de r´eduire ´enorm´ement l’espace de recherche tout en conservant la flexibilit´e de l’algorithme.

1.3.2.2 Motifs sans contraintes d’entr´ees/sorties

D’autres approches ne cherchent pas `a limiter le nombre d’entr´ees ou de sorties des ISE identi- fi´ees. Ces techniques partent du principe que l’utilisation de pipelining dans les ISE r´eduit l’impact d’un nombre ´elev´e d’entr´ees (ou de sorties) [150] sur sa dur´ee totale d’ex´ecution. Ainsi, les heuris- tiques [51] et [64] construisent des ISE en agglom´erant, respectivement, des motifs de petite taille ou des MaxMISO. Cette agglom´eration ne tient pas compte des entr´ees/sorties et se contente d’assurer la convexit´e des ISE identifi´ees.

Les algorithmes [146,189,13] n’´enum`erent que les ISE convexes, mais pas n´ecessairement connexes, de taille maximale (MaxMIMO). Les premiers travaux `a s’ˆetre int´eress´es aux MaxMIMO se basent sur un graphe de conflit pour les ´enum´erer plus efficacement [146], chaque lien repr´esente deux groupes nœuds qui ne pourront ˆetre r´eunis dans la mˆeme ISE sous peine de briser la convexit´e. Le probl`eme est alors ´equivalent `a l’´enum´eration des plus grands ensembles ind´ependants du graphe de conflit et la complexit´e de l’algorithme est en O(2|Vc|), o`u |V

c| correspond au nombre de nœuds du graphe de

conflit (et qui est g´en´eralement inf´erieur `a celui du graphe). Dans [189] le probl`eme est reformul´e sous forme d’une ´enum´eration de cliques de poids maximal. Dans [13], il est d´emontr´e que le nombre de MaxMIMO d’un graphe G est born´e par2|Vf|, o`u V

f est le nombre de nœuds consid´er´es comme ´etant

incompatibles avec une ISE (e.g., acc`es tableaux) dans G. Ainsi, si aucun nœud n’est interdit dans un graphe, le MaxMIMO est ´evidemment le graphe lui mˆeme. Le probl`eme d’´enum´eration est ensuite r´esolu avec un algorithme par s´eparation et ´evaluation ou par un ILP.

1.3.3

S´election des instructions sp´ecialis´ees

La s´election des ISE consiste tout d’abord `a identifier dans un graphe toutes les occurrences de motifs provenant d’une biblioth`eque (isomorphisme de sous-graphe) et ensuite `a choisir celles qui seront effectivement remplac´ees par des ISE. Il existe de nombreuses techniques de s´election qui se diff´erencient notamment par leurs fonctions respectives d’optimisation et leurs exhaustivit´es.

28 Chapitre 1. Contexte et ´etat de l’art sur l’extension de jeux d’instructions

1.3.3.1 S´elections optimales `a une fonction de coˆut ou de m´erite

Programmation dynamique Les algorithmes [123,44] expriment le probl`eme sous forme de cou- verture binaire (NP-difficile) qui peut ˆetre r´esolu efficacement par un algorithme par s´eparation et ´evaluation [46]. Pour l’algorithme [123] l’objectif est de maximiser la couverture alors que pour [44] c’est la dur´ee d’ex´ecution qui est minimis´ee (i.e., somme des dur´ees des ISE s´electionn´ees). De plus l’approche [44] autorise le recouvrement des occurrences s´electionn´ees : un nœud peut ˆetre couvert par plusieurs ISE et l’op´eration du nœud est alors dupliqu´ee. Ce comportement requiert une surface plus importante mais peut n´eanmoins favoriser la s´election d’instructions sp´ecialis´ees plus int´eressantes [4]. Les travaux [41,197] s´electionnent les occurrences dont l’acc´el´eration mat´erielle est maximale sous contraintes de surface. Dans [41] la r´esolution utilise un algorithme par s´eparation et ´evaluation alors que dans [197] elle correspond `a celle du probl`eme dit de« sac `a dos ».

L’algorithme [124] a l’originalit´e de chercher une solution au probl`eme de s´election d’occurrences pouvant s’ex´ecuter en parall`ele sur une extension VLIW. En effet, dans ce cas, les algorithmes qui minimisent la somme des dur´ees des ISE s´electionn´ees ou qui minimisent le nombre d’occurrences s´electionn´ees ne sont plus adapt´es. Il est alors plus pertinent de minimiser le chemin critique du graphe couvert car plusieurs groupements de nœuds pourront s’ex´ecuter en parall`ele sur l’extension mat´erielle. C’est ce qu’optimise [124] par un algorithme de s´eparation et ´evaluation. Cependant, cet algorithme ne traite pas les difficult´es issues du partage du processeur et du transfert des donn´ees vers/de l’extension VLIW.

Mod´elisation ILP Dans [40,66] un ILP mod´elise le probl`eme de s´election d’occurrences et mini- mise la surface totale n´ecessaire `a la mise en œuvre mat´erielle des motifs des occurrences s´electionn´ees. L’approche [206] se diff´erencie des pr´ec´edentes du fait qu’elle s’int´eresse `a des applications temps r´eel et minimise le WCET20 du graphe. L’algorithme [114] s’appuie ´egalement sur l’ILP pour maximi-

ser les gains obtenus par les ISE en comparaison avec leurs dur´ees d’ex´ecution logicielle (i.e., sur le processeur hˆote).

Mod´elisation CP L’algorithme [196] utilise la programmation par contraintes (cf. chapitre2) pour mod´eliser le probl`eme de s´election et d’ordonnancement (pour un nombre limit´e de ressources d’ex´e- cution) d’ISE. Deux strat´egies de r´esolutions sont propos´ees : minimisation de la dur´ee d’ex´ecution sous contraintes de ressource et minimisation du nombre de ressources sous contraintes temporelles. Cependant, la mod´elisation temporelle des occurrences s’appuie sur des artefacts (appel´es dummy nodes) qui compliquent consid´erablement la r´esolution du probl`eme. De plus, les transferts de don- n´ees entre le processeur et l’extension ne sont pas pris en compte, ils risquent donc de d´egrader nettement la qualit´e des solutions identifi´ees.

L’approche [127] tient compte des transferts de donn´ees lors de l’´evaluation de la dur´ee d’une ISE, elle n’est cependant pas adapt´ee `a un ordonnancement parall`ele car son mod`ele temporel est con¸cu pour minimiser la somme des dur´ees d’ex´ecution des ISE s´electionn´ees.

1.4. R´esum´e 29