GPU Computing - Review und Analyse

indiana_74

Moderator
☆☆☆☆☆☆
Mitglied seit
24.02.2006
Beiträge
8.178
Renomée
481
Standort
in der Hauptstadt
  • SIMAP Race
  • QMC Race
  • RCN Russia
  • Spinhenge ESL
  • Docking@Home
  • BOINC Pentathlon 2011
  • BOINC Pentathlon 2012
  • BOINC Pentathlon 2013
  • BOINC Pentathlon 2014
  • BOINC Pentathlon 2015
file.php

Moore's Law ist ein "Gesetz" im Umfeld der Datenverarbeitung, welches vor vielen Dekaden beschrieben wurde. Es besagt, dass sich die Komplexität integrierter Schaltungen alle zwei Jahre verdoppelt, während die Komponentenkosten sich nur minimal verändern. Hierdurch würde sich die Anzahl der Transistoren auf der selben Fläche verdoppeln und damit die verfügbare Rechenleistung ebenfalls um den Faktor Zwei steigen.
Bis heute gilt dieses Gesetz. Durch schrumpfen der Struktur (von 90 nm auf 65 nm auf 45 nm auf 32 nm) oder neue Technologien (SSE, MMX, HyperThreading oder Vielkern-Technik) wurde die Leistungsfähigkeit der Prozessoren stetig größer.

Doch während dieser Anstieg linear ist, hat sich etwas grundlegendes verändert. Grafikprozessoren, die auf die massiv parallele Verarbeitung von Bilddaten ausgelegt waren und deren Resultate immer nur in Pixeln ausgegeben wurden, können heute einfache Rechenaufgaben erledigen und das Ergebnis zurück an eine Anwendung liefern.
Massiv parallele Verarbeitung von Daten findet man auch im Umfeld der Großrechner, wo sehr viel Rechenleistung auf einen Ort (Rechenzentrum) konzentriert wird, was sehr hohe Anforderungen an den Betreiber stellt (Kühlung & Programmierlogistik), sowie enorme Geldmengen für Anschaffung und Betrieb verschlingt.

Mit der Geburt des Internets und der Vernetzung von Heimcomputern wurden neue Standorte und Quellen für Rechenleistung verfügbar - bekanntestes Projekt hierbei ist SETI@Home, wo ein Bildschirmschoner (der ja nur aktiv ist, wenn man nicht am PC arbeitet) die verfügbare Prozessorleistung für die Verarbeitung von kleinen Datenhappen bereitgestellt hat und das Ergebnis an die Betreiber zurückgemeldet hat. Es war die Geburt des Distributed Computing (verteilten Verarbeitens / Rechnens).
[BREAK=Die "theoretische" Leistungsfähigkeit der GPU]


Neben der wachsenden Leistungsfähigkeit der Hauptprozessoren gab es in den letzten Jahren große Sprünge in der "theoretischen” Leistungsfähigkeit der Grafikprozessoren (GPU). Immer mehr Pixel konnten immer schneller berechnet werden und immer mehr Effekte wurden nicht im Hauptprozessor (CPU) sondern in der GPU erledigt. Komplexere Schaltungen haben dies möglich gemacht und die schiere Anzahl der Transistoren, bzw. Recheneinheiten übertrifft bereits heute die Leistungsfähigkeit der Hauptprozessoren.

Eine der Recheneinheiten, die in den GPUs verwendet wird, ist die FPU (Fließkommaeinheit). Eine solche FPU ist in einem normalen Prozessor auch vorhanden, doch finden sich in einem Grafikprozessor hunderte davon, was die überlegene Rechenleistung erklärt. Im Gegensatz zu einem x86 kompatiblen Prozessor, der noch komplexere Berechnungen beherrscht (MMX, SSE, SSE2, etc) ist hier die große Anzahl der Recheneinheiten ausschlaggebend. Doch ist eine FPU nicht gleich einer FPU. Denn Fließkommaberechnungen können mit einfacher Präzision oder doppelter Präzision durchgeführt werden.

