Fonctions élémentaires sur GPU exploitant la localité de valeurs
Résumé
Les processeurs graphiques sont de puissants coprocesseurs SIMD dédiés au traitement du parallélisme de donnée issue d'application multimédia ou du domaine du calcul généraliste sur processeur graphique (GPGPU). Ces processeurs intègrent différentes unités spécialisées dupliquées de nombreuses fois. Parmi ces unités spécialisées, on retrouve les unités d'évaluation de fonctions de base (inverse, inverse de la racine carrée, exponentielle, fonctions trigonométriques. . . ). L'objectif de cet article est de proposer une modification architecturale destinée à réduire la surface totale occupée par ces unités tout en conservant des performances comparables. Cette modification exploite la localité de valeurs dans un contexte d'exécution SIMD pour partager les tables nécessaires. Deux versions sont proposées et testées : Un partage de table limité à chaque bloc SIMD et un partage global d'une table unique avec des caches partagés au niveau des blocs SIMD. Les tests sont menés à la fois sur les benchmarks classiques qui représentent le travail de développeurs experts et sur des simulations dans le domaine du développement durable qui représentent le travail d'utilisateurs d'outils intégrés. Les traces d'exécution de ces derniers codes sont isponibles auprès des auteurs.
Origine | Fichiers produits par l'(les) auteur(s) |
---|