Tesla

  • CUDA UND GPU COMPUTING
  • GRAFIKPROZESSOR-ANWENDUNGEN
  • GRAFIKPROZESSOREN FÜR SERVER UND WORKSTATIONS
Was ist GPU Computing?
Divider

Grafikprozessor-beschleunigte Berechnungen
revolutionieren High Performance Computing (HPC)

Grafikprozessor-beschleunigte Berechnungen eröffnen neue Möglichkeiten im HPC-Sektor (High Performance Computing). Mittlerweile ist weithin anerkannt, dass Grafikprozessor-basierte Systeme maximale Leistung und Energieeffizienz für HPC-Anwendungen liefern. Die jüngste Ankündigung der Supercomputer „Summit“ und „Sierra“ des US-Energieministeriums belegen die Bedeutung von Grafikprozessoren für die Realisierung von Exascale-Berechnungen.

Hier sollen nur die Tatsachen über GPU Computing zusammen gefasst werden, ganz ohne aufbauschende Versprechungen, um Sie bei der Entscheidungsfindung für Ihre HPC-Projekte zu unterstützen. Insbesondere sollen durch Fakten die derzeit kursierenden Behauptungen widerlegt werden, dass der Intel Xeon Phi Beschleuniger eine mit dem Grafikprozessor vergleichbare Anwendungsleistung liefern kann, einfach indem Code neu kompiliert wird und nativ auf dem Phi läuft, oder dass die Leistungsoptimierung auf dem Phi einfacher ist als auf einem Grafikprozessor.

 
 
FAKT: Bei realen HPC-Anwendungen sind Grafikprozessoren wesentlich
          schneller als Intel Xeon Phi.
Führende wissenschaftliche Anwendungen laufen auf dem Grafikprozessor bis zu 2x schneller als auf Xeon Phi.
NVIDIA Grafikprozessoren sind bis zu 4x schneller als der Xeon Phi

Die Zielsetzung von HPC-Systemen ist die Steigerung der Anwendungsleistung, und Grafikprozessoren liefern nachgewiesenermaßen höhere Leistung als CPUs. Bei Anwendungen aus unterschiedlichen Wissenschaftsbereichen in obiger Grafik ermöglichen Grafikprozessoren eine Beschleunigung um das 2,5- bis 7-fache im Vergleich zur CPU. Der Intel Xeon Phi Prozessor kann so optimiert werden, dass er mehr Leistung als eine CPU liefert, aber die Leistung des Grafikprozessors liegt dennoch im Schnitt 2- bis 5-mal über derjenigen des schnellsten Knights Corner Prozessors.

Organisation Anwendung Grafikprozessor-Beschleunigung
im Vergleich zu Xeon Phi
Tokyo Institute of Technology CFD Diffusion 2,6x
Xcelerit Monte-Carlo LIBOR Swap-Preisberechnung 2,2x - 4x
Georgia Tech Radar mit synthetischer Apertur (SAR) 2,1x
CGGVeritas Reverse Time Migration (RTM) 2x
Paralution BLAS & SpMV 2.0x
Univ. of Wisconsin-Madison WRF (Wettervorhersage) 1.8x
Universität Erlangen-Nürnberg Medizinische Bildgebung - Beschleunigung der 3D-Bildrekonstruktion 7x
Universität Delft Medikamentenentwicklung 3x
Unabhängige Ergebnisse belegen, dass Grafikprozessoren mehr als 2x mehr Leistung als Xeon Phi liefern.(Aktualisiert im Januar 2014)
Heute unterstützen bereits fast 200 Computing-Anwendungen in diversen Fachgebieten die Beschleunigung auf Grafikprozessoren.
FAKT: Das „Recompile & Run“-Verfahren auf Xeon Phi verlangsamt Anwendungen.
Die Behauptung, dass Entwickler ihre Anwendungen auf Intel Xeon Phi einfach neu kompilieren und betreiben können („Recompile and run“), ohne den CPU-Code zu überarbeiten, ist verführerisch, aber irreführend. Die Leistung liegt im Ergebnis meist deutlich unter derjenigen der CPU – das Resultat ist also das Gegenteil einer Beschleunigung.

