La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2.

Présentations similaires


Présentation au sujet: "1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2."— Transcription de la présentation:

1 1

2 Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

3 De nos jours, n'importe quel ordinateur disponible sur le marché dispose d'une carte graphique capable d'accélérer l'affichage 3D. Ces cartes ne pouvaient effectuer que des opérations assez basiques, ont très vite évolué vers des systèmes de plus en plus complexes, de plus en plus puissants, et de plus en plus performants. Introduction 3

4 GPU ? ( Graphics Processing Unit ) Un GPU est un microprocesseur présent sur les cartes graphiques au sein dun ordinateur ou dune console de jeux vidéo. Le GPU se charge des opérations daffichage et de manipulation de données graphiques. Les GPUs des cartes graphiques modernes (en 2009) ont une structure hautement parallèle qui les rend efficaces pour une large palette de tâches graphiques comme le rendu 3D, en Direct3D, en OpenGL, la gestion de la mémoire vidéo, traitement du signal vidéo… 4

5 Peu dentreprises travaillent sur la conception de tels processeurs : NVIDIA, ATI/AMD, Intel Corporation, le principal fabricant de processeurs graphiques en 2009, et S3 Graphics (de VIA Technologies) se partagent plus de de ce marché fortement disputé. Citons aussi Matrox, 3DLabs, et XGI. Des fabricants (Asus, MSI, PNY …) se chargent ensuite de proposer des cartes graphiques intégrant ces processeurs 5

6 6

7 7 Les IGP suffisent si le matériel nest pas sollicité par les jeux modernes.Les cartes mères actuelles ont souvent un processeur graphique intégré et un (ou plusieurs)port permettant dajouter une carte graphique dédiée.

8 Clipping Culling Tramage Données Vertices Données Primitives Tessellation Vertex Pipeline Pixel Pipeline Tests alpha, profondeur, brouillon Brouillard, Alpha blending Vue densemble 8

9 Données Vertices Données Primitives Tessellation 9

10 Tous les objets dune image 3D sont constitués de vertex. Depuis l'avènement des GPUs programmables (vertex shaders), il est possible d'ajouter au vertex des dautres informations qui n'ont aucune signification particulière pour la carte graphique (Couleur diffuse et spéculaire, Normale, Coordonnées de textures, Taille du point, Poids du vertex ) Un vertex est un point dans un espace à trois dimensions avec des coordonnées des sommets des primitives (X,Y,Z,W) 10

11 Données Vertices Données Primitives Tessellation 11

12 Une primitive est une forme géométrique simple, allant du point au polygone.Les vertices permettent de former ces formes géométriques Il existe quelques types de primitives et les plus utilisées sont : les points, les lignes, Triangle qui est le plus utilisé,(triangle fan,triangle strip). Dans le cas d'une primitive de type point, un seul vertex correspondra à une seule primitive. Dans le cas d'un triangle, il en faudra trois pour former la primitive. 12

13 Données Vertices Données Primitives Tessellation Vertex Pipeline 13

14 La tessellation est une technologie récente sur les cartes graphiques. Elle est basée sur lidée de générer des vertices afin d'augmenter leur nombre et ainsi augmenter la finesse de la surface dont ils font partie. Pour ce faire, la partie du GPU qui s'occupe de la tessellation (le tessellateur) n'a besoin que de deux informations : o La position du vertex. o La normale. Le tessellateur va interpoler la position et la normale afin de générer de nouvelles vertices entre deux vertices existantes. 14

15 Une méthode plus adéquate: faire varier le nombre de vertices afin que les objets proches en possèdent beaucoup et que les objets distants en possèdent peu. L'idéal serait augmenter le nombre de vertices afin que chaque vertex corresponde à un pixel à l'écran Le plus simple : Le tessellateur augmente le nombre de vertices jusqu'à arriver à une certaine résolution, mais ce n'est pas très utile : les objets distants seraient très détaillés or les détails ne seraient pas visibles. Il existe plusieurs algorithmes de tessellation: La tessellation d'un modèle plus complexe: En plus d'interpoler les coordonnées, le tessellateur a également interpolé les normales.C'est pourquoi l'éclairage de la surface s'adapte correctement au fur et à mesure que le nombre de triangles augmente. 15

16 Tessellation Vertex Pipeline Clipping Culling Tramage 16

