Die 1080 ist jetzt da und anfangs hatte ich
erstmal jede Menge Probleme.
Zuerst war der Rechner komplett tot, nichtmal das BIOS war mehr zugänglich. Der error code vom MB war auch nicht hilfreich: "check south bridge" -> wer kann mit sowas bitte *irgendwas* anfangen? Ich habe dann also die Karte erstmal wieder ausgebaut und das neuste (Ende 2013^^) Beta-BIOS auf mein ASRock Z68 Extreme 4 Gen3 geflasht. Da habe ich dann auch herausgefunden, dass Sandy-Bridge CPUs nur PCI-E 2.0 supporten, für 3.0 bräuchte ich min. einen Ivy-Bridge von Intel - lustig.
However, im Beta-BIOS gibt es jetzt einen PCI-E 3.0 emulation-mode, der neuere 3.0 Grafikkarten auch auf Sandy-Bridge lauffähig machen soll. Läuft tatsächlich
Nächstes Problem war dann mein Manjaro (Arch-Fork) Linux: Blackscreen beim booten. Selbst als ich im Grub bootloader die hochkompatiblen Vesa-Treiber ge'forced hab. Nach unzähligen resets hatte ich irgendwann keine Lust mehr. Hab dann die X-Session komplett unterdrückt und im Grub erstmal eine config implementiert, die direkt in die Konsole bootet.
Dort angekommen habe ich dann über die Konsole meinen "alten" Kernel 4.4 rausgeschmissen, den neusten 4.7er Kernel installiert und noch dazu auch gleich die proprietären Treiber von NVIDIA.
Nun läuft das System wieder ohne Probleme
Also auf zur nächsten Etappe:
GPGPU-Performance testen.
Ich mach bestimmt noch weitere Tests, aber für's erste habe ich mein eigenes Ökosystem mit meinen Experimenten getestet, vor allem weil ich diese mit den Ergebnissen von unserem Supercomputer (Uni) vergleichen kann, wo die GPU-Nodes aktuell mit
Tesla K40 Karten ausgestattet sind.
Nachdem ich
CUDA 8.0,
cuDNN 5.1 und
cuFFT 6.0 fertig eingerichtet hatte, folgte direkt
TensorFlow v.0.11.0rc1 - seit heute für CUDA 8 available
"Schon" konnten die Experimente beginnen und mit den Ergebnissen bin ich ziemlich zufrieden.
[table="width: 500"]
[tr]
[td]---------------------------->[/td]
[td]time (MNIST; 1 epoch)[/td]
[td]time (wCNN; 100k samples)[/td]
[td]time (sCNN - small; 100k samples)[/td]
[td]time (sCNN - big; 10k samples)[/td]
[/tr]
[tr]
[td]
GTX 1080[/td]
[td]< 5ms[/td]
[td]9m 08s[/td]
[td]28m 12s[/td]
[td]11m 06s[/td]
[/tr]
[tr]
[td]
Tesla K40[/td]
[td]< 20ms[/td]
[td]22m 20s[/td]
[td]1h 02m 38s[/td]
[td]42m 32s[/td]
[/tr]
[tr]
[td]2x
Xeon E5-2630v3[/td]
[td]83ms[/td]
[td]3h 17m 08s[/td]
[td]11h 49m 51s[/td]
[td]9h 18m 00s[/td]
[/tr]
[/table]
* MNIST: handschriftliche Ziffern (25x25 img size) erkennen
* wCNN: weakly-supervised CNN (200x150 img size)
* sCNN - small: fully-supervised CNN (200x150 img size)
* sCNN - big: fully-supervised CNN (800x600 img size)
Mit Pascal hat NVIDIA da imho eine gute GPGPU-Architektur geschaffen; ich bin mal gespannt wie sich Volta nächstes Jahr schlägt, die soll ja explizit für Deep Learning optimiert sein.
Unabhängig davon absolviert die GTX 1080 bis jetzt jedes Experiment (je nach Architektur) 2 bis 5x so schnell wie eine K40 und 10 bis teilweise 50x so schnell wie die Xeon-CPUs (zwei 8-Kern Xeons bei 2,4 GHz, also 16 Cores mit 32 Threads).