Werbung
Im Rahmen der SC12 Supercomputing Messe in Salt Lake City hat NVIDIA heute die auf der GK110-GPU basierenden Server- und Workstation-Karten Tesla K20 und K20X präsentiert. Durch diese beiden Versionen, auf die wir später noch einmal genauer eingehen werden, wird auch die Konfusion erklärt, die in den letzten Wochen rund um die Tesla K20 entstanden ist. So vermeldete ein Anbieter für GPU-Racks zunächst, dass NVIDIAs Tesla K20 auf Basis des GK110 mit 13 SMX-Clusters mit jeweils 192 CUDA-Kernen daher komme (insgesamt also 2496 CUDA-Kerne). Wenig später war dann im Rahmen der Eröffnung des Titan-Supercomputer von 2688 CUDA-Kernen die Rede, was auf 14 SMX-Cluster schließen lässt. Das Erscheinen von zwei Versionen erklärt dies nun.
[figure image=images/stories/newsbilder/aschilling/2012/NVIDIA_Tesla_K20X_K20_3-rs.jpg link=images/stories/newsbilder/aschilling/2012/NVIDIA_Tesla_K20X_K20_3.jpg alt=Tesla K20]Tesla K20 auf Basis von GK110[/figure]
Tesla K20X wird das neue High-End-Modell für das GPU-Computing und wird ausschließlich als Server-Karte angeboten werden. Tesla K20 erscheint als Server- und Workstation-Karte.
GF110 Tesla M2090 | GK104 Tesla K10 | GK110 Tesla K20 | GK110 Tesla K20X | |
Fertigung | 40 nm | 28 nm | 28 nm | 28 nm |
Transistoren | 3 Milliarden | 2x 3,54 Milliarden | 7,1 Milliarden | 7,1 Milliarden |
Die-Größe | 530 mm² | 294 mm² | etwa 600 mm² | etwa 600 mm² |
TDP | 225 Watt | 225 Watt | 225 Watt | 235 Watt |
GPU-Takt | 1300 MHz | 2x 745 MHz | - MHz | - MHz |
Speichertakt | 463 MHz | 625 MHz | - MHz | - MHz |
Speichertyp | GDDR5-ECC | GDDR5-ECC | GDDR5-ECC | GDDR5-ECC |
Speichergröße | 6144 MB | 8192 MB | 5120 MB | 6144 MB |
Speicherinterface | 384 Bit | 256 Bit | 320 Bit | 384 Bit |
Speicherbandbreite | 177 GB/Sek. | 2x 160 GB/Sek. | 208 GB/Sek. | 250 GB/Sek. |
Shadereinheiten | 512 (1D) | 2x 1536 (1D) | 2496 (1D) | 2688 (1D) |
L1-Cache | 64 KB | 64 KB | 64 KB | 64 KB |
L2-Cache | 768 KB | 512 KB | 1,5 MB | 1,5 MB |
ECC | Speicher und Caches | nur Speicher | Speicher und Caches | Speicher und Caches |
FP64 | 1/2 FP32 | 1/24 FP32 | 1/3 FP32 | 1/3 FP32 |
Single-Precision | 1,33 TFlops | 4,58 TFlops | 3,52 TFlops | 3,95 TFlops |
Double-Precision | 0,66 TFlops | 0,19 TFlops | 1,17 TFlops | 1,31 TFlops |
Der enorme Gewinn an Double-Precision-Performance und die nur moderate Steigerung bei der Single-Precision-Performance erklärt sich durch eine neue Ausrichtung des FP32- zu FP64-Verhältnisses. Mit GK110 setzt NVIDIA zunächst voll auf den professionellen Markt und den Einsatz im HPC (High Performance Computing). Tesla K10 auf Basis zweier GK104-GPUs ist nur eine erste Ausbaustufe von "Kepler" und ist im eigentlichen Sinne für den Einsatz als GeForce-GPU gedacht, wo die Single-Precision-Performance für das Rendering eine entscheidende Rolle spielt. Das Verhältnis Double-Precision zu Single-Precision ist von 1/2 auf 1/24 reduziert worden. Zu guter Letzt ist bei GK104 auch nur der Grafikspeicher ECC geschützt, nicht aber die Caches.
[figure image=http://www.hardwareluxx.de/images/stories/newsbilder/aschilling/2012/gtc2012/GK110Block-rs.png link=http://www.hardwareluxx.de/images/stories/newsbilder/aschilling/2012/gtc2012/GK110Block.png alt=GK110]GK110 Blockdiagramm[/figure]
Der GK110 bietet also ein anderes Floating-Point-Verhältnis, mehr CUDA-Kerne, einen 1,5 MB großen L2-Cache und ein 384 Bit breites Speicherinterface sowie über ECC geschützten Speicher. Warum man nicht gleich auf ein 512 Bit breites Speicherinterface gesetzt hat, wird folgendermaßen erklärt: Mit 7,1 Milliarden Transistoren und einer Chipfläche von vermutlich etwa 600 mm² ist GK110 (GK104: 294 mm²) ohnehin schon der weltweit größte Chip (was die Transistoren betrifft) und auch in 28 nm nicht leicht zu fertigen und zudem teuer. Ein 512 Bit breites Speicherinterface hätte weitere Chipfläche in Beschlag genommen - letztendlich hat sich NVIDIA also zu einem Kompromiss entschlossen.
Um eine höhere Double-Precision-Performance zu erreichen, hat NVIDIA pro SMX-Cluster nun 64 Floating-Point-Kerne eingebaut. Bei GK104 waren es nur acht pro Cluster. Zusammen mit der höheren Anzahl an Clustern sorgt dies für einen enormen Schub bei der Double-Precision-Performance. NVIDIA bleibt auch seiner skalaren Architektur bzw. der "Superscalar Dispatch Method" treu, die wir erstmals bei GF104 sahen und welche die Berechnungen etwas fehleranfälliger machen. Dadurch wird man etwas abhängiger von Thread Level Parallelism (TLP) und Instruction-Level Parallelism (ILP) / ganzzahlige lineare Optimierung.
[figure image=http://www.hardwareluxx.de/images/stories/newsbilder/aschilling/2012/gtc2012/GK110SMX.png]GK110 SMX-Cluster Blockdiagramm[/figure]
Jedes SMX-Cluster verfügt außerdem über einen 64 kB großen L1-Cache und einen 48 kB Read-Only Data Cache. Im Vergleich zu GK104 hat man den L1-Cache also nicht angetastet, verpasst den Clustern in GK110 aber einen 48 kB großen Read-Only Data Cache. Pro SMX-Cluster bleibt es auch bei den 16 Textur-Einheiten, so dass GK110 derer maximal 240 besitzt.
Die Double-Precision-Performance wird auch durch eine Änderung an den Registern erhöht. So ist die Anzahl der Register pro SMX-Cluster mit 65.536 im Vergleich zu GK104 identisch geblieben, dafür aber darf bei GK110 pro Thread auf 255 Register zugegriffen werden - bei GK104 sind es nur 63.
Bereits angesprochen haben wir das breitere Speicherinterface, das sich aus sechs 64 Bit Blöcken zu einem insgesamt 384 Bit breiten Interface zusammensetzt. Anders als bei GK104 sind nun aber neben dem Grafikspeicher auch die L1- und L2-Caches ECC geschützt. Da eine Fehlererkennung auch immer einen gewissen Rechenaufwand bedeutet, hat NVIDIA diese Einbußen nach eigenen Angaben durch interne Optimierungen um bis zu 66 Prozent reduziert.
Hyper-Q und Dynamic Parallelism sind zwei weitere Punkte, die GK110 vorbehalten bleiben.
Hyper-Q:
Während die "Fermi"-GPUs nur über eine Work Queue mit neuen Befehlen und Daten versorgt werden konnten, soll dies mit "Kepler" nun anders sein.
[figure image=http://www.hardwareluxx.de/images/stories/newsbilder/aschilling/2012/gtc2012-keynote-04.jpg]Hyper-Q im Vergleich[/figure]
32 physikalische CPU-Kerne können nun gleichzeitig eine "Kepler"-GPU ansteuern. Natürlich ist diese Limitierung auf Softwareebene in Schnittstellen wie DirectX 11 nicht vorhanden und hier können auch mehrere Threads gleichzeitig ausgeführt werden, die Übergabe der Daten und Befehle aber erfolgte weiterhin seriell. Parallele Daten sollen nun zukünftig aber auch parallel übergeben werden können.
[figure image=http://www.hardwareluxx.de/images/stories/newsbilder/aschilling/2012/gtc2012-keynote-05.jpg]Serielle Abarbeitung der Befehle ohne Hyper-Q[/figure]
Ohne Hyper-Q werden die Daten und Befehle seriell übertragen, was dazu führen kann, dass die Auslastung der GPU nicht optimal ist.
[figure image=http://www.hardwareluxx.de/images/stories/newsbilder/aschilling/2012/gtc2012-keynote-07.jpg]Abarbeitung der Befehle mit Hyper-Q[/figure]
Mit Hyper-Q können die Daten und Befehle von 32 physikalischen Kernen gleichzeitig übertragen werden. Somit ist die Auslastung der GPU nicht nur besser, sondern die anfallenden Berechnungen können auch schneller abgearbeitet werden.
Natürlich ist es nun auch möglich, dass mehrere GPUs direkt miteinander kommunizieren. "GPU Direct" verbindet die "Kepler"-GPUs über das Netzwerk miteinander - der Umweg über die CPU und deren Arbeitsspeicher ist nicht mehr notwendig.
Dynamic Parallelism:
Befehle und Daten, die an die GPU geliefert werden, können verschachtelt aufgebaut sein (beispielsweise wenn Berechnungen von den Ergebnissen anderer Berechnungen abhängig sind) und somit die verschiedenen Threads der GPU über eine bestimmte Laufzeit blockieren. NVIDIA versuchte dem über Optimierungen in der CUDA-Schnittstelle entgegen zu wirken.
[figure image=http://www.hardwareluxx.de/images/stories/newsbilder/aschilling/2012/gtc2012-keynote-08.jpg]Dynamic Parallelism[/figure]
Mit dem Dynamic Parallelism kann die GPU selbst diese Verschachtelungen auflösen. Dies sorgt allerdings auch für etwas mehr Programmieraufwand, denn der Programmierer muss nun beachten, dass die GPU sich nicht selbst den Speicher volllaufen lässt. Sollte es dazu kommen, dass die selbst angelegten Threads den freien Speicher der GPU überschreiten, werden die Daten über die PCI-Express-Schnittstelle ausgelagert, was den gesamten Prozess wiederum verlangsamt.
[figure image=http://www.hardwareluxx.de/images/stories/newsbilder/aschilling/2012/gtc2012-keynote-09.jpg]Dynamic Parallelism[/figure]
Die GPU bestimmt dabei selbst, inwieweit sie die Verschachtelung zulässt. NVIDIA will und kann keine Raster vorgeben, da man damit auch die Leistung in ungünstigen Szenarien einschränkt.
Energie-Effizienz:
Großen Wert möchte NVIDIA mit Tesla K20 und K20X auch auf die Energie-Effizienz legen. Schaut man sich hierzu die Green500-Liste an, in der die Computer nach Energie-Effizienz aufgeführt sind, so ist hier auf den vorderen Plätzen der BlueGene/Q zu finden, der bei 16-Kernen und 1,6 GHz Takt auf eine Rechenleistung von rund 2100 MFlops pro Watt kommt. Mit einem Tesla K20X System will NVIDIA auf 2250 MFlops pro Watt kommen und das zu einem Viertel des Preises für die Hardware.
Einsatz im Titan Supercomputer:
Tesla K20X kommt unter anderem im Titan Supercomputer in Oak Ridge National Laboratory in Tennessee zum Einsatz. Das dortige System erreicht eine Peak-Performance von 27 PFlops. Diese setzt sich aus 18.688 NVIDIA-Tesla-K20X-GPUs und der gleichen Anzahl an 16-Kern-Prozessoren aus dem Hause AMD (Opteron 6274) zusammen. Insgesamt besteht der Titan aus 18.688 Knoten, die in den 200 Zellen untergebracht sind. Pro Knoten stehen 32 GB an Arbeitsspeicher zur Verfügung, was in einem Gesamtspeicher mit einer Kapazität von 710 Terabyte resultiert.
{jphoto image=30729}
Die Konkurrenz:
Heute Morgen hat AMD seine neue FirePro S10000 auf Basis zweier Tahiti-PRO-GPUs vorgestellt. In der entsprechenden Meldung war auch ein Vergleich der theoretischen Leistung enthalten, allerdings waren K20 und K20X zu diesem Zeitpunkt noch nicht offiziell.
Modell | AMD FirePro S10000 | NVIDIA Tesla K20X | NVIDIA Tesla K20 | NVIDIA Tesla K10 | NVIDIA Tesla M2090 |
Single-Precision | 5,91 TFlops | 3,95 TFlops | 3,52 TFlops | 4,58 TFLops | 1,33 TFlops |
Double-Precision | 1,48 TFlops | 1,31 TFlops | 1,17 TFlops | 0,19 TFlops | 0,67 TFlops |
In Sachen theoretischer Rohleistung dominiert AMD mit der FirePro S10000 die Konkurrenz aus dem Hause NVIDIA, egal ob GK104- oder GK110-basierend. Im Hinterkopf muss allerdings behalten werden, dass AMD mit FirePro S10000 einen maximalen Verbrauch von 335 Watt angibt und NVIDIA selbst mit der K20X auf nur 235 Watt kommt. Zudem legte NVIDIA seine GK104 bzw. GK110 auf unterschiedliche Einsatzbereiche aus, was bei der Betrachtung der Single- und Double-Precision-Performance deutlich wird.