17 Il transforme les coordonnées du vertex (sa position) à l'aide de matrices, qui définissent la translation, la rotation ou encore l'échelle à appliquer aux coordonnées. Ensuite, il peut effectuer de simples calculs au niveau de l'éclairage, en se basant sur la position de la lumière et la normale du vertex. 17

18 Est assez proche du pipeline fixe, sauf que les développeurs peuvent remplacer le mécanisme de traitement des vertices par leurs propres programmes. Avantage principal : une énorme flexibilité au niveau des algorithmes de rendu. 18

19 Ils font 128 bits et stockent quatre valeurs. Ils sont assez proches des registres dédiés au SSE présents sur les processeurs de nos machines. Lorsque le vertex shader effectue des opérations sur ces registres, elles sont effectuées en parallèle sur chaque groupe de 32 bits. Un vertex shader est composé de différents éléments: Rôle: Contenir des valeurs sous forme de 4 nombres en virgule flottante. Cas des coordonnées: chaque composante ira à sa place Cas des couleurs: le rouge correspondra à X, le vert à Y, le bleu à Z et la composante alpha à W. Certains éléments plus importants (comme le poids du vertex) pourront être répartis sur plusieurs registres. 19

20 20

21 21

22 22

23 Les Boucles: qui permettent de répéter certaines instructions plusieurs fois. Cela permet également d'économiser des instructions, puisque le nombre d'instructions est limité. Les Branchements Conditionnels: permettent d'effectuer certaines instructions sous certaines conditions, réduisant cette fois-ci le nombre de shaders différents à écrire, plutôt que le nombre d'instructions. Le GPU exécutait "bêtement" les instructions les unes après les autres. Il arrivait donc souvent que plusieurs vertex shaders offrant des fonctionnalités quasiment identiques soient créés, avec seulement une ou deux instructions différentes. Le contrôle du le flux des shaders est possible avec: 23

24 Pas mal de choses peuvent influencer les performances du vertex pipeline. Il est donc intéressant de savoir ce qui peut faire qu'une carte graphique sera plus rapide qu'une autre. 24

25 25

26 Clipping Culling Tramage Vertex Pipeline 26

27 Elle permet de ne pas afficher certaines primitives invisibles. En effet, lorsque les primitives sont affichées, les vertices sont spécifiés dans un certain ordre qui peut être dans le sens des aiguilles d'une montre ou l'inverse. Cependant, ce sens détermine la "face avant" et la "face arrière" d'une primitive. Ceci permet d'augmenter les performances, puisque lors de l'affichage d'un modèle, l'arrière de celui-ci ne sera pas affiché. le culling peut être désactivé, puisqu'il est parfois utile d'afficher les faces arrières des primitives. Culling 27

28 Clipping Elle permet de diminuer la quantité de données à afficher en déterminant leur visibilité. En fait, il existe plusieurs types de clipping. Lorsqu'un vertex devrait être affiché "hors" de l'écran, il ne passe pas le test de clipping, et n'est donc pas affiché. Il est possible de définir des plans de clipping qui permettront de définir une zone en dehors de laquelle les informations ne passeront pas le test de clipping. 28

29 Tramage Il sagit de la construction des primitives à partir des vertices Un certain nombre de pixels sera ainsi créé A noter que certains types d'anti-aliasing peuvent déjà être utilisés lors de cette étape, afin notamment de rendre le contour des primitives plus lisse. Une fois ces pixels générés, leurs données sont envoyées au pixel pipeline. 29

30 Tramage Pixel Pipeline Tests alpha, profondeur, brouillon 30

31 Tout comme le vertex pipeline, il existe deux versions du pixel pipeline: Une version fixe comme sur les anciennes cartes graphiques Une version programmable : les pixel shaders. Pixel Pipeline Pixel les coordonnées des textures,.. Pixel complet 31

32 Pixel Pipeline : version fixe Lenvoie et le filtrage des textures doivent est effectué par des TMU qui travaillent en conjonction avec les unités de pixel et vertex shaders. Sa tâche consiste à appliquer les opérations de texture aux pixels. Une carte possédant plus de TMU sera plus rapide pour traiter les informations de texture. Unités dapplications des textures (TMU) 32

33 Le taux de remplissage indique généralement la vitesse à laquelle un processeur graphique peut dessiner des pixels. Il y a deux types de taux de remplissage : 1. Le taux de remplissage des pixels Cest le nombre total de pixels que la carte peut sortir et il est calculé en multipliant le nombre dopérations de rastérisation (ROP) par la fréquence dhorloge. Taux de remplissage 33

