GTC 2017: Nvidias Volta-Architektur ein Meilenstein im GPU-Design
Führende Nvidia-Ingenieure haben sich zu den Neuerungen der Volta-GPU geäußert. Laut Chefentwickler Alben ist Volta mehr als nur ein Aufguß von Pascal, sondern eine völlig neue Architektur.
Nvidia hat seinen Next-Gen-Grafikchip Volta auf der GPU Technology Conference vorgestellt. Im Laufe der Konferenz haben führende Entwickler und Ingenieure dabei weitere Details zum kommenden High-End-Chip herausgelassen. Demnach ist die neue Volta-GPU mehr als nur ein vollgepackter Pascal 2.0. Jonah Alben, GPU-Chefentwickler bei Nvidia, erklärte: "Volta ist ein komplett anderer Prozessor, nicht nur ein Pascal mit Tensor Cores".
Nvidia-Boss erlaubte Volta-Entwicklung trotz Risiken
So habe man Volta an den entscheidenden Stellen umgekrempelt und sei beim Design an die Grenze des derzeit physikalisch Möglichen gegangen. "Ich bin glücklich, dass Jensen uns einen solchen Chip hat bauen lassen", erklärte Alben mit einem verschmitzten Lächeln und schob hinterher: "noch größer und der Chip wäre illegal". Als die Frage nach der Yield-Rate kam, also die Chipausbeute pro Wafer, wollte Vice President Alben nicht antworten.
Besonders wichtig seien die Änderungen bei Scheduling, die Volta im Vergleich zum Pascal-Vorgänger das Ausführen von noch komplexeren Code erlauben. Der Pascal-Scheduler sei im Vergleich nicht annähernd so effizient gewesen.
Streaming-Prozessoren 50 Prozent energieeffizienter
Die Streaming-Multiprozessoren (SM) haben Nvidia-Ingenieure laut Alben speziell fürs Deep Learning optimiert. Jede Volta-SM soll 50 Prozent energieeffizienter arbeiten als ihre Pascal-Vorgänger; die Leistung beim Ausführen von FP32- und FP64-Code bei gleichem Energiebedarf steigen. Das neue Thread Scheduling erlaubt feinkörnige Synchronisierung über mehrere Threads hinweg. Dabei soll der größere L1-Cache und das Shared-Memory-Subsystem die Performance weiter verbessern und letzendlich auch das Programmieren vereinfachen. Alben zufolge hat der L1-Cache im Vergleich zum Vorgänger eine um den Faktor 4 geringere Latenz und erreicht einen Durchsatz von rund 14 Terabyte/s.
Compute-Spezifikationen | ||||
GPU | Kepler GK110 | Maxwell GM200 | Pascal GP100 | Volta GV100 |
Compute Capability | 3.5 | 5.2 | 6.0 | 7.0 |
Threads / Warp | 32 | 32 | 32 | 32 |
Max Warps / SM | 64 | 64 | 64 | 64 |
Max Threads / SM | 2048 | 2048 | 2048 | 2048 |
Max Thread Blocks / SM | 16 | 32 | 32 | 32 |
Max 32-bit Registers / SM | 65536 | 65536 | 65536 | 65536 |
Max Registers / Block | 65536 | 32768 | 65536 | 65536 |
Max Registers / Thread | 255 | 255 | 255 | 255* |
Max Thread Block Size | 1024 | 1024 | 1024 | 1024 |
FP32 Cores / SM | 192 | 128 | 64 | 64 |
# of Registers to FP32 Cores Ratio | 341 | 512 | 1024 | 1024 |
Shared Memory Size / SM | 16 KB/32 KB/48 KB | 96 KB | 64 KB | Configurable up to 96 KB |
Nvidia setzt auf der Tesla V100 einen Volta-Chip mit 5120 Cores und 80 SMs ein. Das Design erlaubt jedoch Chips mit bis zu 84 SMs und 5376 FP32-Kernen, 2688 FP64-Kernen und 672 Tensor-Cores. Für künftige Gamer-Karten interessant: Volta enthält bis zu 336 Textureinheiten. Der Chefentwickler kommentierte, dass Volta auch Spiele "ziemlich schnell" darstellen kann. Im Vergleich zu einer GeForce GTX 1080 Ti könnte eine künftige High-End-Karte mit Volta-GPU durchaus bis zu 50 Prozent mehr Performance bieten; allerdings dürften solche Karten nicht vor dem zweiten Quartal 2018 erscheinen.
Tensor Cores: 120 Billionen Operationen pro Sekunde
Die Tensor Cores sollen einen vergleichsweise großen Teil der 815 mm² großen Chipfläche einnehmen. Jeder Streaming-Multiprozessor enthält acht Tensor-Cores. Sie lassen sich zwar nur eingeschränkt programmieren, liefern aber sowohl beim Training als auch Inferencing von neuralen Netzwerken eine gigantische Rechenleistung bei Matrix-Matrix-Multiplikationen von 120 Tensor-TFlops; schaffen also 120 Billionen Operationen pro Sekunde.
Gerade in Server-Systemen ist der schnelle Austausch zwischen mehreren GPUs wichtig. Mit der zweiten Generation des High-Speed-Interconnects "NVLink 2.0" sind mit Volta nun bis zu 300 GByte/s möglich – über sechs NVLink-Links. NVLink 2.0 unterstützt nun außerdem CPU Mastering und Cache-Kohärenz bei Servern mit IBM-Power-9-CPUs. Vom schnellen Interconnect profitieren etwa auch die überarbeiteen DGX-1-Supercomputer.
HBM2-Speicher mit 900 GByte/s
Beim Speicher bleibt Nvidia bei 16 GByte HBM2, erhöht jedoch die Speichertaktfrequenz und damit die Transferrate von 720 GByte/s (Tesla P100) auf 900 GByte/s. Jonah Alben unterstrich, dass Volta einen neuen Speichercontroller mitbringt und erklärte, dass theoretisch auch ein größerer Speicherausbau, etwa auf 32 GByte möglich sei. Praktisch liefert aber noch kein Hersteller entsprechende Chips aus. Verbessert wurde im Vergleich zu Pascal auch das Unified-Memory-Modell; so enthält Volta neue Access Counter, die die Effizienz bei Speicherzugriffen erhöhen.
CUDA 9 mit voller Volta-Unterstützung
Die neuen Funktionen der Volta-GPUs lassen sich erst mit CUDA 9 ausnutzen. cuBLAS und cuDNN enthalten neue Interfaces, um die Tensor-Cores für Deep-Learning-Anwendungen und -Frameworks zu nutzen. Neue Versionen von Deep Learning Frameworks sollen bereits von Volta profitieren können; Nvidia erwähnt dabei speziell Caffe2, MXNet, CNTK und TensorFlow.
Die Volta-Rechenkarte Tesla V100 soll ab dem dritten Quartal 2017 erhältlich sein – als 300- und 150-Watt-Version. Letztere soll immerhin noch 80 Prozent der Leistung liefern, wie Jonah Alben gegenüber Journalisten versicherte.
Tesla K40 | Tesla M40 | Tesla P100 | Tesla V100 | |
GPU | GK110 (Kepler) | GM200 (Maxwell) | GP100 (Pascal) | GV100 (Volta) |
SMs | 15 | 24 | 56 | 80 |
TPCs | 15 | 24 | 28 | 40 |
FP32 Cores / SM | 192 | 128 | 64 | 64 |
FP32 Cores / GPU | 2880 | 3072 | 3584 | 5120 |
FP64 Cores / SM | 64 | 4 | 32 | 32 |
FP64 Cores / GPU | 960 | 96 | 1792 | 2560 |
Tensor Cores / SM | -- | -- | -- | 8 |
Tensor Cores / GPU | -- | -- | -- | 640 |
GPU Boost Clock | 810/875 MHz | 1114 MHz | 1480 MHz | 1455 MHz |
Peak FP32 TFLOP/s* | 5,04 | 6,8 | 10,6 | 15 |
Peak FP64 TFLOP/s* | 1,68 | 2,1 | 5,3 | 7,5 |
Peak Tensor Core TFLOP/s* | -- | -- | -- | 120 |
Texture Units | 240 | 192 | 224 | 320 |
Memory Interface | 384-bit GDDR5 | 384-bit GDDR5 | 4096-bit HBM2 | 4096-bit HBM2 |
Memory Size | Up to 12 GB | Up to 24 GB | 16 GB | 16 GB |
L2 Cache Size | 1536 KB | 3072 KB | 4096 KB | 6144 KB |
Shared Memory Size / SM | 16 KB/32 KB/48 KB | 96 KB | 64 KB | Configurable up to 96 KB |
Register File Size / SM | 256 KB | 256 KB | 256 KB | 256KB |
Register File Size / GPU | 3840 KB | 6144 KB | 14336 KB | 20480 KB |
TDP | 235 Watts | 250 Watts | 300 Watts | 300 Watts |
Transistors | 7.1 billion | 8 billion | 15.3 billion | 21.1 billion |
GPU Die Size | 551 mm² | 601 mm² | 610 mm² | 815 mm² |
Manufacturing Process | 28 nm | 28 nm | 16 nm FinFET+ | 12 nm FFN |
(mfi)