„Recompile and run“ auf Xeon Phi drückt die Anwendungsleistung
Einfaches neu kompilieren und Betreiben auf Phi funktioniert (manchmal), aber der Code läuft wesentlich langsamer als auf der CPU. System und Konfiguration2

 
Die einfache Neukompilierung für den nativen Betrieb auf Phi funktioniert zwar bei vielen Codes, führt aber zu deutlichen Leistungseinbußen im Vergleich zur CPU – wie oben dargestellt bis zu 5x langsamer.

Das „Recompile and run“-Verfahren ist mit zahlreichen technischen Schwierigkeiten verbunden, wie im Blog „No Free Lunch“ beschrieben ist, darunter das Amdahlsche Gesetz bezüglich der seriellen Codeabschnitte. Aufgrund der geringen seriellen Leistung der Xeon Phi-Recheneinheiten (die auf einem älteren Pentium-Design basieren) im Vergleich zu modernen CPU-Recheneinheiten laufen serielle Codeabschnitte bei nativem Betrieb auf Xeon Phi eventuell um ein Vielfaches langsamer.

In der Praxis muss der Entwickler den Code zunächst für Xeon Phi neu kompilieren und ihn anschließend für mehr Leistung refaktorieren und optimieren – sehr viel Aufwand, nur um im Endeffekt dieselbe Leistung wie auf der CPU zu erzielen.

Letztendlich erfordert die Parallelisierung natürlich immer einen gewissen Aufwand, gleichgültig, ob die Beschleunigung auf Xeon Phi oder auf Grafikprozessoren erfolgen soll. Im besten Fall ist „Recompile and run“ ein einigermaßen praktischer erster Schritt für Entwickler; im schlimmsten Fall jedoch ein Versprechen, dass mit Sicherheit zu Enttäuschungen führt.
FAKT: Programmierung von Grafikprozessoren und Xeon Phi erfordert etwa denselben
          Aufwand – aber der Grafikprozessor liefert deutlich bessere Ergebnisse.
Dieselben Optimierungsverfahren. Derselbe Aufwand für Entwickler. 2x mehr Beschleunigung auf dem Grafikprozessor.
Method GPU Phi
Libraries CUDA Libraries + others Intel MKL + others
Directives OpenACC OpenMP + Phi Directives
Native Programming Models CUDA Vector Intrinsics
Entwickler verwenden Bibliotheken, Direktiven oder Spracherweiterungen für die Programmierung von Beschleunigern und die Leistungsoptimierung.

Grafikprozessoren und Intel Xeon Phi unterscheiden sich zwar in mancherlei Hinsicht, sind aber beide Parallelprozessoren. Um Parallelität in großem Umfang zu nutzen, müssen Entwickler bei Grafikprozessoren und bei Xeon Phi ähnlichen Aufwand und ähnliche Optimierungsverfahren einsetzen.

Wie die Tabelle oben zeigt, verwenden Entwickler in beiden Fällen dieselben drei Verfahren zur Beschleunigung von Code: Bibliotheken, Direktiven oder Spracherweiterungen wie CUDA C auf Grafikprozessoren oder Vektor-Intrinsics auf Xeon Phi.

Der Aufwand für die Programmierung von Grafikprozessoren und Xeon Phi unterscheidet sich weniger, als häufig angenommen wird.

In der folgenden Darstellung wird anhand eines N-Körper Kernel-Codes gezeigt, dass beide Beschleuniger vergleichbare Optimierungsverfahren und ähnlichen Aufwand erfordern. Die Änderungen am Code sind im Prinzip dieselben, aber die Leistung auf dem Grafikprozessor ist wesentlich höher als auf Xeon Phi. Optimierungsbeispiel herunterladen.
 
Tesla K20 Grafikprozessor ist 11x schneller als Xeon Phi
Ein einfacher Vergleich eines N-Körper-Codes zeigt, dass dieselben Optimierungsverfahren verwendet werden müssen, aber der Grafikprozessor wesentlich schneller ist. System und Konfiguration3
 
 
 

Die Portierung ist einfach, aber die Vektorisierung des Codes in CUDA muss in Phi auch getan werden.

Dr. Karl Schultz
Director of Scientific Applications am Texas Advanced Computing Center (TACC)
Quelle: HPCWire, 17. Mai 2013

Unsere Grafikprozessor-Codes ähneln den Xeon Phi Codes, außer dass SIMD-Operationen durch SIMT-Operationen ersetzt werden.

 

