# Kepler (microarchitecture)

Kepler est une microarchitecture a été développée par NVidia pour ses processeurs graphiques. Elle est censée doubler les performances par watt par rapport à Fermi, l'architecture précédente, ce qui permet de l'utiliser dans des cartes graphiques pour ordinateurs portables. La première carte graphique utilisant cette architecture est la GTX 680, utilisant le processeur graphique GK 104.

## Historique

* Mars 2012 : sortie de la GTX 680, première carte graphique à utiliser l'architecture Kepler
* Mai 2012 : sortie de la GTX 690, première carte graphique utilisant deux puces Kepler
* Novembre 2012 : sortie des Tesla K20 et K20X, premières cartes à utiliser le GK 110
* Février 2013 : sortie de la GeForce Titan, première carte graphique grand public à utiliser le GK 110
* Mai 2013 : Sortie de la GeForce GTX 780
* Novembre 2013: Sortie de la GeForce GTX 780 Ti, première carte grand public à utiliser un GK 110 complet.
* Février 2014 : Sortie de la GeForce GTX Titan Black Edition, évolution de la GTX Titan avec toutes ses unités de calculs actives.
* Mai 2014 : Sortie de la GeForce GTX Titan Z, première carte graphique à utiliser deux GK 110 complets.

## Architecture

Elle reprend à peu près l'architecture Fermi, c'est donc une puce divisée en plusieurs GPC ou Graphics Processing Cluster qui sont les équivalents d'un cœur de microprocesseur sauf qu'ils sont dépourvus de mémoire cache ; ils sont eux-mêmes constitués d'un, deux ou trois SMX et ils contiennent 8 unités de ROP. Pour soutenir les cœurs CUDA, qui sont les unités de calcul, la puce propose deux niveaux de mémoire cache (L1 et L2). La puce est dotée de 512 Ko de mémoire cache L2, avec un débit revu à la hausse par rapport à Fermi.
Les SMX (Next Generation Streaming Multiprocessor), la grande nouveauté introduite par Kepler, sont les remplaçant des SM (Streaming Multiprocessor) de Fermi. Un SMX peut contenir jusqu'à 192 cœurs CUDA, ou unités de calcul, dans la version la plus évoluée contre 32 cœurs CUDA avec les SM de Fermi. Par contre, le SMX abandonne le système de double cadencement de Fermi qui multipliait par deux la fréquence des SM et donc des unités de calcul. Chaque SMX dispose de 64 ko de mémoire partagée et 16 unités de texture$^,$.

## GPU Boost

NVidia profite de Kepler pour introduire le « GPU Boost » qui augmente la fréquence du processeur en fonction de sa consommation et de sa température, qui sont directement mesurées sur la carte. Le gain peut atteindre plusieurs dizaines de MHz. Avec la GeForce Titan, Nvidia utilise le nom « GPU Boost 2.0 », dont le seul changement est que la température remplace la consommation comme facteur limitant$^,$.

## Liste des processeurs et des cartes graphiques utilisant Kepler

L'architecture Kepler est utilisée dans plusieurs GPU :
* le GK 104, qui est utilisé dans les cartes GTX 680, GTX 690, GTX 670, GTX 660, GTX 660ti, GTX 760, GTX 770 ,Tesla K10, Tesla K8 ;
* le GK 106, qui est utilisé dans les GTX 660, il est composé de 5 SMX ;
* le GK 107, qui est utilisé dans les cartes mobiles de NVidia, ainsi que dans les cartes d'entrée de gamme, à partir de la GT 640 ;
* le GK 110, qui a 15 SMX plus puissants et 1,5 Mo de mémoire cache, il est utilisé dans les Tesla K20, GeForce Titan, GeForce GTX 780 et GeForce GTX 780 Ti
En 2013, les puces Kepler sont toutes gravées en 28 nm.

### Sous la marque GeForce

