Processeurs Graphiques  Partie 2 : Fonctionnement Interne Du GPU

Processeurs Graphiques  Partie 2 : Fonctionnement Interne Du GPU

École thématique ARCHI 07 Plan 19-23 mars 2007 Partie 1 : Introduction Processeurs Graphiques Partie 2 : Fonctionnement interne du GPU Partie 3 : Utilisation du GPU David Defour DALI, Université de Perpignan École thématique ARCHI07 mars 2007 2/105 Partie 1 : Introduction Puissance de calcul flottant 32 bits Le calcul ne coûte pas chère Type d’application Place du GPU dans le système Présentation du pipeline graphique École École thématique thématique ARCHI07 ARCHI07 mars 2007 mars 2007 Source : “A Survey of General-Purpose Computation on Graphics Hardware”, J. D. Owens, D. Luebke, N. Govindaraju, M. Harris, J. Krüger, A. E. Lefohn, and T. J. Purcell 3/105 4/105 Pentium III, 256Ko cache, 0.18 µµµm, 28.1 M Aujourd’hui le calcul ne coûte pas cher… transistors, 90 mm² 2.5 MM² Utilisation du silicium : Communication ( Bus ) Contrôle ( Exécution d’instruction, ooo ) Mémoire ( Cache, registres ) Calcul ( Unités de calcul ) École École thématique Si l’on ramène tout ça à la taille d’une puce … thématique ARCHI07 ARCHI07 mars 2007 mars 2007 Source : www.sandpile.org 5/105 6/105 Pentium M, 2Mo cache, 65nm, 151.6 M transitors, Concrètement … 91 mm² Le calcul ne coûte pas cher 0.9mm FPU du Pentium III : ~2% Puce en 65nm FPU de l’Intel Core 2 : 64-bit FPU <1% La mémoire augmente mais la latence aussi Pentium III, cache L2 : 256Ko / 4 cycles Intel Core 2, cache L2 : 2Mo / 14 cycles Le transfert de donnée devient très coûteux École École 0.18 µm : 12.1 ps/mm thématique thématique 65 nm : ~30-60 ps/mm ARCHI07 ARCHI07 Source : www.sandpile.org mars 2007 mars 2007 10mm 7/105 8/105 Introduction Comment calculer plus ? Utiliser les transistors disponibles pour calculer plus et plus vite 2 approches : 1. Mécanismes pour exploiter le parallélisme de données Pourquoi plus de calcul ? • Jeux d’instructions SIMD (MMX, SEE, SEE2) Cryptographie • Opérations entières (XOR, <<, …) • Opérations sur les grands entiers 2. Architectures dédiées • Physics Processing Unit (Ageia) Calcul scientifique • Processeurs réseaux (AMD, Infineon, Motorola, …) • Multiplication matricielle • Simulation • Cell (IBM, Sony, Toshiba) • Processeurs graphiques (ATI/AMD, Nvidia) Multimédia École • Traitement de l’image École thématique • Traitement du son thématique ARCHI07 • Traitement de l’information ARCHI07 mars 2007 mars 2007 9/105 10/105 Utilisation de la puissance de calcul : Films Applications des GPU: Jeux École École thématique thématique ARCHI07 ARCHI07 mars 2007 mars 2007 11/105 12/105 Applications des GPU : Visualisation, CAD Applications des GPU : Réalité virtuelle École École thématique thématique ARCHI07 ARCHI07 mars 2007 mars 2007 13/105 14/105 Applications des GPU : Calcul scientifique GPU comme coprocesseur Exemples de speed-up par rapport au CPU : FFT : x 4 « High Performance GPU-based FFT Library », Govindaraiu et al. Décomposition LU : x3 - 5 « LU-GPU: Algorithms for dense Linear Systems on Graphics Hardware », Galoppo et al. Finite Difference Time Domain(FDTD, maxwell) : x30 - 50 http://www.emphotonics.com/fastfdtd.html Recherche, tri dans base de données : x4 « GPUTeraSort: High Performance Graphics Coprocessor Sorting for Large Database Management », Govindaraiu et al. École École Pliage de protéine : x 40 thématique thématique ARCHI07 ARCHI07 http://folding.stanford.edu/ mars 2007 mars 2007 15/105 16/105 GPU dans le système Bus : les autoroutes de la carte mère PCI Carte Vidéo PCI cadencé à 33 MHz en 32 bit : 125 Mo/s maximum Mémoire PCI cadencé à 33 MHz en 64 bit : 250 Mo/s maximum vidéo PCI cadencé à 66 MHz en 32 bit : 250 Mo/s maximum PCI cadencé à 66 MHz en 64 bit : 500 Mo/s maximum GPU AGP AGP 1x (250 Mo par seconde), AGP 2x (500 Mo par seconde, deux transferts par cycle au lieu d'un) Northbridge AGP 4x (1 Go par seconde), + Bus Système AGP 8x (2 Go/s maximum) (PCI,AGP,PCIe…) PCI Express PCI Express 1X (250 Mo/s) Carte Mère PCI Express 32X (8 Go/s ) École CPU École thématique thématique HyperTransport ARCHI07 ARCHI07 HyperTransport 2.0 (22,4 Go/s, 1,6 GHz) Mémoire système HyperTransport 3.0 (41,6 Go/s, 2,6 Ghz) mars 2007 mars 2007 17/105 18/105 Communications entre CPU et GPU Le pipeline graphique Comment passer d’ici à là ? Application Commandes Géométrie Rasterization École École Pixel thématique thématique ARCHI07 ARCHI07 mars 2007 mars 2007 Écran 19/105 20/105 Le pipeline graphique Le pipeline graphique Application Application Gears of war : Définition du jeu Commandes Commandes Bus CPU Réseaux Système GPU Interface avec l’utilisateur Géométrie Géométrie Physiques IA Rasterization Rasterization École Pixel École Pixel thématique thématique ARCHI07 ARCHI07 mars 2007 Écran mars 2007 Écran 21/105 22/105 Le pipeline graphique Le pipeline graphique Application Application Gears Of War : Commandes Commandes Envoi des commandes DirectX Géométrie Géométrie Drivers DirectX : GPU : Traitement des commandes Transformation des Sommets Rasterization DirectX Rasterization Calcul de la lumière Envoi des instructions au GPU Elimination des objets en dehors de École Pixel École Pixel la scène thématique thématique Assemblage des primitives ARCHI07 ARCHI07 mars 2007 Écran mars 2007 Écran 23/105 24/105 Le pipeline graphique Le pipeline graphique Application Application Commandes Commandes Géométrie Géométrie Rasterization GPU : Rasterization Conversion des triangles en Pixel GPU : École Pixel Interpolation des coordonnées de École Pixel Application de la texture thématique texture thématique ARCHI07 ARCHI07 Test de profondeur Interpolation de couleur mars 2007 Écran mars 2007 Écran Mélange des couleurs 25/105 26/105 Le pipeline graphique Pipeline graphique traditionnel Application Application Fonctions pré-définies Configurable en utilisant les états OpenGL / DirectX Commandes Vertex Processor Fonctionnalités limitées Géométrie Rasterization Rasterization Pixel École Pixel École Processor thématique thématique ARCHI07 ARCHI07 mars 2007 Écran mars 2007 Écran 27/105 28/105 Nouveau Pipeline graphique Vertex Shaders Application Application Vertex Vertex Processor Processor Programmable Les vertex shaders permettent d’animer/modifier les caractéristiques des sommets Rasterization Rasterization Calcul de la lumière Pixel Pixel Processor Processor École Programmable École thématique thématique Ils sont flexibles et rapides ARCHI07 ARCHI07 mars 2007 Écran Écran mars 2007 29/105 30/105 Pixel Shaders Chaque pixel est calculé individuellement PARTIE 2 : Fonctionnement interne du GPU École Les pixels shaders ont une vue partielle des pixels voisins. École thématique thématique ARCHI07 ARCHI07 mars 2007 mars 2007 31/105 32/105 Partie 2 : Fonctionnement interne du GPU Bloc diagramme d’un GPU Commandes Command & data fetch 1. Données Vertex Shader Géométrie 2. Tesselation Cull/Clip/Setup 3. Géométrie, lumière et vertex shader Rasterization Z-Cull Rasterization 4. Clipping, culling Shared 5. Tramage L2 Pixel Pixel Shader texture 6. Pixel Shader Cache Fragment pixel crossbar 7. Test alpha 8. Brouillard Z-compare & Blend École École thématique thématique Memory Memory Memory Memory ARCHI07 ARCHI07 partition partition partition partition mars 2007 mars 2007 Écran 128 Mo 128 Mo 128 Mo 128 Mo GDDR 3 GDDR GDDR 3 GDDR 3 GDDR 33/105 3 GDDR 34/105 Vertex / Vertices Données primitives Permettent de créer des formes géométriques Formes géométriques simples Vertex {x, y, z, w} Point (effet de particule) Coordonnées finales : {x/w, y/w, z/w} W est le caractère homogène généralement = 1 Ligne + d’autres informations Couleur diffuse : {r,g,b,a} Triangle Couleur du vertex lorsque celui-ci est éclairé par une lumière blanche Couleur spéculaire : Couleur réfléchie par le vertex Triangle fan Normale à la surface : Permet le calcul d’éclairage Triangle strip École Coordonnées de textures (u, v) École thématique thématique ARCHI07 Taille mémoire croissante ~ jusqu’à 256 octets ARCHI07 Tampons d’indexation mars 2007 {x,y,z,w} : 16, {r,g,b,a} : 4, normale : 12 … mars 2007 Réutilisation des vertex en utilisant des indices 35/105 36/105 Format de représentation des données 2. Tesselation Virgule fixe 123.45678 Principe : Augmenter le nombre de vertices pour augmenter la finesse de 8, 16, 32 la surface. Signé, non signé Compression de plusieurs données dans un seul nombre Interpolation pour arriver à une résolution donnée (combinaison de 5,6,5 ; 1,5,5,5 ; …) Dépend de la position de l’objet (près, distant) Virgule flottante 1.12345678 e 2 Calcul à partir de la Position du vertex + normale fp16, fp24, fp32 Support partiel de la norme IEEE-754 École École thématique thématique ARCHI07 ARCHI07 mars 2007 mars 2007 Tesselation point-normal d’ATI Tesselation d’un modèle complexe 37/105 38/105 3. Géométrie, lumière et vertex shader Translation Objectif : Transformations géométriques + Lumière Rotation, translation Transformation de système de coordonnées Changer la forme d’un objet Changer la position d’un objet dans une scène Dupliquer des objets Calcul de projection pour les caméras virtuelles Animations Solutions : Vertex processor fixe École Vertex processor programmable École thématique thématique ARCHI07 ARCHI07 mars 2007 mars 2007 39/105 40/105 Rotation Mise à l’échelle Uniforme Déformante École École thématique thématique ARCHI07 ARCHI07 mars 2007 mars 2007 41/105 42/105 Lumière : Diffusion Lumière : Réflexion (miroir) Loi de Lambert : L’intensité lumineuse réfléchie est proportionnelle au cosinus de Miroir parfait : l’angle d’incidence de la lumière θθθl = θθθr Calcul : Model d’illumination

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    27 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us