34 2. taux de remplissage des textures Nvidia: Lobtient en multipliant le nombre de canaux de pixels par la fréquence dhorloge. ATI: Multiplie le nombre dunités de calcul de texture par la fréquence dhorloge. Ces deux méthodes sont correctes car Nvidia a une unité de texture par unité de shader ou une par canal de pixel. 34

35 Pixel Pipeline : version programmable Les pixel shaders sont utilisés pour toutes sortes deffets graphiques impressionnants. On utilise le nombre de pixel shaders dun processeur graphique pour comparer différentes cartes graphiques au niveau de la vitesse de traitement des pixels. Pixel pipeline :unité de Processeur de pixel 35

36 Texkill Elle contrôle le flux du pixel pipeline. Elle permet de "tuer" un pixel, c'est à dire d'annuler son rendu. C'est non seulement très utile pour certaines techniques d'affichage, mais cela permet également d'augmenter les performances puisque le pixel n'ira pas plus loin dans le processus de rendu. Instructions Ces instructions vont réaliser des opérations sur les valeurs qui leur sont fournies (par exemple une couleur). D'autres informations sont disponibles comme les coordonnées U/V des textures. 36

37 Texld (texture load) Permet d'aller chercher des données dans les textures. Ces données peuvent être de simples couleurs, pour l'utilisation la plus classique des textures, ou tout autre type de données. A noter que cette instruction a longtemps été réservée aux pixel shaders, mais qu'elle est disponible dans les vertex shaders 3.0 (c'est d'ailleurs pratiquement la seule différence avec les vertex shaders 2.x). 37

38 Pixel Pipeline : performances Nombre de pixel pipelines Plus il y a de pixels à traiter, plus c'est lent. Plus il y a de pipelines capables de les traiter, plus c'est rapide. Les performances sont donc en grande partie définies par le nombre de pipelines disponibles. L'augmentation des performances apportées par ces pipelines supplémentaires tend même à être linéaire, les performances étant pratiquement doublées si le nombre de pipelines est doublé. 38

39 Anti-aliasing Cest une opération qui était gourmande lors de son apparition. Les performances étaient grandement dégradées, et elle n'était pas vraiment utilisable. Depuis maintenant quelques générations de cartes graphiques, c'est beaucoup mieux et l'utilisation de l'anti-aliasing peut être une alternative à l'utilisation d'une plus haute résolution. Les performances de l'anti-aliasing ne dépendent pas réellement des spécifications de la carte graphique, et il est donc difficile de deviner à quel point les performances seront affectées 39

40 Filtrage anisotropique Le filtrage anisotropique est une technique permettant d'interpoler les pixels afin de lisser les textures, tout comme les filtrages bi-linéaires et tri-linéaires. Le filtrage anisotropique a cependant une certaine influence sur les performances de la carte graphique, bien que de nos jours il ne s'agisse que de quelques images par seconde perdues (et encore). 40

41 Pixel Pipeline Tests alpha, profondeur, brouillon Brouillard, Alpha blending 41

42 Test alpha Le test alpha permet de contrôler l'affichage des pixels d'après cette composante alpha. Il est possible de ne pas afficher les pixels où la composante alpha est à moins de 50%, par exemple. A noter également que l'utilisation de la transparence consomme une certaine quantité de bande passante, puisqu'il y a techniquement plus de pixels à afficher. 42

