NEWS

NVIDIA präsentiert Next-Generation GPU Fermi bzw. GT300

Portrait des Authors


NVIDIA präsentiert Next-Generation GPU Fermi bzw. GT300
19

Werbung

Soeben hat NVIDIA einen Einblick auf das gegeben, was uns in der nächsten GPU-Generation erwarten wird. Demnach hat man unter dem Codenamen Fermi die dritte Generation seiner CUDA-Compute- und Grafik-Architektur entwickelt. Dabei greift man auf die Erfahrungen bei der Entwicklung des G80 und GT200 zurück und verbessert deren Architektur-Konzepte weiter. Demnach ist man mit der Performance der Single-Precision-Fließkomma-Performance schon sehr zufrieden, allerdings verlangten zahlreiche Anwendungszwecke immer mehr Double-Precision-Performance. Hinzu kommt die Notwendigkeit nach einer Fehlererkennung (ECC) im Speicher, was die Verwendung solcher GPUs in einem Datacenter möglich machen würde, die auf konsistente Daten angewiesen sind. Bisher verfügten die GPUs über nur 16 kB shared-Cache, was vielen Entwicklern deutlich zu wenig war. Hinzu kommt, dass dieser Speicher nicht von jeder Compute-Software verwendet werden konnte und somit ungenützt blieb.

Aus diesen und noch einigen Anfragen mehr entwickelte sich Fermi. Die technischen Daten sind im folgender Übersicht gegen G80 und GT200 miteinander verglichen.

Fermi_1_rs

Durch Klick auf das Bild gelangt man zu einer vergrößerten Ansicht

3 Milliarden Transistoren arbeiten in der Fermi-GPU, die vermutlich in 40 nm bei TSMC gefertigt wird. Im Vergleich zu AMDs RV870 mit 2,15 Milliarden Transistoren noch einmal eine deutliche Steigerung. Gegenüber dem GT200 entspricht dieser einer Verdopplung. Die Doube-Precision-Fließkomma-Performance konnte um den Faktor acht gesteigert werden. Bei der Single-Precision Fließkomma-Performance gibt man sich mit einer Verdopplung zufrieden. Die Größe des shared-Memory ist vergrößert worden. Hinzugekommen ist ein L1- und L2-Cache. Der Speicher verfügt nun auch über eine Fehlererkennung (ECC).

Fermi_3_rs

Durch Klick auf das Bild gelangt man zu einer vergrößerten Ansicht

Maßgeblich verantwortlich zur Steigerung der Performane sind die 512 Shader-Prozessoren. Diese setzen sich aus 16 Streaming-Multiprozessoren (SM) zusammen, die wiederum aus 32 Shader-Prozessoren bestehen. Jeder Shader-Prozessor besteht aus einer Integer Arithmetic Logic Unit (ALU) und einer Floating Point Unit (FPU). Mit der neuen Arithmetik erfüllt NVIDIA den neuen IEEE 754-2008 Standard und erlaubt so Fused Multiply-Add (FMA) Funktionen, die sowohl Single- als auch Double-Precision durchführen können. FMA ermöglicht auch Multiply-Add (MAD) Funktionen, die sowohl eine Multiplikation als auch eine Addition mit nur einer Rundung berechnen können.

Sogenannte Special Function Units (SFUs) übernehmen Berechnungen, die keiner Multiplikation oder Addition entsprechen. Vier dieser SFUs stehen in der Fermi-GPU zur Verfügung. Jede SFU kann pro Takt und Thread eine Berechnung durchführen. Größere Befehle können über bis zu acht Takte ausgedehnt werden. Damit die Dispatch Unit in dieser Zeit nicht auf die SFUs warten muss und weiterhin die übrigen Shader-Prozessoren versorgen kann, arbeiten die SFU-Pipelines getrennt von dieser.

Zu den SMs und SFUs gesellen sich noch Load/Store Units. Jeder Streaming-Multiprozessor verfügt über 16 Load/Store Units, die für 16 Threads pro Takt die Quell- und Ziel-Adressierung im Speicher und Cache berechnen.

Fermi_2_rs

Durch Klick auf das Bild gelangt man zu einer vergrößerten Ansicht

Die Speicheranbindung setzt sich aus sechs 64-Bit-Speichercontrollern zusammen. Insgesamt ist das Speicherinterface somit 384-Bit breit und kann bis zu 6 GB GDDR5-Speicher anbinden. Je nach Ausbaustufen können also 1,5, 3 oder die vollen 6 GB verbaut werden. Das Host-Interface sorgt für die Verbindung der GPU mit dem PCI-Express-Interface und somit an den Rest des Systems. Der GigaThread Global-Scheduler verteilt Thread-Blöcke an den Streaming-Multiprozessoren-Scheduler, wo alle anfallenden Operationen auf die Shader-Prozessoren verteilt werden.

Fermi_4_rs

Durch Klick auf das Bild gelangt man zu einer vergrößerten Ansicht

