Volles Rohr
Alleskönner-Grafikkarte Nvidia Titan V
Die erste frei erhältliche Grafikkarte mit Volta-Grafikchip taugt aufgrund ihrer brachialen Rechenleistung sowohl für anspruchsvolle KI-Berechnungen als auch zum Spielen. Das lässt sich Nvidia allerdings fürstlich bezahlen.
Nvidia geht in die Vollen: stolze 3100 Euro kostet die Titan V – das ist selbst für die ohnehin teure Titan-Serie ein neuer Rekord. Zum Vergleich: AMDs schnellste Profi-Konkurrenzkarte Radeon Vega Frontier Edition kostet nicht einmal 1000 Euro. Den hohen Preis rechtfertigt die Titan V tatsächlich mit einem hohen Mehrwert – allerdings nur in ganz bestimmten Spezialanwendungen, in denen der Volta-Grafikchip seine volle Leistung entfaltet. Daher richtet sich die Titan V in erster Linie an Forscher und Entwickler, weniger an Spieler – auch wenn letztere über den GeForce-Treiber trotzdem die volle 3D-Performance der GPU abrufen können.
Kraftpaket
Der verwendete GV100-Grafikchip ist im Vergleich zu bisherigen GPUs riesig: er besteht aus 21,1 Milliarden Transistoren und bringt 5120 Shader-Rechenkerne auf einer Grundfläche von 815 mm2 unter. Zu diesen gesellen sich 640 Spezialkerne für KI-Berechnungen, die sogenannten Tensor Cores. Alle Kerne laufen mit einer Basis-Taktfrequenz von 1200 MHz, dürfen sich aber im Turbo-Modus auf garantierte 1455 MHz hochtakten. Sofern in der Firmware hinterlegte Grenzen der Leistungsaufnahme und GPU-Temperatur nicht überschritten werden, laufen die Kerne kurzzeitig noch schneller – in unseren Tests maßen wir bis zu 1702 MHz. Das erhöht die theoretische Rechenleistung von 12,8 auf 17,4 Billionen Gleitkommaoperationen pro Sekunde bei einfacher Genauigkeit (FP32-TFlops, Single Precision). Bei der unter anderem für Finanzmathematik wichtigen doppelten Genauigkeit erreicht die Titan V immerhin die halbe Single-Precision-Leistung, bei etwa für Deep Learning wichtigen FP16-Berechnungen (Half Precision) die doppelte Single-Precision-Leistung, laut Nvidia bis zu 27,3 TFlops.
Doch selbst diese Rekord-Rechenwerte übertrifft die Titan V noch um ein Vielfaches, sobald die Tensor Cores mitrechnen. Dafür müssen die Anwendungen aber speziell angepasst sein und über CUDA 9.0 auf die Titan V zugreifen. Manche Deep-Learning-Frameworks wie Caffe 2 und MXNet können die Tensor Cores bereits ansprechen. Nvidia zufolge erreichen sie dann beim Inferencing und Training neuronaler Netzwerke eine theoretische Rechenleistung von 110 TFlops. Der Wermutstropfen: Die Tensor Cores lassen sich nur eingeschränkt programmieren und taugen tatsächlich nur für Deep-Learning-Berechnungen.
Im Vergleich zur Profi-Rechenkarte Tesla V100 ist die Titan V nur mit 12 statt 16 GByte HBM2-Speicher bestückt und der nur mit 3072 statt 4096 Datenleitungen angebunden (drei statt vier Stacks). Entsprechend verringert sich die maximale Datentransferrate von 900 GByte/s auf 653 GByte/s. Das ist zwar immer noch eine ganze Menge, ließe sich aber an sich auch mit einem dicken GDDR5X-Speicher-Interface erreichen. Für Spieler und Spieleentwickler interessant: Der GV100-Grafikchip enthält 320 Textureinheiten (465 GTex/s) und 96 der für die Kantenglättungsleistung wichtigen Rasterendstufen.
3D-Performance
Die Titan V erzeugt die bisher bei einer Grafikkarte höchste gemessene 3D-Performance, kann sich jedoch häufig nicht so stark wie erwartet von einer 650 Euro teuren GeForce GTX 1080 Ti absetzen. Im 3DMark Firestrike Ultra ist die Titan V 16 Prozent schneller, im DirectX-12-Benchmark 3DMark Time Spy 23 Prozent. Bedeutend größer fällt der Vorsprung zur schnellsten AMD-Grafikkarte Radeon RX Vega 64 aus (+50/57 Prozent). Bei Tessellation-Berechnungen liegt die Titan V im Unigine Heaven 17 Prozent (DirectX 11) beziehungsweise 21 Prozent (OpenGL 4) vor einer GeForce GTX 1080 Ti.
Spiele stellt die Titan V mit einer um 11 bis 35 Prozent höheren Bildrate als eine GeForce GTX 1080 Ti dar – selbst in 4K jederzeit ruckelfrei. Wieviel schneller die Titan ist, hängt dabei vom Spiel und der gewählten Auflösung und Grafikeinstellung ab. Richtig wohl fühlt sich die Karte erst in 4K: Dragon Age Inquisition stellt sie mit 65 fps bei maximaler Detailstufe samt zweifacher Multisampling-Kantenglättung dar (+35 Prozent zur 1080 Ti), GTA V immerhin mit 71 fps (+27 Prozent). Eher gering ist der Vorsprung in Ashes of the Singularity und Mittelerde: Mordors Schatten (+15 Prozent), bei Rise of the Tomb Raider sinds immerhin noch 20 Prozent Zuwachs. In WQHD (2560 × 1440 Pixel) fällt der Vorsprung ein paar Prozentpunkte geringer aus, bei Mordors Schatten sind es beispielsweise nur noch 11 Prozent.
Bei besonders hohen Bildraten von über 100 fps oder anderen, dauerhaft anliegenden Lastzuständen erzeugt die Titan V deutlich hörbares Spulenfiepen. Das ist bei einer 3000-Euro-Grafikkarte nicht akzeptabel.
Leistungsaufnahme und Geräuschentwicklung
Maximal 250 Watt schluckt die Titan V laut Nvidia-Spezifikation. Unseren Messungen zufolge bleibt die Karte bei Volllast mit bis zu 248 Watt knapp unter diesem Grenzwert – das gilt sowohl beim Rechnen als auch beim Rendern. Über ihre beiden PCIe-Stromanschlüsse (6+8-polig) sowie den PCIe-3.0-Steckplatz darf die Titan V bis zu 300 Watt aufnehmen. Nvidia empfiehlt zum Betrieb ein 600-Watt-Netzteil.
Erreicht die GPU eine Temperatur von über 80 °C, drosselt die Titan V ihre Taktfrequenz und damit die Leistungsaufnahme. So sinkt diese etwa nach ein paar Minuten 3DMark oder Furmark von 248 auf 217 Watt, entsprechend verringert sich auch die 3D-Performance. Im Leerlauf schluckt sie mit 26 Watt mehr als andere PCIe-Grafikkarten. Immerhin steigt die Leistungsaufnahme auch im Multi-Monitor-Betrieb nur um höchstens 1 Watt an. Bis zu vier Displays steuert die Titan V gleichzeitig an. Dafür bietet die Karte drei DisplayPort 1.4- und eine HDMI-2.0-Buchse, die jeweils den HDCP-2.2-Kopierschutz unterstützen.
Machine Learning
Nvidia bewirbt seine Volta-Chips als besonders tauglich für allgemeine Berechnungen mit CUDA, speziell fürs Trainieren neuronaler Netze. Deswegen erschien auch mit der Tesla V100 zuerst eine Beschleunigerkarte mit dem neuen Chipdesign. Die Titan V bringt als erste Volta-Karte mit Grafikausgang die überarbeiteten Compute-Shader und die hoch spezialisierten Tensor Cores auch auf Desktop-Systeme.
Um zu prüfen, wie sich die Volta-Karte gegenüber der beliebten GeForce GTX 1080 Ti aus der Pascal-Generation schlägt, steckten wir sie in eine Workstation mit einem Core i7-6900K mit 8 Kernen und 32 GByte RAM. Auf dem Testsystem installierten wir Ubuntu 17.10, da Machine-Learning-Frameworks wie TensorFlow unter Linux erheblich leichter einzurichten sind und dort die beste Performance erzielen. Nvidia bietet seinen proprietären Grafiktreiber in Version 387 nicht fürs aktuelle Ubuntu 17.10, sondern nur für 17.04 an. Dieser lief aber auch unter dem aktuellen System. Auch CUDA 9 und CuDNN konnten wir problemlos mit Paketen für Ubuntu 17.04 installieren. Google stellt Nightly-Builds von TensorFlow praktischerweise über den Python Package Index (PyPi) bereit, sodass man sie einfach mit pip3 install tf-nightly-gpu installiert. Damit führten wir einige neuronale Netze aus c’t-Artikeln aus und verglichen die Trainingszeiten mit denen auf der 1080 Ti. Das Ergebnis war relativ enttäuschend: Bei einem Faltungsnetz für Superresolution war die Titan V nur 34 Prozent schneller, beim Verschlagworten von Texten mit einem LSTM gar 3,5 Prozent langsamer.
Wir vermuteten, dass die Netzwerke die Titan V nur unzureichend auslasten, und wollten deswegen zu einem synthetischen Benchmark wechseln. Baidus DeepBench führt übliche Operationen wie Matrixmultiplikationen, Funktionen für rekurrente Netzwerke und Faltungen aus (siehe ct.de/y1ka). Beim Versuch, den in C++ geschriebenen Benchmark zu übersetzen, stellte sich jedoch CUDA quer. Dem Framework war der von Ubuntu 17.10 standardmäßig installierte GCC 7 zu neu. GCC 6 lässt sich unter Ubuntu 17.10 zwar parallel installieren. Baidus Makefiles klar zu machen, dass sie den älteren Compiler benutzen sollen, stellte sich aber als übertrieben schwierig heraus.
Also installierten wir Ubuntu 16.04 auf dem Testsystem, bei dem noch GCC 6 der Standard-Compiler ist und für das Nvidia Pakete für Grafiktreiber und CUDA anbietet. Aber auch da wollte DeepBench erst mal nicht kompilieren. Erst nachdem wir OpenBLAS, OpenMPI, nccl und baidu-allreduce per Hand kompiliert hatten und collectives.* sowie timer.* aus baidu-allreduce in den Unterordner code/baidu-allreduce von DeepBench gelinkt hatten, kompilierte der Benchmark.
DeepBench übersetzten wir für jede Grafikkarte neu, jeweils auf die Architektur zugeschnitten. Die 1080 Ti läuft noch mit ARCH=sm_61, während die Titan V erst mit ARCH=sm_70 ihr Potenzial entfaltet. Zusätzlich kann man bei der Titan V noch die Unterstützung für Tensor Cores mit „USE_TENSOR_CORES=1“ einschalten. Wir testeten jeweils die Matrixmultiplikation gemm_bench, die Operationen für rekurrente Netze rnn_bench und die Faltungen conv_bench. DeepBench unterscheidet nach Training mit einfacher (train float) oder halber Genauigkeit (train half) und nach Inferencing, bei dem zusätzlich zu den beiden Gleitkommamodi auch Tests mit 8-Bit-Ganzzahlen möglich sind (inference int8).
DeepBench spuckt bei jedem dieser Tests eine ganze Batterie an Zeitmessungen aus, da man die getesteten Operationen mit unterschiedlichen Matrix- und Filtergrößen ausführen kann. Wir haben die Werte (jeweils beste Zeit aus drei Durchläufen) mit dem geometrischen Mittel auf einen einzelnen Wert kondensiert, um einen Eindruck für die Gesamtperformance der Karten zu liefern (siehe S. 178).
In DeepBench ist die Titan V erst dann wesentlich schneller als eine 1080 Ti, wenn man die Tensor Cores heranzieht. Dann multipliziert sie Matrizen im Training 62 Prozent schneller und liegt auch beim Inferencing noch 45 Prozent vorne. Wirklich beeindruckend wird der Vorsprung aber, wenn man FP16 einstellt: Beim Training ist sie dann um den Faktor 92 schneller, beim Inferencing um Faktor 40. Bei den für die Bilderkennung notwendigen Convolutions faltet sie die Filter 27-mal schneller als die 1080 Ti im Training und sogar 66-mal schneller beim Anwenden.
Bei rekurrenten Netzwerken scheint die neue Architektur jedoch nicht wirklich zu helfen, sodass die Titan V je nach Einzeltest etwas schneller oder etwas langsamer als die 1080 Ti rechnete. Auch mit 8-Bit-Integern tut sich die Titan V schwer und erreicht beim Convolution-Inferencing-Test nur etwas mehr als die Hälfte der Leistung einer 1080 Ti. Neuronale Netze möchte die Karte offensichtlich am liebsten in halber Genauigkeit rechnen und Entwickler sollten ihren Code unbedingt anpassen. Momentan muss man diese Werte aber noch mit Vorsicht genießen, da viele Anwendungen dieses Potenzial noch nicht nutzen können. Spätestens wenn TensorFlow voll auf die Volta-Architektur angepasst ist, dürfte sich für viele Data Scientists die Anschaffung einer Volta-Karte durchaus lohnen.
Die teils enorm beschleunigten Einzeloperationen, die DeepBench misst, kommen in realen Szenarien nie alleine vor. Beim Trainieren eines ResNet50 (Convolutional Bilderkennungsnetzwerk mit 50 Schichten, trainiert auf ImageNet-Bildern) mit Caffe2 war die Titan V um 43 Prozent schneller als eine GeForce GTX 1080 Ti. Lässt man die Berechnungen über die Tensor Cores laufen, verdoppelt sich die Performance im Vergleich zur 1080 Ti. Dabei verheizt die Titan sogar 75 Watt weniger als die 1080 Ti (125 zu 200 Watt).
Fazit
Nvidias Titan V ist unbestritten eine enorm leistungsfähige Grafik- beziehungsweise Rechenkarte. Sie übertrumpft sämtliche Vorgänger aus der Pascal-Generation und kann ihren Turbo vor allem bei Deep-Learning-Anwendungen zünden – sofern Anwendungen die Tensor-Spezialkerne hinzuziehen. Dafür muss die Software aber genau angepasst sein.
Für Anwendungen, die Tensor Cores nicht nutzen, zeigt die Titan V ein eher unbefriedigendes Preis/Leistungsverhältnis. Die 3D-Performance ist zwar ungeschlagen, allerdings liegt sie im Idealfall nur rund ein Drittel über der einer GeForce GTX 1080 Ti, die nur ein Fünftel kostet. Das zeigt, dass gerade Render-Profis zweimal überlegen sollten, ob sie sich tatsächlich eine teure Titan V bestellen oder lieber zu einer leistungsstarken Pascal-Vorgängerkarte greifen. (mfi@ct.de)
DeepBench und seine Abhängigkeiten: ct.de/y1ka