Im Fall der einfachen Präzision (single precision - SP) wird mit einer 32 Bit großen Zahl gearbeitet und bei doppelter Präzision (double precision - DP) mit einer 64 Bit großen Zahl. Aktuelle x86-Prozessoren können noch präziser rechnen, sie verfügen über eine 80-bit FPU (1 Bit Normierung, 63 Bit Mantisse, 15 Bit Exponent) und sind damit selbst der DP-FPU moderner GPUs hinsichtlich der Genauigkeit überlegen.
Berechnungen, die eine höhere Genauigkeit als DP benötigen, müssen daher auch weiterhin durch die FPU eines x86-Prozessors berechnet werden.

Wer sich näher damit beschäftigen möchte, findet hier einen guten Einstieg.
[BREAK=GPGPU und Distributed Computing]

Das erste DC-Projekt, welches das Potential der GPU für sich zu nutzen wusste, war Folding@home der Universität in Stanford. Bereits kurz nachdem man dort im Oktober 2006 mit dem öffentlichen Beta-Test seines GPU-Clients begonnen hatte, war klar, dass GPGPU-Computing die Distributed Computing Welt verändern würde.

Der erste GPU-Client lief auf den ATI Karten der Radeon-X1000-Serie und ließ mit seiner Berechnungsgeschwindigkeit selbst schnelle CPUs alt aussehen. ATI selbst sprach von einer 30-fachen Beschleunigung. Es wurde aber auch schnell klar, dass die Programmierung alles andere als einfach ist.

Die ersten GPGPU-Anwendungen der Universität Stanford wurden in der Programmiersprachen-Erweiterung Brook geschrieben und dann mit dem eigens von der "Grafik-Gruppe" der Universität Stanford entwickelten BrookGPU Compiler umgesetzt.
Der auf diese Weise entstandene Programmcode lief nur auf der GPU der ATI Radeon-X1000-Serie.

Die Entwicklung der letzten Jahre

In den letzten Jahren ist einiges passiert. So gehört ATI seit 2006 zu AMD und in der Folgezeit erschienen ATI-Grafikkarten der 2000er, 3000er und 4000er Serien, und GPGPU Computing ist beim Distributed Computing nicht mehr auf Grafikkarten von ATI/AMD beschränkt.

<center><a href="http://www.planet3dnow.de/photoplog/index.php?n=8781"><img src="http://www.planet3dnow.de/photoplog/file.php?n=8781&w=l" border="1" alt="GPGPU Artikel"></a></center>

NVIDIA hat im Jahr 2007 zusammen mit den Grafikprozessoren der G92 Serie die CUDA Programmiersprache eingeführt, promoted und seit dem ständig weiterentwickelt. Auch die Vorgänger-Serie G80 ist CUDA-kompatibel, wenn auch mit Einschränkungen.

<center><a href="http://www.planet3dnow.de/photoplog/index.php?n=8782"><img src="http://www.planet3dnow.de/photoplog/file.php?n=8782&w=l" border="1" alt="GPGPU Artikel"></a></center>

Mit der aktuellen GPU Generation, in diesem Vergleich repräsentiert durch den immer noch aktuellen G200 Chip, wurde die Rechenleistung noch einmal deutlich erhöht.

Neben Folding@home gibt es noch eine Vielzahl anderer DC-Projekte, von denen viele als Grundlage die BOINC-Software der Universität Berkeley nutzen.

In Berkeley hatte man in die Software zunächst nur eine CUDA-Unterstützung für die Karten von NVIDIA implementiert, aber Dank unseres Teammitglieds "Gipsel" gibt es seit letztem Jahr zwei BOINC-Projekte (Milkyway, Collatz 3+1), bei denen man auch seine ATI/AMD Grafikkarte sinnvoll einsetzen kann.

Zwischenzeitlich wurde die Unterstützung für ATI/AMD Grafikkarten auch direkt in der BOINC-Software implementiert, weitere Projekte werden also sicher folgen.
[BREAK=GPU-Technik im Detail]

Die aktuellen Grafikkarten der 5000er-Serie auf Basis des RV870 Chip (Cypress) könnten neben einigen anderen Verbesserungen auch die GPGPU Leistung einen deutlichen Sprung nach vorn bringen.
Eine im Vergleich zur 4000er-Serie deutlich erhöhte Anzahl an Shadern, erhöhte Speicherbandbreite und zusätzliche Programmierbefehle die speziell auf GPGPU ausgerichtet sind lassen hoffen.

tab20100205.png

