# Maxwell (microarchitecture)

Maxwell est une architecture de processeurs graphiques, développée par NVidia pour ses cartes graphiques.

## Architecture

Cette architecture est dérivée de l'architecture Kepler. Parmi les différences, les SMX sont renommés en SMM, et perdent un tiers de leur unités CUDA.

### GPU Maxwell de première génération (GM10x)

La première génération de GPU Maxwell (GM107/GM108) a été introduite dans les cartes GeForce GTX 745, GTX 750/750 Ti, GTX 850M/860M (GM107) et dans les cartes GeForce 830M/840M (GM108). Ces nouvelles puces introduisent peu de nouvelles fonctionnalités pour l'utilisateur, Nvidia insistant plus sur l'efficacité énergétique accrue des GPU. La taille du cache L2 est passée de 256 KiB sur Kepler à 2 MiB sur Maxwell, réduisant le besoin d'une plus grande bande passante de la mémoire. Par conséquent, la largeur du bus mémoire a été réduite de 192 bits sur Kepler (GK106) à 128 bits, réduisant la surface de la puce, le coût et la consommation.
La conception du multiprocesseur de flux "SMX" de Kepler a également été retravaillée et partitionnée, et renommée "SMM" pour Maxwell. La structure de l'ordonnanceur de warps a été héritée de Kepler, les TMU et les coeurs CUDA FP64 étant encore partagés, mais l'agencement de la plupart des unités d'exécution a été partitionné de telle sorte que chaque ordonnanceur de warps dans un SMM contrôle un ensemble de 32 coeurs CUDA FP32, un ensemble de 8 unités load/store et un ensemble de 8 unités de fonctions spéciales (SFU). Ceci est différent avec Kepler, où chaque SMX possède 4 ordonnanceurs qui pilotent un pool partagé d'unités d'exécution. Cette dernière conception nécessitait un bus de la taille du SMX qui employait une énergie inutile pour permettre à toutes les unités d'exécution d'être partagées. Par opposition, la conception plus modulaire de Maxwell permet une allocation plus fine et plus efficace des ressources, économisant de l'énergie lorsque la charge de travail n'est pas optimale pour les ressources partagées. Nvidia estime qu'un SMM avec 128 coeurs CUDA a 90 % de la performance d'un SMX avec 192 coeurs CUDA tandis que l'efficacité est accrue d'un facteur 2. Par ailleurs, chaque Graphics Processing Cluster, ou GPC, contient jusqu'à 4 SMX dans Kepler, et jusqu'à 5 SMM dans la première génération de Maxwell.
GM107 supporte également le CUDA Compute Capability 5.0, contre les versions 3.5 sur les GPU GK110/GK208 et 3.0 sur les GPU GK10x. Dynamic Parallelism et HyperQ, deux fonctionnalités des GPU GK110/GK208, sont aussi supportées sur toute la gamme des GPU Maxwell.
Le codeur vidéo de Nvidia, NVENC, a été amélioré pour être 1,5 à 2 fois plus rapide que sur les GPU Kepler, signifiant qu'il peut coder de la vidéo six à huit fois plus rapidement que la vitesse de lecture. Nvidia revendique aussi une augmentation d'un facteur huit à dix des performances du décodage vidéo PureVideo (en) avec l'ensemble de caractéristiques E due au cache du décodeur vidéo, associée à une augmentation des performances de la mémoire. Cependant, le décodage complètement hardware du H.265 n'est pas supporté par la première génération de GPU Maxwell, s'appuyant sur un mélange de décodage hardware et software. Lors du décodage vidéo, un nouvel état basse puissance "GC5" est utilisé sur les GPU GPU pour économiser l'énergie.

## Modèles de cartes graphiques
### Sous la marque GeForce