Elles fonctionnent toutes avec DirectX 11.0, OpenGL 4.3, OpenCL 1.2, et le PCI-Express 16x 3.0.
| Modèles | GeForce GT 640 (A2) | GeForce GT 640 (DDR3) | GeForce GT 640 (DDR5) | GeForce GTX 650 | GeForce GTX 650Ti | GeForce GTX 650Ti Boost | GeForce GTX 660 | GeForce GTX 660 OEM | GeForce GTX 660Ti | GeForce GTX 670 | GeForce GTX 680 | GeForce GTX 770 | GeForce GTX 690 | GeForce GTX 780 | GeForce GTX Titan | GeForce GTX780 Ti |
| Finesse de gravure des processeurs | 28 nm | 28 nm | 28 nm | 28 nm | 28 nm | 28 nm | 28 nm | 28 nm | 28 nm | 28 nm | 28 nm | 28 nm | 28 nm | 28 nm | 28 nm |
| Code de la puce | GK107 | GK107 | GK107 | GK107 | GK106 | GK106 | GK106 | GK104 | GK104 | GK104 | GK104 | GK104 | 2× GK104 | GK110 | GK110 | GK110 |
| Surface de la puce | 118 mm² | 118 mm² | 118 mm² | 118 mm² | 221 mm² | 221 mm² | 221 mm² | 294 mm² | 294 mm² | 294 mm² | 294 mm² | 294 mm² | 2× 294 mm² | 569 mm² | 569 mm² | 569 mm² |
| Nb. transistors | 1,3 G | 1,3 G | 1,3 G | 1,3 G | 2.54 G | 2.54 G | 2.54 G | 3.54 G | 3.54 G | 3.54 G | 3.54 G | 3.54 G | 2× 3,54 G | 7,1 G | 7,1 G | 7,1 G |
| Fréquence 3D | 797 MHz | 900 MHz | 950 MHz | 1058 MHz | 928 MHz | 980 MHz | 980 MHz | 823 MHz | 915 MHz | 915 MHz | 1006 MHz | 1045 MHz | 915 MHz | 863 MHz | 837 MHz | 875 MHz |
| Fréquence Turbo | NC | NC | NC | NC | NC | 1032 MHz | 1032 MHz | 888 MHZ | 980 MHz | 1006 MHz | 1058 MHz | 1084 MHz | 1019 MHZ | 902 MHz | 876 MHz | 928 MHz |
| Fréquence TDP Headroom | NC | NC | NC | NC | NC | 1110 MHz | 1110 MHz | 927 MHz | 1136 MHz | 1084 MHz | 1123 MHz | 1136 MHz | 1071 MHz | 1006 MHz | 1006 MHz | 1020 MHz |
| Température maximale avec Turbo | | | | | | | | | | 94 °C | 94 °C | 80 °C | | 80 °C | 80 °C | 80 °C |
| Nombre de GPC | 1 | 1 | 1 | 1 | 2 | 2 | 3 | 3 | 4 | 4 | 4 | 4 | 2× 4 | 5 | 5 | 5 |
| Nombre de SMX | 2 | 2 | 2 | 2 | 4 | 4 | 5 | 6 | 7 | 7 | 8 | 8 | 2× 8 | 12 | 14 | 15 |
| Nombre de cœurs CUDA | 384 | 384 | 384 | 384 | 768 | 768 | 960 | 1152 | 1344 | 1344 | 1536 | 1536 | 2× 1536 | 2304 | 2688 | 2880 |
| Nombre de FP32 | 320 | 320 | 320 | 320 | 640 | 640 | 800 | 912 | 1064 | 1064 | 1216 | 1216 | 2× 1216 | 1824 | 1344 | 2280 |
| Nombre de FP64 | - | - | - | - | - | - | - | 48 | 56 | 56 | 64 | 64 | 2× 64 | 96 | 896 | 120 |
| Nombre de SFU | 64 | 64 | 64 | 64 | 128 | 128 | 160 | 192 | 224 | 224 | 256 | 256 | 2× 256 | 384 | 448 | 480 |
| Nb. TMU | 32 | 32 | 32 | 32 | 64 | 64 | 80 | 96 | 112 | 112 | 128 | | 2× 128 | 192 | 224 | 240 |
| Nb. ROP | 16 | 16 | 16 | 16 | 16 | 24 | 24 | 24 | 24 | 32 | 32 | 32 | 2× 32 | 48 | 48 | 48 |
| Enveloppe thermique | 50 watts | 65 watts | 75 watts | 65 watts | 85 watts | 130 watts | 140 watts | 130 watts | 150 watts | 170 watts | 195 watts | 230 watts | 300 watts | 250 watts | 250 watts | 250 watts |
| Type de mémoire | DDR3 | DDR3 | GDDR5 | GDDR5 | GDDR5 | GDDR5 | GDDR5 | GDDR5 | GDDR5 | GDDR5 | GDDR5 | GDDR5 | GDDR5 | GDDR5 | GDDR5 | GDDR5 |
| Capacité possible | 1/2 Go | 1 Go | 1/2 Go | 1/2 Go | 1 Go | 1/2 Go | 2 Go | 1,5/3 Go | 2/3 Go | 2/4 Go | 2/4 Go | 2/4 Go | 2× 2/4 Go | 3 Go | 6 Go | 3 Go |
| Fréquence mémoire | 1782 MHz | 1782 MHz | 1250 MHz | 1250 MHz | 1350 MHz | 1500 MHz | 1500 MHz | 1450 MHz | 1500 MHz | 1500 MHz | 1500 MHz | 1750 MHz | 1500 MHz | 1500 MHz | 1500 MHz | 1750 MHz |
| Largeur du bus mémoire | 128 bits | 128 bits | 128 bits | 128 bits | 128 bits | 192 bits | 192 bits | 192 bits | 192 bits | 256 bits | 256 bits | 256 bits | 2× 256 bits | 384 bits | 384 bits | 384 bits |
| Bande passante mémoire | 28,5 Go/s | 28,5 Go/s | 80 Go/s | 80 Go/s | 86,4 Go/s | 144,2 Go/s | 144,2 Go/s | 134 Go/s | 144,2 Go/s | 192,3 Go/s | 192,3 Go/s | 209 Go/s | 250 Go/s | 2× 192,3 Go/s | 268 Go/s | 268 Go/s |
| Fillrate Pixels | 12,8 Gpixels/s | 14,4 Gpixels/s | 15,2 Gpixels/s | 16,9 Gpixels/s | 14,8 Gpixels/s | 23,5 Gpixels/s | 23,5 Gpixels/s | 19,8 Gpixels/s | 21,9 Gpixels/s | 29,3 Gpixels/s | 32,2 Gpixels/s | | 2× 29,3 Gpixels/s | 27,6 Gpixels/s | 33,5 Gpixels/s | 42,0 Gpixels/s |
| Turbo | NC | NC | NC | NC | NC | 26,6 Gpixels/s | 26,6 Gpixels/s | 22,3 Gpixels/s | 27,3 Gpixels/s | 34,7 Gpixels/s | 35,9 Gpixels/s | | 2× 34,3 Gpixels/s | 40,2 Gpixels/s | 40,2 Gpixels/s | 44,54 Gpixels/s |
| Fillrate Textures | 25,5 Gtexels/s | 28,8 Gtexels/s | 30,4 Gtexels/s | 33,9 Gtexels/s | 59,4 Gtexels/s | 62,7 Gtexels/s | 78,4 Gtexels/s | 79 Gtexels/s | 102,5 Gtexels/s | 102,5 Gtexels/s | 128,8 Gtexels/s | | 2× 117,1 Gtexels/s | 166 Gtexels/s | 187,5 Gtexels/s | 210,0 Gtexels/s |
| Turbo | NC | NC | NC | NC | NC | 71 Gpixels/s | 88,8 Gpixels/s | 89 Gpixels/s | 127,2 Gpixels/s | 121,4 Gpixels/s | 143,7 Gpixels/s | | 2× 137,1 Gpixels/s | 193 Gpixels/s | 225,3 Gpixels/s | 222,72 Gtexels/s |
| Fillrate Géométrique | 797 Mtriangles/s | 900 Mtriangles/s | 950 Mtriangles/s | 1058 Mtriangles/s | 1856 Mtriangles/s | 1960 Mtriangles/s | 2450 Mtriangles/s | 2469 Mtriangles/s | 3203 Mtriangles/s | 3203 Mtriangles/s | 4024 Mtriangles/s | | 2× 3660 Mtriangles/s | 5178 Mtriangles/s | 5859 Mtriangles/s | 5250 Mtriangles/s |
| Turbo | NC | NC | NC | NC | NC | 2220 Mtriangles/s | 2775 Mtriangles/s | 2781 Mtriangles/s | 3976 Mtriangles/s | 3794 Mtriangles/s | 4492 Mtriangles/s | | 2× 4284 Mtriangles/s | 6036 Mtriangles/s | 7042 Mtriangles/s | 5555 Mtriangles/s |
| FP32 | 612,1 Gflo/s | 691,2 Gflo/s | 729,6 Gflo/s | 812,5 Gflo/s | 1425,4 Gflo/s | 1505,3 Gflo/s | 1881,6 Gflo/s | 1896,2 Gflo/s | 2459,5 Gflo/s | 2459,5 Gflo/s | 3090,4 Gflo/s | | 2× 2810,9 Gflo/s | 3977 Gflo/s | 4500 Gflo/s | ? |
| Turbo | NC | NC | NC | NC | NC | 1704,9 Gflo/s | 2131,2 Gflo/s | 2135,8 Gflo/s | 3053,6 Gflo/s | 2913,8 Gflo/s | 3449,9 Gflo/s | | 2× 3290,1 Gflo/s | 4636 Gflo/s | 5408,3 Gflo/s | 5040 Gflo/s |
| FP64 | 25,7 Gflo/s | 28,8 Gflop/s | 30,4 Gflop/s | 33,9 Gflop/s | 59,4 Gflop/s | 62,7 Gflop/s | 78,4 Gflop/s | 79 Gflop/s | 102,5 Gflop/s | 102,5 Gflop/s | 128,8 Gflop/s | | 2× 117,1 Gflop/s | 166 Gflo/s | 1499,9 Gflop/s | ? |
| Turbo | NC | NC | NC | NC | NC | 71 Gflo/s | 88,8 Gflo/s | 89 Gflo/s | 127,2 Gpixels/s | 121,4 Gpixels/s | 143,7 Gpixels/s | | 2× 137,1 Gpixels/s | 193 Gpixels/s | 1523 Gpixels/s | 210 Gflo/s |
| Prix actuel (avril 2013) | 45€ H.T. l'unité pour 1000ex | 79€ | 79€ | 99€ | 119€ | 169€ | 179€ | 185€ H.T. l'unité pour 1000ex | 255€ | 340€ | 450€ | | 840€ | 650€ | 980€ | 700€ |