Tabelle 1: Gegenüberstellung der technischen Daten der GPUs. Die Notation bei der Anzahl der Ausführungseinheiten ist immer Kerne x Anzahl der Einheiten pro Kern x SIMD-Breite einer Einheit. Die Werte in Klammern hinter der Anzahl der Integermultiplier gibt die Bitbreite der Eingangswerte und des Ergebnisses an. Ein 32/64 Multiplier gibt das 64Bit breite Resultat der Multiplikation zweier 32Bit-Werte zurück. Bei einem 32/32 Multiplier sind dafür zwei Schritte nötig (entweder die unteren oder die oberen 32Bit werden zurückgegeben).

Ob diese Veränderungen im Detail auch zu einer Verbesserung bei der GPU Rechenleistung führen und in welchem Umfang gilt es nun zu klären.
[BREAK=Die Testplattform]

Der Versuchsaufbau erscheint auf den ersten Blick als nicht mehr ganz Stand der Technik aber da die Berechnungen hier hauptsächlich auf der GPU stattfinden und die CPU nur als Zulieferer agiert ist dies vernachlässigbar.

Basishardware:

Die verwendete Hardware auf einen Blick:

* Mainboard: ASUS M2N32-SLI Deluxe
* Prozessor: AMD Athlon X2 5600+
* Kühler: boxed Heatpipe
* Arbeitsspeicher: 2x1GB DDR2 800MHz (5-5-5-12) Speicher
* Netzteil: 860W PC&C Turbo-Cool Netzteil
* Festplatte / SSD: Super-Talent 32GB SSD

Betriebssystem:

Microsoft Windows XP prof. 32-Bit SP3

getestete Grafikhardware im Überblick:

MSI R5850 PM2D1G - ATI Radeon HD5850 (RV870) GPU, 1GB GDDR5

ATI/AMD Juniper - ATI Radeon HD5770 (RV740) GPU, 1GB GDDR5

Club3D HD 4890 - ATI Radeon HD4890 (RV790) GPU, 1GB GDDR5

EVGA GT220 - NVIDIA GT216 GPU, 512MB GDDR2

EVGA GTS250 - NVIDIA G92b GPU, 512MB GDDR3

EVGA GTX275 - NVIDIA GT200b GPU, 1GB GDDR3
[BREAK=Die Referenz - ATI Radeon HD4890]

Club3D HD 4890 - ATI Radeon HD4890 (RV790) GPU, 1GB GDDR5

Für den Test habe ich eine HD4890 von der Firma Club3D aus meinem Bestand verwendet, die Karte ist fabrikneu und in Originalzustand.

<center><a href="http://www.planet3dnow.de/photoplog/index.php?n=8768"><img src="http://www.planet3dnow.de/photoplog/file.php?n=8768&w=l" border="1" alt="Produktfoto - HD4890"></a></center>

Als Treiber kam bei dieser Karte der Catalyst 9.12 zum Einsatz.


Technische Daten:

Chiptakt: 850MHz, Speichertakt: 975MHz • Chip: RV790 • Speicherinterface: 256-bit • Stream-Prozessoren: 800 • Textureinheiten: 40 • Fertigung: 55nm • Maximaler Verbrauch: 190W • DirectX: 10.1 • Shader Modell: 4.1 • Bauweise: Dual-Slot • Besonderheiten: integrierter 7.1 HD Audiocontroller, HDMI mittels Adapter, unterstützt CrossFireX

<center><a href="http://www.planet3dnow.de/photoplog/index.php?n=8758"><img src="http://www.planet3dnow.de/photoplog/file.php?n=8758&w=l" border="1" alt="GPGPU Artikel"></a></center>

[BREAK=Der Herausforderer - ATI Radeon HD5850]

MSI R5850 PM2D1G - ATI Radeon HD5850 (RV870) GPU, 1GB GDDR5

Für den Test habe ich eine HD5850 von der Firma MSI aus meinem Bestand verwendet, die Karte ist fabrikneu und in Originalzustand.

<center><a href="http://www.planet3dnow.de/photoplog/index.php?n=8769"><img src="http://www.planet3dnow.de/photoplog/file.php?n=8769&w=l" border="1" alt="Produktfoto - HD5850"></a></center>

Auf den Karten der HD5850 Serie werden RV870 GPUs mit nur 1440 Stream-Prozessoren verbaut, eine HD5870 Karte mit der vollen Anzahl an Stream-Prozessoren (1600) ist also theoretisch noch einmal rund 11% schneller.

