Next: 2.2.3 Les différentes étapes
Up: Un exemple
Previous: Architecture
Nous avons effectué divers tests sur une
application de simulation d'onde sismique à deux dimensions (Institut
Français du Pétrole). La structure du "noyau" de calcul est celle
présentée sur la figure 2.2.2. Les transformations que nous
avons utilisées sont : le parenthésage pour aider le compilateur à
"retrouver" les multiply-add et les quad loads; un déroulage de
boucle; de l'ordonnancement des calculs (software pipelining), et une
atomisation (pour une manipulation plus efficace des registres). Nous
avons pu obtenir un gain de 2.5 (soit un passage de 40 à 100
Mflops). Il est
à noter que "l'aide" apportée au compilateur pour extraire les
expressions de type "multiply-add" ont à elles seules permis de passer
de 40 à 85 Mflops. Il est donc très intéressant de pouvoir aider le
compilateur à générer ce type d'instructions, en profitant d'une
vision plus "élargie" des expressions.
Figure 6: Simulation d'onde sismique à 2 Dimension.
Julien Zory
Thu Mar 12 17:35:23 MET 1998