next up previous
Next: 2.2.3 Les différentes étapes Up: Un exemple Previous: Architecture

Application

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 Mflopsgif). 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