CUDA GPUs

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen
Hinweis: Bitte beachten Sie, dass dieser Artikel / diese Kategorie sich entweder auf ältere Software/Hardware Komponenten bezieht oder aus sonstigen Gründen nicht mehr gewartet wird.
Diese Seite wird nicht mehr aktualisiert und ist rein zu Referenzzwecken noch hier im Archiv abrufbar.

Um Berechnungen mittels CUDA durchzuführen wird unter anderem eine CUDA-fähige Grafikkarte benötigt. Ist bereits eine Nvidia Grafikkarte vorhanden, so kann auf der Webseite Cuda GPUs überprüft werden, ob die Karte CUDA unterstützt. Beim Kauf einer neuen Grafikkarte werden verschiedene Typen angeboten: die Nvidia Tesla Serie, die vor allem für den Data-Center-Bereich im professionellen Einsatz gedacht ist, die Quadro Serie, die unter anderem für Workstations im Visualisierungs- und Simulationsbereich eingesetzt wird und die GeForce Serie, die für den Desktop- und Consumer-Bereich konzipiert ist. Es werden nun die wichtigsten Vertreter der einzelnen Familien vorgestellt.

GeForce Serie

Architekturbild des GK104. Quelle: Anandtech Review GTX 680

Die aktuelle Nvidia GeForce Serie[1] ist auch unter dem Namen "Kepler"[2] bekannt und somit der Nachfolger der Architektur "Fermi"[3]. Die GeForce Karten sind speziell für den Gaming-Bereich, die Darstellung von Bild- bzw. Videomaterial (DirectX_11 kompatibel) und die Beschleunigung von CUDA unterstützenden Applikationen ausgelegt.

Architekturbild des GF100. Quelle: Nvidia Whitepaper

Der beliebteste Vertreter der GeForce Karten im Desktop-Bereich ist zur Zeit wohl die GTX 560[4], da sie einigermaßen stromsparend und geräuscharm ist. Die aktuellen Flagschiffe sind die erst vor kurzem erschienene GTX 680 und die schon längere am Markt erhältliche GTX 580[5]

Der neue Chip der Kepler-Architektur besitzt die Bezeichnung GK104.[6] Eine Große Änderung ist die Angleichung des Base Clocks mit dem Shader Clock. Vor Kepler besaß der Shader-Clock die doppelte Takt-Rate des Base-Clocks, nun sind die beiden Taktraten gleich, dafür wurde die Anzahl der Shader-Einheiten verdoppelt.

Der Grafikchip der Fermi-Architektur ist der GF100[7] und somit der Nachfolger des früher verwendeten G80. Für die CUDA-Berechnungen besitzt der GF100 4 Graphic Processing Clusters (GPCs) mit jeweils 4 Streaming Multiprozessoren (SMs) und 6 Memory Controllern. Weitere wichtige Neuerungen sind die Vergrößerung des Shared Memories pro SM, eine neue Cache Architektur und ein Re-Design des Warp-Schedulers. Mit dem GF100 ist nun auch die Ausführung von parallelen Kernel möglich. Eine detaillierte Version der Features des GF100 findet sich auch im GTX 400 Datasheet und unter Anandtech GF100.

GTX 680

Die GTX 680 ist die erste GPU, die die neue Architektur "Kepler" verwendet.[8]. Der verwendete Chip ist der "GK104", erstmals aus einer 28nm-Fertigung. Zu den Neuerungen gehören u.A. Redesign der Streaming Multiprozessoren (neu: SMX), ein dynamischer Clock, NVENC (H.264 Video Engine), Steigerung der Performance per Watt u.v.m..[9] Technische Daten:[10]

  • 1536 Cuda Cores
  • 1006 MHz Base Clock (Gpu Boost möglich)
  • 2048 MB GDDR5 Standard-Memory
  • 256-bit Memory Interface Width

GTX 590

Die GTX 590 beherbergt zwei GTX 500 GPUs und ist somit die Leistungsfähigste Karte auf einem Steckplatz. Bei der CUDA-Programmierung scheint diese Karte jedoch auch als zwei Devices auf und muss somit auch separat behandelt und programmiert werden. Zu den wichtigsten Eckdaten gehören[11]:

  • 2 x 512 Cuda Cores
  • 607 MHz Graphics Clock
  • 2 x 1536 MB GDDR5 Standard Memory Config
  • 2 x 384-bit Memory Interface Width