Als Treiber kam bei dieser Karte der Catalyst 9.12 zum Einsatz.

Technische Daten:

Chiptakt: 725MHz, Speichertakt: 1000MHz • Chip: Cypress LE (RV870) • Speicherinterface: 256-bit • Stream-Prozessoren: 1440 • Textureinheiten: 72 • Fertigung: 40nm • Maximaler Verbrauch: 170W (Load), 27W (Idle) • DirectX: 11 • Shader Modell: 5 • Bauweise: Dual-Slot • Besonderheiten: ATI Eyefinity, integrierter 7.1 HD Audiocontroller, unterstützt CrossFireX

<center><a href="http://www.planet3dnow.de/photoplog/index.php?n=8760"><img src="http://www.planet3dnow.de/photoplog/file.php?n=8760&w=l" border="1" alt="GPGPU Artikel"></a></center>
[BREAK=Preis-/Leistungs-Sieger? - ATI Radeon HD5770]

ATI/AMD Juniper - ATI Radeon HD5770 (RV740) GPU, 1GB GDDR5

Von AMD haben wir für diesen Test das Vorserienmodel einer Juniper Karte erhalten. Das auf der Karte vermerkte Produktionsdatum lautet 09.08.2009.

<center><a href="http://www.planet3dnow.de/photoplog/index.php?n=8770"><img src="http://www.planet3dnow.de/photoplog/file.php?n=8770&w=l" border="1" alt="Produktfoto - HD5770"></a></center>

Die Karte entspricht der HD5770, hat also 800 Shader mit einem Takt von 850MHz und 1GB GDDR5 Speicher mit 1200MHz Takt.

Als Treiber kam bei dieser Karte der Catalyst 9.12 zum Einsatz.

Technische Daten:

Chiptakt: 850MHz, Speichertakt: 1200MHz • Chip: Juniper XT • Speicherinterface: 128-bit • Stream-Prozessoren: 800 • Textureinheiten: 40 • Fertigung: 40nm • Maximaler Verbrauch: 108W (Load), 18W (Idle) • DirectX: 11 • Shader Modell: 5 • Bauweise: Dual-Slot • Besonderheiten: ATI Eyefinity, integrierter 7.1 HD Audiocontroller, unterstützt CrossFireX

<center><a href="http://www.planet3dnow.de/photoplog/index.php?n=8759"><img src="http://www.planet3dnow.de/photoplog/file.php?n=8759&w=l" border="1" alt="GPGPU Artikel"></a></center>
[BREAK=CUDA Low-Budget - NVIDIA GT220]

EVGA GT220 - NVIDIA GT216 GPU, 512MB GDDR2

Von NVIDIA Deutschland haben wir für diesen Vergleichstest drei Karten zur Verfügung gestellt bekommen.
Die kleinste und zugleich neueste Karte in diesem Trio ist eine EVGA GT220 Karte.

<center><a href="http://www.planet3dnow.de/photoplog/index.php?n=8767"><img src="http://www.planet3dnow.de/photoplog/file.php?n=8767&w=l" border="1" alt="Produktfoto - GT220"></a></center>

Ihr GT216 Chip ist mit 625MHz getaktet, die Shader laufen mit 1360MHz und das 512MB große GDDR2 RAM taktet mit 500MHz.

Als Treiber kam bei dieser Karte die Version 196.21 zum Einsatz.

Technische Daten:

Chiptakt: 625MHz, Speichertakt: 500MHz, Shadertakt: 1360MHz • Chip: GT216 • Speicherinterface: 128-bit • Stream-Prozessoren: 48 • Textureinheiten: 16 • Fertigung: 40nm • Maximaler Verbrauch: 58W • DirectX: 10.1 • Shader Modell: 4.1 • Bauweise: Single-Slot • Besonderheiten: unterstützt HDCP

<center><a href="http://www.planet3dnow.de/photoplog/index.php?n=8761"><img src="http://www.planet3dnow.de/photoplog/file.php?n=8761&w=l" border="1" alt="GPGPU Artikel"></a></center>
[BREAK=CUDA Veteran - NVIDIA GTS250]

EVGA GTS250 - NVIDIA G92b GPU, 512MB GDDR3

Die zweite Karte aus dem NVIDIA-Trio ist eine EVGA GTS250 mit 512MB GDDR3 Speicher.

