Physikalische Berechnungen mit General Purpose Graphics Processing Units (GPGPUs) im Rahmen des Proseminars „Technische Informatik“ Juni 2010 von Hartmut Schweizer Dresden, den 02.06.2010 Fakultätsname XYZ Fachrichtung XYZ Institutsname XYZ, Professur XYZ
30
Embed
Physikalische Berechnungen mit General Purpose Graphics … · Physikalische Berechnungen mit General Purpose Graphics Processing Units (GPGPUs) im Rahmen des Proseminars „Technische
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Physikalische Berechnungen mitGeneral Purpose Graphics Processing Units
TU Dresden, 02.06.2010 Proseminar "Technische Informatik" Folie 2 von 29
02 Einleitung
• Entwicklung im Bereich der Grafik-Hardware
• Ausführung von Algorithmen für gewöhnliche (nicht das Rendering betreffende) Probleme auf Grund der höheren Geschwindigkeit auf der GPU anstatt auf der CPU
• Beschränkung der GPU auf spezielle Probleme ohne großen Verwaltungsaufwand -> Großteil der Transistoren für Rechenoperationen verwenden (Keine Steuerungsaufgaben und Caching)
-> optimale Leistung bei GPGPU-Anwendungen, die hohe arithmetische Dichte aufweisen (Algorithmen mit verhältnismäßig vielen Rechenoperationen und wenigen Lese-/Schreiboperationen) [1]
Was versteht man unter einer GPGPU
TU Dresden, 02.06.2010 Proseminar "Technische Informatik" Folie 3 von 29
03 Motivation
• Wachsende Ansprüche an herkömmliche PCs im Bereich von Anwendungen mit hoher Datenparallelität und Streamcomputing wie z. B.
• Physikalische Simulationen
• Physikeffekte in Computerspielen
• Kryptographie
• Video-Encodierung
• Ausweitung der Nutzung von Grafikkarten als vorhandene, kostengünstige Ressource über bisherige Aufgaben hinaus
TU Dresden, 02.06.2010 Proseminar "Technische Informatik" Folie 4 von 29
04 Entwicklung
• Ageia Technologies, Inc.
• US-amerikanisches Startup-Unternehmen
• 2002 gegründet
• spezieller Prozessor (Physikbeschleuniger/Physics Processing Unit (PPU)
• zugehörige Schnittstelle (Physik-Engine) PhysX API (vormals NovodeX)
• 2008 von Nvidia übernommen
-> Integration der PhysX-Engine in hauseigenes CUDA-System
• damit Nutzung von PhysX auch von der (Nvidia-)Grafikkarte möglich (wenn CUDA-unterstützt)
PhysX[2]
TU Dresden, 02.06.2010 Proseminar "Technische Informatik" Folie 5 von 29
04 Entwicklung
• Erweiterung des klassischen Ablaufs des Grafik-Renderings
• Alternative zur Abfolge von Transformation der Objekt-3D-Koordinaten in Bildschirmkoordinaten/ Beleuchtungsberechnung/ Rasterisation/Texturierungmittels fester, in Hardware gegossener Routinen
-> für jeden Vertex (Eckpunkt eines Dreiecks) und Pixel Ausführung von definierten kleinen Programmen
-> diese übernehmen Aufgabe und erzeugen aufwändige Effekte (Vertex-bzw. Pixelshader oder einfach Shader)
TU Dresden, 02.06.2010 Proseminar "Technische Informatik" Folie 6 von 29
[3]
05 HardwareVereinfachter Aufbau einer aktuellen GPU
SIMD (Single Instruction,
Multiple Data)
TU Dresden, 02.06.2010 Proseminar "Technische Informatik" Folie 7 von 29
05 HardwareVergleich CPU/GPU (1)
TU Dresden, 02.06.2010 Proseminar "Technische Informatik" Folie 8 von 29
05 HardwareVergleich CPU/GPU (2)
Rechenleistung Speicherbus-Datenrate
ATI RV770 1200 GFlops n/a
NVIDIA GeForceGT200
1063 GFlops 25,3 Gbyte/s
NVIDIA GeForce6800
60 GFlops 18 GByte/s
Intel Core 2 QuadQ6600
21,4 GFlops n/a
Intel Pentium 4mit SSE3, 3,6 GHz
14,4 GFlops 5 GByte/s
TU Dresden, 02.06.2010 Proseminar "Technische Informatik" Folie 9 von 29
06 ProgrammierungProgrammiersprachen/-Konzepte
• Hardwareabhängig
• AMD Stream Computing
• CUDA (Nvidia)
• Hardwareunabhängig
• DirectX Compute Shader (DirectX 11 Microsoft)
• OpenCL (Khronos Group)
TU Dresden, 02.06.2010 Proseminar "Technische Informatik" Folie 10 von 29
06 ProgrammierungAMD Stream Computing
• aktuelle Version: 2.1
• unterstützte Betriebssysteme:
• Windows XP SP3(32-bit) SP2(64-bit)
• Windows Vista SP2 (32-bit/64-bit)
• Windows 7 (32-bit/64-bit)
• openSUSE™ 11.2 (32-bit/64-bit)
• Ubuntu® 9.10 (32-bit/64-bit)
• Red Hat® Enterprise Linux® 5.4 (32-bit/64-bit)
• benötigt:
• ATI Grafikkarte
• ATI RadeonHD 4350 oder höher (Mobility 4300)
• ATI FirePro V3750 oder höher (Mobility M5800)
• ATI FireStream (Konkurrenzprodukt zu nVideaTeslar)
• aktueller Grafikkartentreiber
• Compiler (MSVS 2008 /GCC 4.3/ICC 11x)
TU Dresden, 02.06.2010 Proseminar "Technische Informatik" Folie 11 von 29
[4] A. R. Brodtkorb, T. R. Hagen, K.-A. Lie and J. R. Natvig: “Simulation and Visualization of the Saint-Venant System using GPUs”. In review, February 2010,