43 Test de profondeur Le test de profondeur agit plus ou moins comme le test alpha, mais au lieu de se baser sur la composante alpha, il se base sur la profondeur du pixel. Le test de profondeur permet surtout de ne pas avoir à afficher les pixels qui ne seront pas visibles. En effet, si un pixel est déjà présent à une certaine profondeur (chose vérifiée à l'aide du tampon de profondeur), un autre étant au même endroit mais à une plus grand profondeur n'a aucune raison d'être affiché puisqu'on ne le verra pas. 43

44 Le Z Buffer - (blanc: proche; noir: loin) 44

45 Test brouillon Le test brouillon fonctionne comme le test de profondeur, mais au lieu de tester la profondeur il va tester la valeur qui se trouve dans le tampon brouillon (stencil buffer). Il a de nombreuses utilités, mais est principalement utilisé pour créer des ombres ou autres effets où la forme ou le contour d'un objet sont requis. 45

46 Tests alpha, profondeur, brouillon Brouillard, Alpha blending 46

47 Brouillard Cest une technique de rendu. C'est ce bon vieux brouillard que l'on voit au loin, pour que les objets n'apparaissent pas d'un coup. Il est tout de même légèrement configurable, et plusieurs formules mathématiques peuvent être utilisées pour choisir où se trouve le brouillard ou sa couleur. 47

48 Mélange alpha Différentes formules sont disponibles, permettant de choisir ce qui sera pris en compte, à partir de deux pixels, lors du calcul du pixel qui en résultera. Ces deux pixels sont les pixels de source et de destination (le nouveau pixel et celui qui était déjà présent). Le mélange alpha a un impact sur les performances des cartes graphiques, mais pas un impact direct. Ainsi, n'importe quelle carte graphique peut mélanger deux pixels sans la moindre difficulté et en quelques nanosecondes. 48

49 Rendu final Transformation du viewport Le viewport est une forme géométrique (généralement un rectangle) qui définit où les pixels vont se retrouver dans la fenêtre. Ce viewport peut faire en sorte que toute la scène ne soit affichée que sur un morceau de la fenêtre, ce qui peut être utile pour les jeux où l'écran est partagé en deux. 49

50 Anti-aliasing LAliasing est un terme qui décrit des motifs crénelés ou dont on voit les blocs dans laffichage des images numériques. Dans le cas du graphisme, cela fait référence à leffet descalier sur les bords anguleux lors de laffichage à lécran. Lanti-aliasing ('AA' en abrégé) est une fonction graphique qui diminue cet effet. Cela dit, comme les calculs danti- aliasing utilisent une grosse part de la puissance du processeur graphique, lactiver provoque une diminution significative du débit dimages. 50

51 Unités de shader / vertex pipeline. Performances globales Les unités de shader s'occupent d'exécuter les vertex et pixel shaders. Lorsque des vertices sont envoyés à la carte graphique, ce n'est pas un seul à la fois, mais bien des milliers. Il est donc très simple d'effectuer leur traitement en parallèle. Du coup, plus y a d'unités de shader, plus vite les vertices sont traités. 51

52 Unités de texture / pixel pipelines Les unités de texture s'occupent de gérer les textures. Chaque unité peut contenir une texture. Lors de l'affichage de primitives possédant plus d'une texture, il faut autant d'unités de texture qu'il y aura de textures sur la primitive. Cependant, si il y en a moins (par exemple, il y a quatre unités de texture et six textures doivent être affichées), la primitive devra être affichée une première fois avec les quatre premières textures, puis une seconde fois avec les deux textures restantes, ce qui dégrade grandement les performances. 52

53 conclusion Augmentations de la complexité et des performances Unités de Texture et de Shader Un autre facteur est l'augmentation des unités de texture ou de shader. La génération qui va bientôt être disponible disposera de jusqu'à 32 unités de shader. La GeForce 3 n'en avait qu'une. Ce n'est peut- être pas la façon la plus élégante d'augmenter les performances d'une carte graphique, mais c'est certainement une des plus efficaces. Nouveau Shader Model Cette augmentation de complexité se caractérise principalement par l'augmentation des possibilités apportées par chaque nouveau shader model. Le shader model 4.0 est en chemin, et apporte une nouvelle fois son lot de nouveautés, notamment la généralisation du système des shaders (ainsi, il n'y aura plus de différence entre un vertex shader et un pixel shader, du point de vue des fonctionnalités). 53

54 Améliorations du rendu Les Geometry Shaders Ces shaders permettent de créer des vertices de façon programmable, mais sans aucune limitation. Il est même possible d'envoyer des vertices à la carte graphique, de leur appliquer un vertex shader (modifiant les vertices), d'appliquer un geometry shader sur les vertices ainsi modifées, et d'appliquer à nouveau un vertex shader. Les possibilités sont donc énormes. Parfait pour le SLI les nouvelles fonctionnalités de DirectX - notamment la mémoire vidéo virtuelle - ont de nombreux avantages lorsqu'il s'agit de découper l'affichage en plusieurs morceaux, chaque morceau pouvant ainsi être traité par un GPU différent. 54

55 Bibliographie html html fonctionnement-d-un-gpu/108881/ fonctionnement-d-un-gpu/108881/ 55

56 Merci de votre attention 56


Télécharger ppt "1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2."

Présentations similaires


Annonces Google