Die Ergebnisse mit dem Intel Xeon Phi waren überraschend enttäuschend... Aufgrund der notwendigen Optimierung der Vektorisierung erforderte es einigen Aufwand, Lösungen mit akzeptabler Leistung zu entwickeln, obwohl der Xeon Phi so leicht programmierbar sein soll.

"Es ist nicht weiter schwierig, ein Programm auf Xeon Phi zum Laufen zu bekommen, aber mit CUDA und NVIDIA Grafikprozessoren lässt sich meiner Erfahrung nach leichter eine zuverlässig hohe Leistung für Lattice-Boltzmann-Anwendungen erzielen."

Dr. Sebastiano Fabio Schifano, Fakultät für Mathematik und Informatik - Universität von Ferrara

Nur wer die Fakten kennt, kann ein fundiertes Wissen über beschleunigte Berechnungen entwickeln. Beim heutigen Stand liefert ein Grafikprozessor im Prinzip die doppelte Leistung bei demselben Entwickleraufwand. Grafikprozessoren sind die logische Wahl für die Beschleunigung paralleler Codes. Dies dürfte einer der Gründe sein, weshalb Wissenschaftler in diesem Jahr mehr als 10x so oft auf Grafikprozessoren als auf Intel Xeon Phi veröffentlicht haben.4 Und weshalb für HPC-Systeme die Wahl mehr als 20x häufiger auf NVIDIA Grafikprozessoren fällt als auf Xeon Phi.5

 

Fußnoten zu Benchmarktest-Konfigurationen:
AMBER: SPFP-Cellulose_production_NPT, 1x E5-2697v2 + Xeon Phi 7120P, 1x E5-2697v2 @ 2,70 GHz + Tesla K40.
MiniMD: Kokkos Array- LJ-Kraft, 864.000 Atome, doppelte Präzision, 2x Xeon E5-2667 + Xeon Phi 7120, 2x Xeon E5-2667 + Tesla K40.
Monte Carlo RNG DP: Preisbestimmung europäischer Optionen, 2x Intel® Xeon® Prozessor E5-2697 v3 + Tesla K40 Grafikprozessor, Intel stellt Leistungswerte des Xeon Phi Prozessors auf dieser Webseite bereit.
tHogbomClean: 2x Xeon E5-2697 v2 + Xeon Phi 7120, 2x Xeon E5-2697 v2 + Tesla K40c.
Binomial Options SP: 2x Xeon Prozessor E5-2697 v3 + Tesla K40 Grafikprozessor, Intel stellt Leistungswerte des Xeon Phi Prozessors auf dieser Webseite bereit.
NAMD: APOA1, 2x Xeon E5-2697v2 + Xeon Phi 7120, 2x Xeon E5-2697v2 +Tesla K40.
STAC-A2: Greeks warm, 2x E5-2699v3 CPUs + Xeon Phi 7120A, 2x Intel Xeon E5-2690v2 + Tesla K80.

 
 
CUDA und GPU Computing

Was ist GPU Computing?
Wissenswertes über
GPU Computing

Grafikprozessor-Programmierung
Kepler Grafikprozessor-
Architektur

GPU-Cloud-Computing
Kontaktieren Sie Uns

Was ist CUDA?
CUDA Showcase
Was ist CUDA?
CUDA Centers of Excellence
CUDA-Kurskalender
CUDA Forschungszentren
CUDA Ausbildungszentren

Grafikprozessor-Anwendungen

Tesla Grafikprozessor-Anwendungen
Tesla Fallstudien
Tesla Grafikprozessor-Test
OpenACC-Direktiven
GeoInt Accelerator

Tesla Grafikprozessoren
für Server und Workstations

Warum Tesla
Tesla Server-Lösungen
Tesla Workstation-Lösungen
Embedded Entwicklungsplattform
Tesla Grafikprozessoren kaufen

Tesla News
und Informationen

Tesla Produktdokumentation
Tesla Softwaremerkmale
Tesla Software-
Entwicklungstools

NVIDIA Forschung
Tesla Mitteilungen

Aktuelle News Online

NVIDIA Blog NVIDIA Blog

Facebook Facebook

Twitter Twitter

Twitch Twitch

YouTube YouTube