• Aucun résultat trouvé

Performances et validation .1Lancer de rayons par paquets.1Lancer de rayons par paquets

Lancer de rayons ultrasonores

3.7 Performances et validation .1Lancer de rayons par paquets.1Lancer de rayons par paquets

else { if(intersection.milieu1 == milieuCourant) { return intersection.milieu2; } else { return intersection.milieu1; } } }

3.7 Performances et validation

3.7.1 Lancer de rayons par paquets

Comme nous avons pu le voir en section 3.1.3, un gain de performances peut être obtenu en lancer de rayons sur CPU avec la bibliothèque Embree en utilisant le lancer de rayons par paquets. Puisqu’il apparaît clairement que les opérations de lancer de rayons seront appelées de très nombreuses fois au cours des simulations d’ondes ultrasonores, il semble utile d’exploiter cette fonctionnalité.

Nous choisissons donc d’implémenter, en plus de l’outil de lancer de rayons ul-trasonores détaillé précédemment, une version permettant de traiter simultanément des rayons par paquets. Nous utilisons pour ce faire la bibliothèque Vector Class

Li-brary, permettant une manipulation portable et transparente des registresSIMDet

gérant les jeux d’instructions modernes.

3.7.2 Validation

Nous avons mené des tests de validation de l’outil de lancer de rayons ultraso-nores que nous avons développé afin de vérifier l’adéquation des résultats qu’il pro-duit avec ceux fournis par l’outil de lancer de rayons ultrasonores implémenté dans

CIVA. Ces tests ont été réalisés en comparant les valeurs de temps de vol et de

posi-tions finales de rayon lancés en milieux isotropes et anisotropes avec des trajets de longueur variable et en utilisant les calculs d’anisotropie algébrique et géométrique. En milieux isotropes, les résultats fournis par notre outil de lancer de rayons sont pratiquement identiques à ceux produits par CIVA pour des rayons identiques, la seule différence étant la précision des nombres à virgule flottante utilisés. En effet,

CIVA utilise des flottants à double précision alors que notre outil, basé sur Embree, se

restreint à des nombres à précision simple. L’erreur observée est donc de l’ordre de l’erreur numérique, négligeable lors des calculs de champ ultrasonore. Pour le calcul algébrique en milieux anisotropes, puisque les résultats sont calculés exactement de la même manière que dans CIVA, le constat est le même qu’en milieux isotropes et les erreurs restent négligeables.

Enfin, dans le cas du calcul géométrique en milieux anisotropes, l’utilisation d’une approximation des surfaces de lenteur par un maillage triangulaire cause des erreurs de précision que l’on peut observer en lisant les résultats du lancer de rayons. Dans l’ensemble des configurations de champ testées, ces erreurs restent de l’ordre de l’erreur numérique et n’ont pas d’impact sur le résultat final de champ.

Pour de plus fortes anisotropies, l’utilisation de maillages adaptatifs avec contrôle préalable de la précision de l’approximation permettrait de réduire significiativement l’erreur commise par la méthode géométrique de calcul de rayons ultrasonores en milieux anisotropes.

3.7.3 Impact de l’anisotropie géométrique sur les performances

Afin d’évaluer l’apport en performances de lancer de rayons du calcul géomé-trique de rayons ultrasonores en milieux anisotropes, nous comparons les perfor-mances de méthodes algébriques et géométriques de lancer de rayons ultrasonores en milieux anisotropes. Ces résultats de performances sont ensuite comparés à ceux obtenus dans les mêmes conditions dans un milieu isotrope.

La pièce utilisée pour ce test de performance est une pièce plane et de nombreux rayons sont lancés dans des directions aléatoires (mais identiques d’un test à l’autre) depuis un point d’origine. Chaque rayon subit un nombre n de réflexions sur les bords de la pièce au cours du calcul, que l’on fait varier de 0 à 2. Le mode suivi est systématiquement le mode longitudinal (L en milieu isotrope et qL en milieu anisotrope).

Le maillage de surfaces de lenteur utilisé est uniforme et composé de 65 000 triangles tandis que le maillage de la pièce en comporte 12. On lance pour chaque test 1 million de rayons aléatoires en utilisant un unique cœur d’un processeur Intel Xeon E5-1650v2. Les résultats de ces mesures de performances sont présentés dans la table3.2.

Réflexions 0 1 2

Isotrope 3.8 2.1 1.5

Anisotrope géométrique 0.51(/7.6) 0.32(/6.6) 0.23(/6.3) Anisotrope algébrique 0.089(/43) 0.044 (/48) 0.030 (/49)

Table 3.2 – Performances (en millions de rayons par seconde) du lancer de rayons ultrasonores dans des matériaux isotropes et anisotropes, en calcul algébrique et géométrique, pour différents nombres de réflexions

On constate un rapport de performances entre les calculs anisotropes algébriques et géométriques d’environ×8. L’utilisation de surfaces de lenteur géométriques

ap-porte donc un net gain de performances en lancer de rayons ultrasonores. L’écart de performances entre calculs isotropes et calculs anisotropes géométriques se situe quant à lui aux alentours de 6 à 7. Ainsi, les calculs de rayons ultrasonores en milieux anisotropes restent sensiblement plus coûteux qu’en milieux isotropes, tout en étant nettement améliorés par rapport à la version algébrique.

3.8 Conclusion

Dans ce chapitre, nous avons commencé par rappeler les principes de base de la méthode de lancer de rayons et ses applications au rendu photo-réaliste. Puis, évoquant les problèmes de performances communs dans ce domaine, nous avons présenté deux solutions logicielles exploitant deux architectures différentes : leCPU

et leGPU. Celles-ci offrent des outils géométriques optimisés applicables à tout type de simulation basé sur le lancer de rayons.

Nous avons ensuite établi dans quelle mesure le lancer de rayons peut s’appliquer aux simulations de champ ultrasonore avant de proposer un modèle de rayons ultra-sonores permettant l’échantillonnage d’un front d’onde. Ceci nous a permis de mettre en place les bases d’une implémentation optimisée de lancer de rayons ultrasonores exploitant la bibliothèque Embree.

Enfin, au vu du coût calculatoire important du lancer de rayons en milieux aniso-tropes, nous avons proposé une solution géométrique moins coûteuse que la solution algébrique et exploitant de nouveau les performances de l’outil de lancer de rayons

Embree. En construisant des maillages des surfaces de lenteur des matériaux

aniso-tropes considérés, nous avons pu améliorer significativement les performances du lancer de rayons ultrasonores en milieux anisotropes. Des résultats de performance et de validation ont également été détaillés.

CHAPITRE

4