<center><a href="http://www.planet3dnow.de/photoplog/index.php?n=8766"><img src="http://www.planet3dnow.de/photoplog/file.php?n=8766&w=l" border="1" alt="Produktfoto - GTS250"></a></center>

Hinter dem modernen Namen verbirgt sich ein alter Bekannter, die Karte läuft mit einem G92b Chip. Seit 2007 ist der G92(b) Chip weitgehend unverändert auf NVIDIA Karten verbaut worden und mit den unterschiedlichsten Namen versehen worden.

Auf dieser Karte ist der G92b mit 756MHz getaktet, die Shader laufen mit 1836MHz und das 512MB große GDDR3 RAM taktet mit 1100MHz.

Als Treiber kam bei dieser Karte die Version 196.21 zum Einsatz.

Technische Daten:

Chiptakt: 756MHz, Speichertakt: 1100MHz, Shadertakt: 1836MHz • Chip: G92b (D9E) • Speicherinterface: 256-bit • Stream-Prozessoren: 128 • Textureinheiten: 64 • Fertigung: 55nm • Maximaler Verbrauch: 141W • DirectX: 10.0 • Shader Modell: 4.0 • Bauweise: Dual-Slot • Besonderheiten: unterstützt HDCP, 3-Way-SLI, werkseitig übertaktet

<center><a href="http://www.planet3dnow.de/photoplog/index.php?n=8762"><img src="http://www.planet3dnow.de/photoplog/file.php?n=8762&w=l" border="1" alt="GPGPU Artikel"></a></center>
[BREAK=CUDA Referenz - NVIDIA GTX275]

EVGA GTX275 - NVIDIA GT200b GPU, 1GB GDDR3

Die dritte Karte aus dem NVIDIA-Trio ist eine EVGA GTX275 mit 896MB GDDR3 Speicher.

<center><a href="http://www.planet3dnow.de/photoplog/index.php?n=8765"><img src="http://www.planet3dnow.de/photoplog/file.php?n=8765&w=l" border="1" alt="Produktfoto - GTX275"></a></center>

Der auf dieser Karte verwandte GT200b Chip ist die derzeit leistungsfähigste GPU die NVIDIA im Programm hat. Dieser Chip wird auch auf den, für den professionellen Bereich gedachten, Tesla Karten von NVIDIA eingesetzt. Tesla Karten finden ihren Einsatz in Supercomputern und Großrechnern.

Als Treiber kam bei dieser Karte die Version 196.21 zum Einsatz.

Technische Daten:

Chiptakt: 648MHz, Speichertakt: 1188MHz, Shadertakt: 1458MHz • Chip: GT206 (GT200b) • Speicherinterface: 448-bit • Stream-Prozessoren: 240 • Textureinheiten: 80 • Fertigung: 55nm • Maximaler Verbrauch: 216W • DirectX: 10.0 • Shader Modell: 4.0 • Bauweise: Dual-Slot • Besonderheiten: unterstützt HDCP, 3-Way-SLI, werkseitig übertaktet

<center><a href="http://www.planet3dnow.de/photoplog/index.php?n=8763"><img src="http://www.planet3dnow.de/photoplog/file.php?n=8763&w=l" border="1" alt="GPGPU Artikel"></a></center>
[BREAK=Übersicht über die Peak-Leistung der GPUs]

Single-Precision Peak Leistung (GFlops)

tab20100205_2.png

Double-Precision Peak Leistung (GFlops)

tab20100205_3.png

Quelle: NVIDIA-Geforce-200-Serie, ATI-Radeon-HD-4000-Serie, ATI-Radeon-HD-5000-Serie

[BREAK=Milkyway@home - Die Ergebnisse]

Projektbeschreibung: Milkyway@home [Quelle: P3D-DC-Wiki]

Galaxien unterliegen einem ständigen Wandel und verschmelzen häufig in einander zu größeren Galaxien. Eine Galaxie ist ein sehr großes Sternsystem, das vor nämlich aus einer Ansammlung von Materie wie Sternen und Planetensystemen, Gasnebeln, Staubwolken und sonstigen Objekten besteht. Die Milchstraße ist als Forschungsobjekt deshalb so interessant, da es die einzige Galaxie ist, bei der die Wissenschaft drei Dimensionen studieren kann. Insgesamt besteht die Milchstraße aus 300 Milliarden Sterne und besitzt einen Durchmesser von ca. 100.000 Lichtjahren.