### Sous la marque Quadro

La série QUADRO 'Kx000' est conçue via le même schéma que les TESLA K. Les spécifications des GK104/106/110 sont donc identiques entre les séries TESLA et QUADRO.
| Modèles | Quadro 410 | Quadro K600 | Quadro K2000 | Quadro K4000 | Quadro K5000 | Quadro K6000 | Quadro K7000 |
| Gravure | 28 nm | 28 nm | 28 nm | 28 nm | 28 nm | 28 nm | 28 nm |
| Code processeur | GK107 | GK107 | GK107 | GK106 | GK104 | GK110 | GK110 |
| Surface de la puce | 118 mm² | 118 mm² | 118 mm² | 221 mm² | 294 mm² | 550 mm² | 550 mm² |
| Nb. transistors | 1.27 G | 1.27 G | 1.27 G | 2.54 G | 3.54 milliards | 7.10 G | 7.10 G |
| Fréquence GPU | 706 MHz | 876 MHz | 954 MHz | 811 MHz | 705 MHz | 705 MHz | 735 MHz |
| Nb. GPC | 1 | 1 | 1 | 2 | 4 | 5 | 5 |
| Nb. blocs SMX | 1 | 1 | 2 | 4 | 8 | 14 | 15 |
| Nb. cœurs CUDA | 192 | 192 | 384 | 768 | 1536 | 2496 | 2688 |
| Nb. TMU | 16 | 16 | 32 | 64 | 128 | 208 | 224 |
| Nb. ROP | 8 | 16 | 16 | 24 | 32 | 40 | 48 |
| Enveloppe thermique | 38 watts | 41 watts | 51 watts | 80 watts | 122 watts | 225 watts | 250 watts |
| Type de mémoire | DDR3 | DDR3 | GDDR5 | GDDR5 | GDDR5 | GDDR5 | GDDR5 |
| Mémoire | 512 Mo | 1 Go | 2 Go | 3 Go | 4 Go | 5 Go | 6 Go |
| Fréquence mémoire | 891 MHz | 891 MHz | 1000 MHz | 1404 MHz | 1350 MHz | 1300 MHz | 1300 MHz |
| Largeur de bus | 64 Bits | 128 Bits | 128 Bits | 192 Bits | 256 Bits | 320 Bits | 384 Bits |
| Bande passante | 13,3 Go/s | 26,5 Go/s | 59,6 Go/s | 125,5 Go/s | 160,9 Go/s | 193,7 Go/s | 232,5 Go/s |
| Fillrate Pixels | 5,6 Gpixels/s | 14 Gpixels/s | 15,3 Gpixels/s | 19,5 Gpixels/s | 22,6 Gpixels/s | 28,2 Gpixels/s | 35,3 Gpixels/s |
| Fillrate Textures | 11,3 Gtexels/s | 14 Gtexels/s | 30,5 Gtexels/s | 51,9 Gtexels/s | 90,2 Gtexels/s | 146,6 Gtexels/s | 164,6 Gtexels/s |
| Fillrate Géométrique | 706 Mtriangles/s | 876 Mtriangles/s | 954 Mtriangles/s | 1622 Mtriangles/s | 2820 Mtriangles/s | 4935 Mtriangles/s | 5513 Mtriangles/s |
| FP32 | 271,1 GFlop/s | 336,4 Gflo/s | 732,7 GFLOP/s | 1245,7 Gflo/s | 1082,9 GFLOP/s | 3519,4 Gflo/s | 3951,4 Gflo/s |
| FP64 | 11,3 GFlop/s | 14 Gflo/s | 30,5 Gflo/s | 51,9 Gflo/s | 90,2 Gflo/s | 1173,1 Gflo/s | 1317,1 Gflo/s |
| Date de sortie | 7 août 2012 | 1er mars 2013 | 1er mars 2013 | 1er mars 2013 | 17 août 2012 | 1er juin 2013 | -- 2013 |

### Sous la marque Tesla

L'architecture Kepler est présente dans les Tesla K8, K10, K20, K20X, K40 et K80.