GTX 580

Die GTX 580 ist eine Mischung aus neu-designtem aber doch altem GF100. Wichtig ist, dass beim GF110 keine Hardware deaktiviert wurde. Er besitzt alle SMs, alle ROPs und alle Caches. Zu den wichtigsten Eckdaten gehören:

  • 512 CUDA Cores
  • 772 MHz Graphics Clock
  • 1536 MB GDDR5 Standard Memory Config
  • 384-bit Memory Interface Width

Auch die schlechten Kritiken der GTX 480 betreffend Leistungsaufnahme und Temperaturentwicklung[12] wurden nicht ignoriert und es wurde am Stromverbrauch und am Kühldesign gearbeitet[13]

GTX 480

Die GTX 480 verwendet den GF100 mit 1 SM deaktiviert (somit 15 SMs à 32 CUDA Cores). Die wichtigsten Eckdaten sind:

  • 480 CUDA Cores
  • 700 MHz Graphics Clock
  • 1536 MB GDDR5 Standard Memory Config
  • 384-bit Memory Interface Width

Die GTX 480 wurde, wie schon erwähnt, vor allem wegen dem hohen Stromverbrauch und ihrer Wärmeentwicklung kritisiert. In disem Zusammenhang können sich vor allem die einzelnen Umsetzungen des Referenzdesigns der einzelnen Hersteller stark unterscheiden können.

GTX 470

Bei der GTX 470 wurde gegenüber der GTX 480 noch ein SM deaktiviert. Die Grafikkarte besitzt daher 14 SMs mit 32 CUDA Cores. Außerdem fällt der Cache kleiner aus und das Memory Interface wurde kleiner. Dazu die Eckdaten:

  • 448 CUDA Cores
  • 607 MHz Graphics Clock
  • 1280 MB GDDR5 Standard Memory Config
  • 320-bit Memory Interface Width

GTX 460

Die GTX 460 verwendet eine modifizierte Version des GF100 unter der Bezeichnung "GF104". Der GF104 ist eine verkleinerte Version des GF100 mit 2 GPCs mit jeweils 4 SMs. Die GTX 460 hat diesen Chip in Verwendung, jedoch mit einem SM deaktiviert. Es sind daher 7 SMs vorhanden, die mit jeweils 48 CUDA Cores bestückt sind. Da kurz die Daten:

  • 384 CUDA Cores
  • 675 MHz Graphics Clock
  • 1024 oder 768 MB GDDR5 Standard Memory Config
  • 256-bit oder 192-bit Memory Interface Width

Eine besondere Neuerung gibt es beim GF104 noch. Bei dem GF100 konnte der Warp Scheduler immer zwei unterschiedliche Warps den Cuda Cores zuteilen. Nun sind aber 3 Blöcke à 16 Cuda Cores vorhanden sind, jedoch stets 2 Warp Scheduler. Daher musste ein neues Konzept eingeführt werden. Nvidia bezeichnet die neu entwickelte Technik als „superscalar“[14]. Bei diesem Verfahren wird nach „Instruction Level Parallelism“ (ILP) gesucht. Dabei versuch man die nächste Operation parallel zu der aktuellen einer Instruction Unit zuzuteilen, falls die beiden unabhängig sind. Diese Technik soll die Auslastung des dritten CUDA Core-Blocks erhöhen. Dadurch werden im besten Fall werden alle 384 Cuda Cores effizient ausgelastet, wenn die Applikation ILP zulässt. Jedoch können im schlechtesten Fall aber nur 256 Cuda Cores von den beiden Schedulern bedient werden. Im 7046GT Server-Tower für den FlightGear Simulator werden z.B. vier GTX460 verwendet (vgl. FlightGear mit dem 7046GT Server-Tower).

Tesla Serie

Die Tesla Serie[15] ist für den professionellen Einsatz von parallelen Berechnungen entwickelt worden. Vor allem die hohe Double-Precision Floating Point Leistung zeichnet die Karten aus. Von Seitens des Herstellers Nvidia gibt es ebenfalls Vorteile:

  • 3 Jahre Hersteller Garantie
  • Ausschließliche Herstellung durch Nvidia
  • Fertigung der Grafikkarten unter ausführlichen Stress-Tests
  • Entreprise Level Support