1994 entdeckte Rodrigo Ibata, dass die Milchstraße mit der Sagittarius Zwerg Ellipsoiden Galaxie verschmelzen wird. Aufgrund der kleinen Größe der Sagittarius Galaxie im Vergleich zur Milchstraße, wird der Sagittarius-Zwerg von den Gezeitenkräften regelrecht zerrissen. Durch die stärkeren Gravitationskräfte der Milchstraße, werden beim auseinander reißen des Sagittarius-Zwerg lange Gezeitenströme erzeugt, die dem Kern des Sagittarius-Zwergs folgen werden.

Durch die Gezeitenströme erhält die Wissenschaft Einblicke in die Bewegungen der Sterne, da durch die Ströme erkennbar wird, wo ein Stern ist und wohin er geht. Auf diese Weise hinterlassen Ströme eine Karte, die es erlaubt, das Gravitationspotential der Milchstraße zu studieren. Da 90% des Potentials der Dunklen Materie zugeschrieben werden kann, kann die Verteilung der Dunklen Materie in der Milchstraße gut berücksichtigt werden. Das Forschungsteam von MilkyWay@home hat eine Methode entwickelt, welche die Eigenschaften der Gezeitentrümmer bei der Galaxienkollision isoliert und festlegt.

Dank des Einsatzes einiger Anwender, allen voran unser Teammitglied Gipsel, gibt es seit letztem Jahr eine ATI Version der Milkyway@home Applikation.
Auch bei der Entwicklung und Optimierung der CUDA Applikation war er maßgeblich beteiligt.


Messergebnisse: Milkyway@home

tab20100205_milky.png

Milkyway@home ist das einzige Projekt in diesem Vergleich, welches von den DP-Fähigkeiten der GPUs Gebrauch macht. Die Berechnung mit doppelter Genauigkeit wird von den beiden kleineren Nividia Karten sowie von der HD5770 nicht unterstützt.

Die theoretische Maximal (Peak) Leistung der beiden ATI/AMD GPUs ist bei DP-Berechnungen deutlich höher als die der NVIDIA GPU und auch die Messergebnisse sprechen hier eine deutliche Sprache. Bereits die ältere HD4890 ist um den Faktor 4 schneller als die GTX275 und die HD5850 legt noch einmal 33% drauf.
[BREAK=Collatz@home - Die Ergebnisse]

Projektbeschreibung: Collatz@home [Quelle: Collatz-Problem-Wiki]

Das Collatz-Problem, auch als (3n + 1)-Vermutung bezeichnet, ist ein ungelöstes mathematisches Problem, das 1937 von Lothar Collatz entdeckt wurde.

Bei dem Problem geht es um Zahlenfolgen, die nach einem einfachen Bildungsgesetz konstruiert werden:

* Beginne mit irgendeiner natürlichen Zahl n.
* Ist n gerade, so nimm als nächstes n / 2,
* ist n ungerade, so nimm als nächstes 3n + 1.

So erhält man z. B. für die Startzahl n = 19 die Folge

19, 58, 29, 88, 44, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1

Erstaunlicherweise endete die Folge bisher immer mit …, 4, 2, 1 – egal welche Startzahl man probiert hat. Die Collatz-Vermutung lautet:

Jede so konstruierte Zahlenfolge endet im Zykel 4,2,1 egal, mit welcher natürlichen Zahl man beginnt.
Trotz zahlreicher Anstrengungen gehört diese Vermutung noch immer zu den ungelösten Problemen der Mathematik.

Das Projekt Collatz@home beschäftigt sich mit der Lösung dieses Problemes.


Messergebnisse Collatz@home:

tab20100205_collatz.png

Bei Collatz@home werden Berechnungen mit einfacher Genauigkeit (single-precision) durchgeführt. Bei diesem Test konnten daher alle sechs Karten teilnehmen.

Die schnellste NVIDIA Karte (GTX275) erreicht 49% der Leistung, der langsamsten ATI/AMD Karte (HD4890) im Test und bleibt damit rund 25% hinter ihrer eigenen theoretischen Peak-Leistung zurück.

Beim Blick auf die Ergebnisse der ATI/AMD GPUs fallen zwei Dinge auf.

