GPU-Berechnung mit CUDA bzw. Stream unter Erklärung der Shader-Architekturen
Fakultät Informatik, Institut für Technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur
Dresden, 02.06.2006
Überlick
01 GPU-Computing
Anwendungsgebiete
02 Architekturen
Unified Shader Architektur Nvidia CUDA
Nvidia Fermi ATI Stream
TU Dresden, 15.06.2010 General-purpose computation on GPU Folie 2 von 20
TU Dresden, 15.06.2010 General-purpose computation on GPU Folie 3 von 20
01 GPU-Computing
General-purpose computation on GPU (GPGPU)
gemeinsame Verwendung von CPU und Grafikprozessor für heterogene Berechnungen
sequenzieller Teil der Anwendung läuft auf der CPU
rechenintensiver Teil läuft auf dem Grafikprozessor
TU Dresden, 15.06.2010 General-purpose computation on GPU Folie 4 von 20
01 GPU-Computing
Strömungssimulation
Bioinformatik
Data-Mining, Analysen und Datenbanken
Wetter-, Atmosphären- und Ozeanmodelle und Weltraumwissenschaften
Bild-/Videorendering
Anwendungsgebiete
TU Dresden, 15.06.2010 General-purpose computation on GPU Folie 5 von 20
01 GPU-Computing
[1]
TU Dresden, 15.06.2010 General-purpose computation on GPU Folie 6 von 20
02 Architekturen
Unified Shader-Architektur
klassische 3D-Pipeline
TU Dresden, 15.06.2010 General-purpose computation on GPU Folie 7 von 20
02 Architekturen
Unified Shader-Architektur
TU Dresden, 15.06.2010 General-purpose computation on GPU Folie 8 von 20
02 Architekturen
Unified Shader-Architektur
Unified Shader-Architektur
TU Dresden, 15.06.2010 General-purpose computation on GPU Folie 9 von 20
02 Architekturen
Unified Shader-Architektur
klassische 3D-Pipeline
TU Dresden, 15.06.2010 General-purpose computation on GPU Folie 10 von 20
02 Architekturen
CUDA (compute unified device architecture) von Nvidia
Hardware und Software Architektur
einführt mit der G80-Architektur (ab GeForce8800)
unterstützt C, C++, Fortan, OpenCL, DirectCompute, etc.
bis zu 128 Streamprozessoren (CUDA-Kerne)
Nvidia CUDA
TU Dresden, 15.06.2010 General-purpose computation on GPU Folie 11 von 20
02 Architekturen
Nvidia CUDA
Kernel: - (Teil-)Progamm
Thread: - Grundelement aus zu bearbeitenden Daten Warp: - Gruppe von 32 Threads
Thread Block: - 64 bis 512 Threads
- können sich untereinander synchronisieren - verfügen über Shared Memory
Grid: - Sammlung von Threads die den selben Kernel bearbeiten
- Lesen/Schreiben in globalen Speicher
- kann sich mit anderen „kernel call“ synchronisieren
TU Dresden, 15.06.2010 General-purpose computation on GPU Folie 12 von 20
02 Architekturen
Nvidia CUDA
Hardware
TU Dresden, 15.06.2010 General-purpose computation on GPU Folie 13 von 20
02 Architekturen
Nvidia CUDA
Software
C ähnlicher Sprachstil
Erweiterung von Funktions- und Variablenqualifizierern
Bsp.:
• __global__ -> Kernel-Aufruf
• __device__ -> GPU-Funktion
• __host__ -> reine CPU-Operation (optional)
• __shared__ -> Variable wird im Shared Memory gespeichert
• Beispiel: __global__ void Func(float* Parameter);
TU Dresden, 15.06.2010 General-purpose computation on GPU Folie 14 von 20
02 Architekturen
Nvidia CUDA
TU Dresden, 15.06.2010 General-purpose computation on GPU Folie 15 von 20
02 Architekturen
nächste Generation der CUDA Architektur
Nachfolger der GT200 – Prozessorarchitektur
unterstüzt bis zu 512 „CUDA cores“
bis zu 6GB GDDR5 DRAM
doppelte Gleitkomma-Genauigkeit von 32-bit und 64-bit
ECC-Unterstützung
Cache Hierachy mit L1 und L2-Cache
Nvidia Fermi
TU Dresden, 15.06.2010 General-purpose computation on GPU Folie 16 von 20
02 Architekturen
Nvidia Fermi
TU Dresden, 15.06.2010 General-purpose computation on GPU Folie 17 von 20
02 Architekturen
Nvidia Fermi
TU Dresden, 15.06.2010 General-purpose computation on GPU Folie 18 von 20
02 Architekturen
1. verfügbare Technologie im Bereich GPGPU (2006)
vergleichbar mit CUDA bzw. Fermi
weniger unterstütze Software
Programmier-Schnittstelle ist OpenCL
ATI Stream
TU Dresden, 15.06.2010 General-purpose computation on GPU Folie 19 von 20
Quellen
http://www.nvidia.de/page/tesla_computing_solutions.html
http://www.nvidia.de/content/PDF/fermi_white_papers/NVIDIA_Fermi_Comp ute_Architecture_Whitepaper.pdf
http://www.hardware-
mag.de/artikel/grafikkarten/unified_geforce_8800_serie_unter_der_lupe/
http://www.tomshardware.de/CUDA-Nvidia-CPU-GPU,testberichte- 240065.html
http://www.tomshardware.de/ATi-Stream-AMD-gpgpu,testberichte- 240350.html
http://www.amd.com/de/products/technologies/stream- technology/Pages/stream-technology.aspx
Spezialarchitekturen I (GPGPU: Architektur,Programmierung und Anwendungen) Mario Kicherer
TU Dresden, 15.06.2010 General-purpose computation on GPU Folie 20 von 20