| Modèles | GeForce GTX 750 | GeForce GTX 750 Ti | GeForce GTX 950 | GeForce GTX 960 | GeForce GTX 970 | GeForce GTX 980 | GeForce GTX 980 Ti | GeForce GTX Titan X |
| Finesse de gravure des processeurs | 28 nm | 28 nm | 28 nm | 28 nm | 28 nm | 28 nm | 28 nm | 28 nm |
| Code de la puce | GM107-300 | GM107-400 | GM206-250 | GM206-300 | GM204-200 | GM204-400 | GM200-310 | GM200-400 |
| Surface de la puce | 148 mm² | 148 mm² | 228 mm² | 228 mm² | 398 mm² | 398 mm² | 601 mm² | 601 mm² |
| Nb. de transistors | 1,9 G | 1,9 G | 2,9 G | 2,9 G | 5,2 G | 5,2 G | 8,1 G | 8,1 G |
| Fréquence 3D | 1019 MHz | 1019 MHz | 1024 MHz | 1120 MHz | 1120 MHz | 1120 MHz | 1000 MHz | 1000 MHz |
| Fréquence Turbo | ≈ 1100 MHz | ≈ 1100 MHz | ≈ 1200 MHz | ≈ 1200 MHz | ≈ 1200 MHz | ≈ 1200 MHz | 1076 Mhz | 1088 Mhz |
| Température maximale avec Turbo | 80 °C | 80 °C | ? | ? | 80 °C | 80 °C | ? | 83 °C |
| Nb. Graphics Processing Cluster (GPC) | 1 | 1 | 2 | 2 | 4 | 4 | 6 | 6 |
| Nb. Streaming Multiprocessor (SMM) | 4 | 5 | 6 | 8 | 13 | 16 | 22 | 24 |
| Nb. cœurs CUDA | 512 | 640 | 768 | 1024 | 1664 | 2048 | 2816 | 3072 |
| Nb. TMU | 32 | 40 | 48 | 64 | 104 | 128 | 176 | 192 |
| Nb. ROP | 16 | 16 | 32 | 32 | 56 | 64 | 96 | 96 |
| Nb. Special Functions Units (SFU) | ? | ? |
| Enveloppe thermique (TDP) | 60 W | 65 W | 90 W | 120 W | 150 W | 180 W | 250 W | 250 W |
| Type de mémoire | GDDR5 | GDDR5 | GDDR5 | GDDR5 | GDDR5 | GDDR5 | GDDR5 | GDDR5 |
| Capacité possible | 1 Go | 2 Go | 2 Go | 2 Go | 4 Go | 4 Go | 6 Go | 12 Go |
| Fréquence mémoire | 1250 MHz | 1350 MHz | 1653 MHz | 1753 MHz | 1753 MHz | 1753 MHz | 1753 MHz | 1753 MHz |
| Largeur du bus mémoire | 128 bits | 128 bits | 128 bits | 128 bits | 224 bits | 256 bits | 384 bits | 384 bits |
| Débit mémoire | 74,5 Go/s | 80,5 Go/s | 106 Go/s | 114 Go/s | 196 Go/s | 224 Go/s | 336 Go/s | 336 Go/s |
| Pixels Fillrate | 17,3 Gpixel/s | 17,3 Gpixel/s | 32.8 GPixel/s | 38 Gpixel/s | 61 Gpixel/s | 78 Gpixel/s | | 103 Gpixel/s |
| Textures Fillrate | 34 Gtexel/s | 43 Gtexel/s | 49.1 GTexel/s | 72.1 GTexel/s | | | | |
| Fillrate Géométrique | 1445 Mtriangle/s | 1807 Mtriangle/s | | | | | | |
| Calcul Simple Précision | 1111 Gflops | 1388 Gflops | 1573 Gflops | 2408 Gflops | 3913 Gflops | 4980 Gflops | 6060 Gflops | 6156 Gflops |
| Calcul Double Précision | 34 Gflops | 43 Gflops | 49 Gflops | 75 Gflops | 122 Gflops | 155 Gflops | 189 Gflops | 206 Gflops |
| Date | 18/02/2014 | 18/02/2014 | 20/08/2015 | 23/01/2015 | 19/09/2014 | 19/09/2014 | 02/06/2015 | 04/2015 |