* Die HD5770 gewinnt 5% auf die HD4890, obwohl sie über die gleiche theoretische Peak-Leistung verfügt.
* Die HD5850 ist im Vergleich schneller als es ihre theoretische Peak-Leistung vermuten ließ, ein plus von zusätzlich 20% sind ein deutlicher Gewinn.

[BREAK=distributed.net - Die Ergebnisse]

Projektbeschreibung: distributed.net [Quelle: distributed.net-Wiki]

Zur Zeit führt distributed.net zwei Rechenprojekte durch. Zum einen das RC5-72 Projekt, dessen Ziel die Entschlüsselung einer Nachricht ist, die mit einem 72 Bit Schlüssel nach dem RC5 Verfahren verschlüsselt wurde. Diese Entschlüsselung dieser Nachricht ist Teil des "Secret-Key Challenge" der RSA Laboratories. Um die Nachricht zu entschlüsseln wird die Brute-Force-Methode angewendet, also alle möglichen Schlüssel durchprobiert bis der passende gefunden wird. Im Mai 2007 gaben die RSA Labs bekannt, den Wettbewerb nicht weiter fortzuführen. Das Projekt von distributed.net wird aber bis auf weiteres fortgeführt. Bei der derzeitigen Rechengeschwindigkeit würde das Projekt jedoch erst in über 900 Jahren den gesamten Schlüsselraum durchsucht haben.

Zum anderen gibt es das OGR-27 Projekt, bei dem nach einem optimalen Golomb-Lineal der Länge 27 gesucht wird. OGR-Projekte sind Teil einer potentiell unendlichen Serie, da optimale Golomb-Lineale beliebig lang sein können.

Für diesen Test habe ich Berechnungen für das RC5-72 Projekt durchgeführt.


Messergebnisse: distributed net


tab20100205_dist.png

Auch bei distributed.net werden Berechnungen mit einfacher Genauigkeit (single-precision) durchgeführt. Bei diesem Test konnten daher ebenfalls alle sechs Karten teilnehmen.

Betrachtet man die Messergebnisse glaubt man an ein Déjà-vu. Wieder liegt die schnellste NVIDIA GPU (GTX275) rund 50% hinter der langsamsten ATI/AMD GPU (HD4890) und erneut ist die HD5850 deutlich in Führung gegangen (+43%).

Die dritte ATI/AMD Karte im Bund (HD5770) sorgt diesmal allerdings für eine Überraschung. Sie bleibt deutlich zurück und erreicht nur 62% der HD4890.
Einzig mögliche Erklärung: Das deutlich langsamere Speicherinterface ist der Flaschenhals.

[BREAK=folding@home - Die Ergebnisse]

Projektbeschreibung: folding@home [Quelle: P3D-DC-Wiki]

Fehler in der Proteinstruktur stören die Funktion eines Proteins und sind Ursache verschiedener Krankheiten wie Alzheimer, Parkinson, Huntington, Osteoporose, BSE und einige Formen von Krebs. Folding@Home untersucht diese Fehlfaltungen und ihren Zusammenhang mit den genannten Krankheiten. Ebenso werden mögliche Therapieansätze erforscht, bspw. auf der Basis synthetisierter Proteine.

Das Projekt wurde im Oktober 2000 gegründet und ist inzwischen gemessen an der Rechenkapazität mit ca. 5 PFLOPS das größte aller Distributed-Computing-Projekte. Anders als die meisten Projekte, nutzt es jedoch nicht die BOINC-Plattform, sondern einen eigenen Client.

In diesem Test nimmt folding@home in zweierlei Hinsicht eine Sonderstellung ein.
Zum ersten ist es das "älteste" GPGPU Projekt im distributed computing Bereich und zweitens sind die Messergebnisse nicht direkt vergleichbar da es für die beiden GPU Hersteller jeweils eigene Clients und Arbeitseinheiten gibt.

Von den ATI/AMD Karten wurde mit dem GPUv2 Gromacs Client eine P5471 Arbeitseinheit berechnet.

Von den NVIDIA Karten wurde mit dem GPU 2 NV MT Client eine P5915 Arbeitseinheit berechnet.

Für den Vergleich der Karten habe ich den vom Projekt errechneten PPD Wert (Points-Per-Day) herangezogen.


Messergebnisse: folding@home

tab20100205_folding.png

