Étude comparée et simulation d'algorithmes de branchements pour le GPGPU

L'acceleration d'applications generalistes a l'aide de processeurs graphiques (GPGPU) permet d'obtenir de bonnes performances pour un faible investissement. Toutefois, la structure interne de ces processeurs est largement inconnue et les compteurs de performances ne sont que peu ou pas accessibles. Cette absence contraint fortement les developpeurs dans les optimisations qu'ils peuvent mettre en place pour ces architectures. Une solution est de simuler le comportement d'un programme afin de recueillir des statistiques d'execution. Dans cet article nous presentons d'une part un simulateur fonctionnel de processeur graphique cible pour le GPGPU base sur l'envi- ronnement de simulation modulaire UNISIM prenant en entre du code binaire CUDA pour processeurs NVIDIA. D'autre part, nous exposons la problematique de la gestion des branchements par predication pour les architectures SIMD et effectuons un etat de l'art des differentes solutions adoptees par les principaux constructeurs de GPU. Enfin, nous proposons une technique materielle originale de suivi des branchements permettant de simplifier le jeu d'instructions utilise, et la validons au moyen du simulateur.

[1]  Todd M. Austin,et al.  SimpleScalar: An Infrastructure for Computer System Modeling , 2002, Computer.

[2]  Olivier Temam,et al.  MicroLib: A Case for the Quantitative Comparison of Micro-Architecture Mechanisms , 2004, 37th International Symposium on Microarchitecture (MICRO-37'04).

[3]  Ronald G. Dreslinski,et al.  The M5 Simulator: Modeling Networked Systems , 2006, IEEE Micro.

[4]  Stuart F. Oberman,et al.  A high-performance area-efficient multifunction interpolator , 2005, 17th IEEE Symposium on Computer Arithmetic (ARITH'05).

[5]  Scott Devine,et al.  Using the SimOS machine simulator to study complex computer systems , 1997, TOMC.

[6]  Henry Wong,et al.  Analyzing CUDA workloads using a detailed GPU simulator , 2009, 2009 IEEE International Symposium on Performance Analysis of Systems and Software.

[7]  Sharad Malik,et al.  Achieving Structural and Composable Modeling of Complex Systems , 2004, IPDPS Next Generation Software Program - NSFNGS - PI Workshop.

[8]  Kevin Skadron,et al.  A flexible simulation framework for graphics architectures , 2004, Graphics Hardware.

[9]  David Parello,et al.  Barra, a Modular Functional GPU Simulator for GPGPU , 2009 .

[10]  Olivier Temam,et al.  UNISIM: An Open Simulation Environment and Library for Complex Architecture Design and Collaborative Development , 2007, IEEE Computer Architecture Letters.

[11]  Tor M. Aamodt,et al.  Dynamic Warp Formation and Scheduling for Efficient GPU Control Flow , 2007, 40th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO 2007).

[12]  Erik Lindholm,et al.  NVIDIA Tesla: A Unified Graphics and Computing Architecture , 2008, IEEE Micro.

[13]  David Defour,et al.  État de l'intégration de la virgule flottante dans les processeurs graphiques , 2008, Tech. Sci. Informatiques.

[14]  Gunar Schirner,et al.  Quantitative analysis of the speed/accuracy trade-off in transaction level modeling , 2008, TECS.

[15]  Carlos González,et al.  Shader performance analysis on a modern GPU architecture , 2005, 38th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO'05).

[16]  Fredrik Larsson,et al.  Simics: A Full System Simulation Platform , 2002, Computer.

[17]  Milo M. K. Martin,et al.  Multifacet's general execution-driven multiprocessor simulator (GEMS) toolset , 2005, CARN.

[18]  Thomas F. Wenisch,et al.  SimFlex: Statistical Sampling of Computer System Simulation , 2006, IEEE Micro.

[19]  W. Dally,et al.  Efficient conditional operations for data-parallel architectures , 2000, Proceedings 33rd Annual IEEE/ACM International Symposium on Microarchitecture. MICRO-33 2000.