G300-Fermi: Nvidia fokussiert GPU-Computing mit Next-Gen-Grafikkarte - Update: Weitere Bilder und Informationen
Heute stellt Nvidia in der GTC-Keynote mit Fermi (G300) die nächste Generation seiner GPU- und CUDA-Architektur vor. Den Schwerpunkt legten die Kalifornier dabei auf flexible Nutzbarkeit und hohe Auslastung der 512 Shader-ALUs - DirectX 11 wird nur am Rande erwähnt.
Nicht verpassen: Fermi GF100 im Technik-TÜV: Kommentare zu Architekturdetails, Bildqualität und Benchmarks.
Quelle: PC Games Hardware
High-Level Diagramm des G300/Fermi
Originalartikel vom 30.09.2009: Die Architektur des G300, wie der Chip für die neuen Nvidia-Grafikkarten wohl heisst, hört auf den Codenamen Fermi und verfügt über rund 3 Milliarden Transistoren, 512 ALUs, bis zu 6 Gigybate GDDR5-RAM und eine 384 Bit breite Speicherschnittstelle. Was Nvidia bisher nicht veröffentlicht, sind Taktraten - alle Angaben zur Leistungsfähigkeit sind also pro Takt gemeint, was nicht unbedingt mit dem Leistungsverhältnis der finalen Produkte zu ihren Vorgängern zu tun haben muss.
Mit der Fermi-Architektur konzentriert Nvidia sich weiter als jemals zuvor auf den Bereich des GPU-Computing und benutzt auch entsprechende Bezeichnungen in der Präsentation. Aus den ehemaligen Textureinheiten sind nun Load/Store-Units geworden, die Shader-ALUs (welche Nvidia bereits zuvor als Stream-Processors bezeichnet hatte) sind nun CUDA-Kerne oder -Prozessoren. Natürlich werden Chips, die auf der Fermi-Architektur basieren, auch DirectX-11-kompatibel sein, aber das erwähnt Nvidia nur am Rande - pikanterweise erst nach der Eignung für CUDA und damit Physx.
Quelle: PC Games Hardware
Fermi-Streaming Multiprozessor oder SIMD
Spezifikationen: G300 Fermi
Insgesamt 512 dieser Recheneinheiten finden auf einem G300-Chip Platz, organisiert in 16 SIMD-Einheiten. Pro SIMD sind somit 32 ALUs vorhanden, welche sich die 16 vorhandenen Lade- und Speichereinheiten (LS-Einheiten, ex-TMUs) teilen. Zurzeit macht Nvidia leider keine genaueren Angaben über die Fähigkeiten der einzelnen LS-Einheiten außer, dass sie von weiteren Einheiten unterstützt werden, um die berechneten Adressen in Speicher und Cache zu bewegen - Hinweise zur Texturlfiltereistung geben die vorgestellten Spezifikationen noch nicht. Werte von 4 bis 16 Texturfilter pro SIMD (64 bis 256 TMUs für den ganzen Chip) wären denkbar.
Weiterhin sind vier Spezialeinheiten (SFU, Special Function Units) für seltener benötigte Operationen wie Sinus/Cosinus, Reziprok oder die Quadratwurzel pro SIMD-Einheit vorhanden. Diese sind unabhängig von den 32 ALUs ansteuerbar, sodass Instruktionen an beide Gruppen gleichzeitig abgeschickt werden können.
Stark verbessert will Nvidia außerdem die Double-Precision Fähigkeiten haben. Nicht nur erfüllt man jetzt den IEEE-754-2008-Standard (zuvor IEEE 754 1985) mit dem gegenüber MAD genaueren FMA (Fused Multiply-Add, welches AMD mit der HD-5800-Reihe und Nvidia mit dem GT200 nur für DP ebenfalls anbietet), auch der DP-Durchsatz steigt gegenüber dem GT200 um Faktor 8 (zur Erinnerung: Pro Taktzyklus!). Pro SIMD (Streaming Multiprocessor genannt) sind 16 FMA-Operationen möglich, pro Chip also 256 - der GT200 konnte noch 30 DP-MADs ausführen.
Um die Einheiten mit möglichst hoher Auslastung betreiben zu können, stattet Nvidia jede SIMD-Einheit in Fermi mit zwei sogenannten Warp-Schedulern und Instruktions-Dispatchern aus. Jede kann entweder eine 16er-Gruppe von ALUs, die 16 Load/Store-Einheiten oder die 4 SFUs pro Takt ansteuern. Die Verteilung der Instruktionsformate ist dabei recht flexibel, Integer- und Gleitkommaformate können gemischt werden, lediglich Single- und Double-Precision sind exklusiv.
Um die Auslastung der Einheiten und damit die Performance des Chips zu erhöhen, integrierte Nvidia verbesserte Möglichkeiten in der Fermi-Architektur, um verschiedene Anwendungen und Anwendungskerne möglichst gleichzeitig auszuführen. Der Wechsel zum Beispiel von einer Graphikoperation zu einem Physik-Kernel ist laut Nvidia nun bis zu zehnmal schneller als zuvor beim GT200, auch können nun verschiedene Instanzen einer Anwendung gleichzeitig verarbeitet werden - als Beispiel seien hier verschiedene Physx-Solver genannt, die zuvor nur nacheinander abgearbeitet werden konnten.
Quelle: PC Games Hardware
Speeds & Feeds
Fermi-Fütterung: Cache und RAM
Ein eher cleverer Trick ist die Aufteilung des Caches der einzelnen SIMDs. Physikalisch vorhanden sind 64 kiByte pro SIMD/Streaming Multiprocessor. 16 kiByte davon sind fest als Shared-Memory (wie schon bei G80 und GT200) und 16 kiByte als Level1-Cache konfiguriert - die restlichen 32 kiByte können (vermutlich in Blöcken von 16 kiByte) frei einer der beiden Nutzungsmöglichkeiten zugeordnet werden: Möglich sind also 16k L1 und 48k Shared-Memory oder umgekehrt. DirectX 11 erfordert beispielsweise 32 kiByte Shader-Memory.
Der G300 mit Fermi-Architektur bekommt außerdem einen voll-kohärenten Level-2-Cache mit 768 kiByte Kapazität - das entspricht 48 weiteren kiByte pro SIMD-Einheit.
Bis zu 6 Gigabyte GDDR5-RAM sind an den G300-Chip über 6 64-Bit-Partitionen gekoppelt - Nvidia hat die 512 Bit breite Speicherschnittstelle des GT200 offenbar wieder gekippt. Die verfügbare Gesamtbandbreite hängt von der bisher nicht angegebenen Geschwindigkeit des angebundenen GDDR5-RAMs ab. Konservativ auf dem Niveau der HD 5870 bei 2.400 MHz (4.800 GTransaktionen/Sekunde) angesiedelt, wären rund 230 Gigabyte pro Sekunde denkbar - ca. 45% mehr als noch bei der Geforce GTX 285.
Der GDDR5-RAM, der Level-1- und der Level-2-Cache sind mit dem Speicherschutz ECC ausgestattet, sodass einfache Speicherfehler erkannt und korrigiert werden können. Während das im Bereich der Spielegrafik bisher kein Problem war, da eine Single-Bit-Abweichung bei einem Pixel-Quad auf dem Bildschirm kaum erkennbar war, sind Speicherfehler ein großes Problem bei einigen GPU-Computing-Anwendungen, wo sie das (exakte) Ergebnis verfälschen können, sodass weitere Korrekturmechanismen in den Programmen nötig werden was wiederum Performance kostet.
Quelle: PC Games Hardware
Nvidia Fermi (13)
PTX 2.0: Fermi wird flexibel
Dank diverser Erweiterungen beim Programmiermodell und den Möglichkeiten der Hardware, die Programmierung auch flexibel und mit hoher Geschwindigkeit auszuführen, war es sinnvoll für Nvidia, auch die C++-Programmierbarkeit zu erweitern.Die Adressräume sind nun mit 40 Bit Weite vereinheitlicht, sodass keine Unterscheidung bei der Adressierung mehr getroffen werden muss, ob der Speicher privat einem Thread zugeordnet ist oder nicht. Die Load-Store-ISA verfügt sogar über 64 Bit um für zukünftige Erweiterungen gerüstet zu sein.
Quelle: PC Games Hardware
Nvidia Fermi PCGH 7
Update 30.09.2009:
Nvidia-CEO Jen-Hsun Huang zeigte auf der GTC, der GPU-Technology-Conference soeben zum ersten Mal eine G300-.Grafikkarte (aus der Tesla-Reihe) der Öffentlichkeit. Außerdem wurde eine CUDA-Simulation in Double-Precision im Vergleich zum GT200 im Tesla C1060 gezeigt. Fermi oder G300 erreichte dabei circa die 4,5-5-fache Performance bei einer n-Body-Simulation.
Quelle: PC Games Hardware
Nvidia Fermi Tesla PCGH 17
Update 01.10.2009:
Auf der GTC-Keynote und der anschließenden Pressekonferenz, welche beide hauptsächlich von Nvidia-CEO Huang bestritten wurden, gab es noch einige interessante neue Details zu den Fermi-Grafikkarten. Neue Fotos der Karte zeigen die spiegelnde Kühlerabdeckung, die Stabilisierungsplatte auf der Rückseite und die eigenwillige Montage des Acht- und Sechpol-Stromanschlusses: Ersterer zeigt nach hinten, letzterer nach oben aus der Karte heraus. Huang sagte auf die Frage der Journalisten nach dem Stromverbrauch, dass man sich bei der Fermi-Architektur im gleichen Rahmen bewege wie bei der gegenwärtigen Generation. Die Stromanschlüsse machen es auch deutlich: maximal 300 Watt darf eine so ausgestattete Karte beziehen. Man habe derzeit funktionierendes Silizum im Labor (wie bereits anhand der Live-Demo des Fermi zu erahnen war) und arbeite mit Hochdruck daran, die Chips für die Massenproduktion zu optimieren. Von diesem Stadium an dauere es in der Regel noch "wenige Monate" bis zur Produktveröffentlichung. In den Händlerregalen dürften größere Mengen Fermi-basierter Chips daher wohl nicht mehr zu finden sein.
Wie üblich wolle man einen großen Bereich mit der Architektur abdecken: Vom High-End bis hinunter zu passiv gekühlten Lösungen soll die Spanne reichen. Huang bezeichnete Fermi als erste voll auf GPU-Computing optimierte Architektur. Man probiere bei Nvidia neue Techniken zunächst als Anhang zu bestehenden Architekturen aus und wenn sich für diese Anwendungsbereiche ein lohnenswerter Markt abzeichne, optimiere man kommende Generationen stärker hierfür. So geschehen mit G80 -> GT200 und nun Fermi, welcher numerisch der NV100 ist. Wichtig sei vor allem, dass man bestehende Anwendungen und Performance-Messlatten nicht beeinträchtige, wenn man etwas neues versucht, so Huang weiter.
Nach wie vor stehen die finalen Taktraten der Fermi-Karten nicht fest, entsprechend lässt sich auch aufgrund der runderneuerten Architektur die Performance im Spielebereich im Vergleich zur HD 5870 kaum einschätzen.
Es werden wohl zwei Varianten der Karte auftauchen und hoffe das dieses Jahr nicht nur die Teslakarten bzw die Karten für Firmenanwendungen released werden und erst nach dem Jahreswechsel der Gamer auf seine kosten kommt.
PC Perspective - Oak Ridge National Laboratory Looks to NVIDIA "Fermi" Architecture For New Supercomputer
Und eins möchte ich schon mal deutlich machen: Ich hoffe inständig das bald auch "ernsthafte" Anwendungen herauskommen die CUDA nutzen. Ich könnte mir da zum Beispiel meine Musikanwendungen vorstellen. Ein paar Softsynths in einer CUDA Version würden die Performance meines i7 Musikrechners dramatisch in die Höhe treiben (Hoff ich). Wenn sie das für Signalanwendungen wichtige Latenzproblem in den Griff kriegen dürfte das machbar sein.