Bereits die kleinste NVIDIA Karte (GT220) erreicht über 50% der Leistung einer HD4890, die GTS250 überflügelt die HD5850 und die GTX275 ist mehr als doppelt so schnell wie eine HD4890 (+143%).

Wie passt aber nun dieses Ergebnis zu den drei vorangegangenen Tests?

Der folding@home Client GPU2 stammt aus dem April 2008, mit diesem "neuen" Client wurde die ATI/AMD Version auf CAL umgestellt. Ziel dieser Vorgehensweise war es, eine von der Hardware unabhängigere Version zu schaffen und dies ist auch teilweise gelungen.
Teilweise deshalb, weil der Client ohne einen Trick nicht zu einer Zusammenarbeit mit den aktuellen GPUs zu bewegen ist, da er sie nicht als GPU erkennt.

Der im Juni 2008 vorgestellte, CUDA basierende NVIDIA Client benötigt solche Tricks nicht, er skaliert sogar sehr gut mit der Leistung der aktuellen NVIDIA GPUs. Der Geschwindigkeitsvorteil der GTX275 vor der GTS250 ist sogar etwas größer, als die Differenz zwischen den beiden Peak-Werten vermuten ließ. Unter dem Strich fährt man mit den aktuellen Applikationen unter Folding@home mit einer NVIDIA-Karte deutlich besser.
[BREAK=Zusammenfassung der Ergebnisse]
file.php

GPGPU-Anwendungen, die für Endkunden Relevanz haben, sind nach wie vor praktisch nicht vorhanden; abgesehen von ein paar Beta Video-Encoder Tools, über die ernsthafte Video-Freaks im aktuellen Stadium nur schmunzeln können. Die Ausnahme bilden derzeit die Hand voll Distributed-Computing Anwendungen, mit denen selbst Endkunden die Rechenleistung für das unterstützte Projekt massiv steigern können. Daher war der heutige Vergleich in Ermangelung relevanter Software weniger ein GPGPU-Vergleich im Allgemeinen, als vielmehr ein Distributed Computing Vergleich für GPU-Anwendungen im Speziellen. Aus diesem Grund sind die Erkenntnisse natürlich nur auf diesen Bereich anwendbar.

Hardware:

Die aktuellen GPUs von ATI/AMD bieten eine GPGPU-Rechenleistung die derzeit konkurrenzlos ist. Dies gilt bei Berechnungen mit einfacher und im besonderen bei Berechnungen mit doppelter Genauigkeit.

Die im Test mit angetretenen NVIDIA-Karten mussten sich bei drei von vier Tests deutlich geschlagen geben. Fairerweise muss man aber sagen das der GT200b Chip auf der GTX275 nicht mehr der jüngste ist und die Veröffentlichung des Nachfolgers (GF100 - Fermi) kurz bevor steht. Der NVIDIA GF100 wird einige Neuerungen aufweisen die genau in Richtung GPGPU-Rechenleistung zielen.

Wir warten gespannt auf Fermi und werden den Artikel ergänzen, sobald wir entsprechende Berechnungen auf einer GF100 durchführen können.

Software:

In einem Test aber haben die NVIDIA Karten punkten können und damit gezeigt worin aktuell die größte Schwierigkeit beim GPGPU-Computing besteht, in der Programmierung.

Bei guter Programmierung der Anwendung kommen alle Karten bei einfacheren Berechnungen nah an ihr theoretisches Maximum, bei schlechter Programmierung bleiben sie davon weit entfernt.

Mit CUDA hat NVIDIA bereits vor geraumer Zeit eine Programmierschnittstelle geschaffen, die es Entwicklern erlaubt mit relativ einfachen Mitteln GPGPU-Programmierung zu bewerkstelligen. Das war das große Plus der NVIDIA-Karten in den letzten 2 Jahren. Mit der Einführung von OpenCL als gemeinsamer Nenner sollte sich dieser Vorteil in den kommenden Monaten und Jahren egalisieren.

Mein Dank gilt der AMD Deutschland GmbH für die Teststellung einer HD5770, der NVIDIA Deutschland GmbH für die Teststellung der GT220, GTS250 und GTX275, dem P3D-Team für die Unterstützung bei meinem ersten Artikel und sysfried für seine redaktionelle Hilfe.

<a href="http://www.planet3dnow.de/vbulletin/showthread.php?t=375719">-> Kommentare</a>
 
Zurück
Oben Unten