Aufgrund der immer größer werdenden Nachfrage nach Double-Precision-Performance, hat NVIDIA auf diesen Umstand besonderen Wert gelegt. Die Performance der Fermi-GPU kann theoretisch maximal knapp achtmal höher sein als beim GT200. In der Praxis zeigt sich dann obiges Bild.

Fermi_5_rs

Durch Klick auf das Bild gelangt man zu einer vergrößerten Ansicht

Die Streaming-Multiprozessoren des Fermi verfügen über jeweils zwei Warp Scheduler und Instruction Dispatch Units. Ein Warp ist eine Zusammenstellung von Threads, die sich die gleiche Pipeline innerhalb der SIMT-Architektur (Single Instruction, Multiple Thread) teilen. Der Warp Scheduler wählt sich zwei Warps und verteilt die zu berechnenden Funktionen auf bis zu 16 Shader-Prozessoren, 16 Load/Store Units oder die vier SFUs.

Fermi_6

Beim RV870 ebenfalls verwendet wird ein shared-Memory. In der Fermi-GPU stehen 64 kB shared-Memory pro Streaming-Multiprozessor zur Verfügung. 48 kB sind dabei frei konfigurierbar, 16 kB werden dann als L1-Cache verwendet. Es besteht aber ebenfalls die Möglichkeit 16 kB shared-Memory zu verwenden, dann sind 48 kB L1-Cache verfügbar.

Fermi_7_rs

Durch Klick auf das Bild gelangt man zu einer vergrößerten Ansicht

Ein shared-Memory sorgt dafür, dass Daten, die von mehreren Threads verwendet werden, nicht mehr vom Speicher in die GPU und zurück geschrieben werden müssen, sondern sozusagen auf der GPU verbleiben können. Dadurch können Berechnungen deutlich schneller ausgeführt werden.

Die Integrität von Daten ist besonders bei wissenschaftlichen Anwendungen von besonderer Wichtigkeit. So ist die Fehlererkennung (ECC) im Speicher ein logischer Schritt. Selbst in modernen Speichertypen wie GDDR5 oder innerhalb der Speicher der GPU kann es dazu kommen, dass ein Bit umkippt und somit die Integrität des Speichers verloren geht. ECC erkennt diesen Fehler und korrigiert diesen.

Fermi_8_rs

Durch Klick auf das Bild gelangt man zu einer vergrößerten Ansicht

Moderne GPUs erlauben nicht nur das Ausführen eines Programms auf der Grafikkarte, sondern gleich mehrerer. Über sogenannte Kernel Execution ist dies nun auch auf der Fermi-GPU möglich. Aufgaben die durch eine Kernel Execution an die GPU weitergegeben werden, werden also nicht mehr seriell abgearbeitet, sondern können gleichzeitig bearbeitet werden.

Eine maßgebliche Rolle bei der Performance in Multi-Threaded-Operationen spielt das Application Context Switching. Dies geschieht laut NVIDIA deutlich schneller als in vorangegangenen Generationen. Zwischen 10 und 20 Mikrosekunden beträgt die Umschaltzeit die benötigt wird, um die Kommunikationen zwischen zwei unterschiedlichen Kerneln zu gewährleisten. Dies ist beispielsweise der Fall, wenn Physik- und Grafik-Berechnung miteinander synchronisiert werden müssen.

Fermi_9_rs

Durch Klick auf das Bild gelangt man zu einer vergrößerten Ansicht

Um die Programmierung von CUDA C, OpenCL und DirectCompute zu gewährleisten, präsentiert NVIDIA mit Nexus eine Dev-Kit um unter Microsoft Visual Studio entsprechend parallelisierte Software zu programmieren.

Zum Abschluss noch folgendes: Bisher hat NVIDIA nur technische Daten zu Fermi preis gegeben. Möglichte Daten zu entsprechenden Grafikkarten, dem Takt der GPU oder des Speichers, sind bisher noch nicht bekannt. Für die Beurteilung der Leistung in 3D-Spielen wären Informationen über ROPs und TMUs ebenfalls hilfreich. Ebenso ein Termin oder die Namensgebung dieser Karten fehlt bisher. Besonders interessant wären auch Angaben zum Stromverbauch. Bei einer derart hohen Anzahl an Transistoren und trotz 40-nm-Fertigung dürfte dieser zumindest unter Last neue Rekorde brechen.

NVIDIA veranstaltet derzeit in den USA die GPU Technology Conference. Zu dieser sind nur einige wenige Journalisten eingeladen worden, wir erhielten gegen 19:30 Uhr diese Informationen mit der Bitte, sie bis 22:00 Uhr zurück zu halten. Also hatten wir knapp 2,5 Stunden um obige Informationen zusammen zu fassen und euch zu präsentieren. Wir würden uns wünschen NVIDIA hätte hier einen etwas anderen Weg eingeschlagen und uns früher informiert. Dann wäre auch Zeit geblieben die Informationen deutlich informativer aufzubereiten.

Weitere Links:

Quellen und weitere Links

    Werbung

    KOMMENTARE (19)