>Info zum Stichwort Fermi | >diskutieren | >Permalink 
Bettina Beispiel schrieb am 21.6. 2013 um 01:24:19 Uhr über

Fermi

Fermi-Architektur

Bei der Geforce-400-Serie verwendet Nvidia erstmals die neuentwickelte „Fermi-Architektur“, welche auch auf den Quadro- und Teslakarten eingesetzt wird. Fermi ist der Nachfolger der Unified-Shader-Architektur des G80-Grafikprozessors. Die primären Verbesserungen beziehen sich auf die Unterstützung von DirectX 11, sowie den erweiterten Anwendungsmöglichkeiten im Bereich des GPU-Computing.

Die Grafikprozessoren auf Basis derFermi-Architekturbestehen primär aus den „Graphics Processing Clusters“ (GPC). Diese „Graphics Processing Clusters“ beherbergen neben derRaster Engine“ auch vier Shader-Cluster bzw. „Streaming Multiprocessors“. Jeder Shader-Cluster wiederum verfügt über 32 bis 48 Streamprozessoren, vier bis acht Textureinheiten sowie einer „PolyMorph Engine“. Hinzu kommen noch je 16 „Load/Store“-Einheiten, welche Quell- und Zieladressen von 16 Threads in einem Takt berechnen und die Ergebnisse in den Cache oder VRAM schreiben können. Des Weiteren sind noch je vier bis acht „Special Function Units“ (SFU) zur Sinus- und Kosinus-Berechnung vorhanden. Jede SFU kann pro Takt eine Instruktion pro Thread ausführen, wobei für einen Warp acht Takte benötigt werden.

Bei den „CUDA Cores“ (eine Anspielung auf die CUDA-API von Nvidia) handelt es sich um einfach-skalare Streamprozessoren, welche sich nach wie vor aus einer vollwertigen „Arithmetic Logic Unit“ (ALU) und einerFloating Point Unit“ (FPU) zusammensetzen. Zur Verbesserung der GPU-Computing-Fähigkeiten verfügen die Grafikprozessoren derFermi-Architekturals erste überhaupt über eine komplette Unterstützung von C++ und sind, genau wie die Radeon-HD-5000-Serie von AMD, mit dem IEEE-754-2008-Standard vollständig kompatibel. Letzteres wurde notwendig, um zur Verbesserung der Double-Precision-Fähigkeiten (Rechnen mit doppelter Genauigkeit), das gegenüber MAD genauere FMA (Fused Multiply-Add) verwenden zu können. Jeder Streamprozessor kann pro Takt ein Fused Multiply-ADD (FMA) berechnen, unabhängig davon, ob es eine Single-Precision- oder eine Double-Precision-Operation ist. Im Gegensatz zur Vorgängergeneration sind Multiplikations-Operationen (MUL) auf derFermi-Architekturnicht mehr möglich.[21]

Bisher waren die Textureinheiten beim G80 bzw. GT200 in sogenanntenTexture Processing Clusterszusammengefasst. Bei derFermi-Architektur“ entfällt dieser Cluster komplett. Stattdessen sind je Shader-Cluster vier bis acht Textureinheiten vorhanden. Dadurch verschlechtert sich zwar das Verhältnis von Shadern zu TMUs auf 8:1 bzw. 6:1 (zuvor 2:1 bzw. 3:1), allerdings ist nun auch ein dedizierter 12 KB L1-Texture-Cache pro Shader-Cluster vorhanden.[22]

Die Raster Operation Processors (ROP) sind bei der Fermi-Architektur teilweise neu organisiert worden. Nach wie vor werden diese in Partitionen zusammengefasst, welche auch weiterhin an den Speichercontroller angegliedert sind, wobei nun pro Partition bis zu acht Rasterendstufen vorhanden sein können. Ein ROP kann nach einem Takt ein 32-Bit-Integer-Pixel, ein 16-Bit-Floating-Point-Pixel nach zwei Takten oder ein 32-Bit-FP-Pixel nach vier Takten ausgeben.[23] Die Anzahl der maximal zu bearbeitenden Pixel wird allerdings dadurch limitiert, dass jeder Shader-Cluster pro Takt lediglich 2 (GF100) bzw. 4 Pixel (GF104, GF106 und GF108) an die ROPs weitergeben kann.[24] Bei den bisher erschienen Fermi-Modellen kann die volle Anzahl an ROPs daher nur bei der überwiegenden Bearbeitung von 16- und 32-Bit-Floating-Point-Pixeln genutzt werden, was die maximale Pixelfüllrate limitiert. Bei der Nutzung von Formaten höher als 32-Bit-Pixeln können allerdings aufgrund anderer Belegung der Datenpfade ebenfalls nicht alle ROPs ausgelastet werden. Diese Einschränkung gilt allerdings nicht für die Z-Füllrate.[25]

Zur Verbesserung der GPU-Computing-Fähigkeiten weist dieFermi-Architekturneben dem Shared Memory- auch einen L1- und L2-Cache auf. Jeder Shader-Cluster verfügt über einen 76 KB großen Cache, wobei 12 KB L1 Texture Cache für die Textureinheiten spezialisiert sind. Die restlichen 64 KB sind frei konfigurierbar, so dass entweder dem L1-Cache 48 KB und der Shared-Memory-Cache 16 KB zugewiesen werden kann oder umgekehrt. Zusätzlich ist bei derFermi-Architekturnoch ein globaler, als „Unified“ ausgelegter L2-Cache vorhanden, der pro Speichercontroller 128 KB groß ist und somit im Falle des GF100 insgesamt 768 KB beträgt (GT200: 256 KB). Durch die Unified-Auslegung ist es möglich, auf den L2-Texture-Cache, ROP-Cache und die On-Chip-FIFOs früherer Architekturen zu verzichten.[26] Der L2-Cache ist dafür zuständig, alle Load-, Store- und Textur-Anfragen aufzunehmen, wobei nun sämtliche Einheiten gleichzeitig auf diesen zugreifen können.[27]

Nvidia hat die Renderingpipelines bei derFermi-Architekturneu organisiert. Die GPU erhält die Befehle von der CPU zunächst über das sogenannte Host-Interface. Die „GigaThread Engine“ kopiert daraufhin die Daten aus dem Systemspeicher in den eigenen Videospeicher und teilt diese in Thread-Blöcke ein. Diese werden dann über die „Graphics Processing Clustersbzw. derenRaster Engine“ an die Shader-Cluster weitergeleitet, welche von Nvidia nun auch alsStreaming Multiprocessors“ bezeichnet werden. Jeder Block wird nun in 32 Threads bzw. Warps unterteilt, wobei jeder Shader-Cluster 48 Warps bearbeiten kann, bevor diese an die Streamprozessoren weitergeleitet werden.
Grafikprozessoren


   User-Bewertung: /
Was interessiert Dich an »Fermi«? Erzähle es uns doch und versuche es so interessant wie möglich zu beschreiben.

Dein Name:
Deine Assoziationen zu »Fermi«:
Hier nichts eingeben, sonst wird der Text nicht gespeichert:
Hier das stehen lassen, sonst wird der Text nicht gespeichert:
 Konfiguration | Web-Blaster | Statistik | »Fermi« | Hilfe | Startseite 
0.0100 (0.0020, 0.0066) sek. –– 854068260