Bezüglich Hard- und Software gibt es auch Besonderheiten:

  • ECC-Memory und größerer Speicher (3GB bzw. 6GB)
  • 2 DMA-Engines für die Überlagerung von Berechnungen und Kommunikation
  • Schnelleres Context-Switching und Warp-Scheduling
  • Entwicklung eigener TCC-Treiber
    • Der TTC-Modus der Tesla Karte ermöglicht es z.B. unter Windows CUDA-Applikationen per Remote-Desktop zu entwickeln. Normalerweise kann unter Windows nicht per Remote-Desktop entwickelt werden, da der Nvidia-Grafiktreiber nicht korrekt genutzt werden kann. Zumeist wird als Work-around ein VNC-Server für den Remote-Zugang verwendet, da hierbei ohne Probleme auf CUDA zugegriffen werden kann. Durch die Verwendung einer Tesla-Karte im TCC-Modus entfällt jedoch die Einschränkung, die bei RDP ansonsten auftritt.
  • Die Möglichkeit die Tesla-Karte mit einer integrierten nicht-Nvidia Karte zu betreiben, da sich der TCC-Treiber installieren lässt.
  • Die Verwendung von CUDA-Applikationen, die unter Windows als Service laufen.
  • Sonderverwendung mit Infiniband
    • Mit GPUDirect[16] wird eine schnellere Kommunikation der GPU mit einer Infiniband Karte ermöglicht. Es werden jedoch nur für manche Karten Treiber der Hersteller bereitgestellt.

C2050/C2070

Die Tesla Karten C2050 und C2070 [17] weisen folgende Merkmale auf:

  • 448 CUDA Cores
  • 1,15 GHz Graphics Clock
  • 3GB oder 6GB MB GDDR5 Standard Memory Config
  • 2 PCI-e DMA Engines
  • 384-bit Memory Interface Width
  • 515 Gflops Double Precision bzw. 1030 Gflops Single Precision Floating Point Performance

Die C2050 bzw C2070 besitzen außerdem noch einen DVI-Ausgang der den Betrieb der Karte in Workstation-Lösungen ermöglicht.

M2050/M2070

Die M2050 und M2070 [18] zeichnen sich wie folgt aus:

  • 448 CUDA Cores
  • 1,15 GHz Graphics Clock
  • 3GB oder 6GB MB GDDR5 Standard Memory Config
  • 2 PCI-e DMA Engines
  • 384-bit Memory Interface Width
  • 515 Gflops Double Precision bzw. 1030 Gflops Single Precision Floating Point Performance

Der Unterschied zur C2050/C2070 besteht darin, dass die M-Serie ein Computing Module ist, dass für den Einsatz im Server-Bereich gedacht ist. Daher besitzt die M-Serie auch keinen Display-Ausgang.

Quadro Serie

Die Quadro Serie ist speziell für professionelle Grafik-Bearbeitung, Animationen und Video-Applikationen (CAD und DCC Anwendungen) konzipiert worden. Die aktuellste Serie baut außerdem auf die Fermi-Architektur auf und kann dadurch auch für High-Performance Computing verwendet werden.

Quadro 6000

Die Quadro 6000 weist folgende Eigenschaften auf[19]:

  • 448 CUDA Cores
  • 1,15 GHz Graphics Clock
  • 6GB MB GDDR5 Standard Memory Config
  • ECC Memory
  • 2 PCI-e DMA Engines
  • 384-bit Memory Interface Width
  • 515 Gflops Double Precision bzw. 1030 Gflops Single Precision Floating Point Performance
  • Dual Link DVI-I und 2 Display Ports
  • Maximum Display Resolution Digital @ 60Hz: 2560x1600
  • 3D Vision/3D Vision Pro

Von der aktuellen Quadro-Serie gibt es außerdem noch die Quadro 5000, die Quadro 4000 (auch in einer Sonderausführung für MAC, die Quadro 2000 und die Quadro 600.

Einzelnachweise

Das könnte Sie auch interessieren

Bonnie++ Festplattentest unter Debian Linux ausführen
Event-News: LinuxTag 2012 MySQL Monitoring/Management und SSD Caching
Intel CPU Übersicht