Détection de Collision : D'un Algorithme sur Multi-Cœurs à une Nouvelle Dimension dans le Pipeline 3D
Résumé
Depuis quelques années les architectures machines subissent une impressionnante évolution. Les architectures processeurs évoluent d'un simple coeur aux multi et many coeurs, parallèlement les cartes graphiques confirment leur statut de ”supercalculateur” en dépassant largement la puissance de calcul des processeurs. Face à cette évolution, les nouvelles tendances d'optimisation de la détection de collision consistent à proposer une solution qui s'adapte à l'architecture d'exécution. Nous présentons dans cet article, deux contributions dans le domaine de la détection de collision au sein de larges environnements virtuels. Nous présentons tout d'abord, une première façon de paralléliser l'étape initiale (broad-phase) du pipeline de détection de collision sur une architecture multi-coeurs. Nous décrivons ensuite une nouvelle manière de représenter le pipeline en prenant en compte l'architecture d'exécution. L'algorithme de broad-phase que nous avons utilisé est celui du ”Sweep and Prune”, nous l'avons adapté à une utilisation multi-thread. Afin de manipuler au mieux un ou plusieurs threads par coeur, les sections critiques et l'attente des threads doivent être minimisées. Notre modèle fonctionne sur des architectures n-coeurs et divise par 3 le temps d'exécution sur une architecture 8-coeurs.
Domaines
Modélisation et simulationOrigine | Fichiers produits par l'(les) auteur(s) |
---|
Loading...