Yilmaz, Tolga MatNr: 157317 Mesaud, Elias MatNr: 151386
1. Aufbau und Funktionsweise einer Grafikkarte 2. CPU vs. GPU 3. Software 4. Beispielprogramme Kompilierung und Vorführung 5. Wo wird Cuda heutzutage verwendet Mehrere Beispiele Tesla Beispielprogramm: TotalMedia 6. Fazit Yilmaz, Tolga Mesaud, Elias 2
Yilmaz, Tolga Mesaud, Elias 3
Aufbau und Funktion einer Grafikkarte Onboard (IGP) Bietet alle 2D-Funktion Langsame oder veraltete 3D-Funktionalität Erweiterungskarte Low-Cost bis High-End Modelle Dual GPU s auf einer Karte SLI oder Crossfire-Verbund Yilmaz, Tolga Mesaud, Elias 4
Aufgaben einer Grafikkarte Die Grafikkarte soll die CPU entlasten Auslagern komplexer Bildberechnungen auf die GPU Datenübertragung geschieht über ein Bus vom Mainboard (AGP oder PCI-Express) Informationen werden in der GPU verarbeitet und im Videospeicher abgelegt. RAMDAC ließt die digitalen Bildinformationen und übermittelt diese an den Monitor Yilmaz, Tolga Mesaud, Elias 5
Aufbau einer Grafikkarte NVIDIA 8800 GTX Yilmaz, Tolga Mesaud, Elias 6
Aufbau einer Grafikkarte Yilmaz, Tolga Mesaud, Elias 7
Grafikprozessor (GPU) G80 ist der erste DirectX10 fähige Grafikchip Komplett neue Architektur Unified Shader Model Keine Unterscheidung zwischen den unterschiedlichen Shader-Modellen (Pixel, Vertex, Geometrie) Yilmaz, Tolga Mesaud, Elias 8
Grafikprozessor (GPU) Yilmaz, Tolga Mesaud, Elias 9
Grafikprozessor (GPU) Yilmaz, Tolga Mesaud, Elias 10
Grafikprozessor (GPU) Yilmaz, Tolga Mesaud, Elias 11
Grafikprozessor (GPU) Yilmaz, Tolga Mesaud, Elias 12
Grafikprozessor (GPU) Neues bei DirectX 10: Geometrie-Shader Stream-Ausgabe Geringere CPU-Belastung bei CPU-GPU Transaktionen Yilmaz, Tolga Mesaud, Elias 13
Yilmaz, Tolga Mesaud, Elias 14
CPU vs. GPU Die CPU kann prinzipiell alles berechnen zieht aus einem Befehlssatz die größtmögliche Leistung ist in der Anzahl der parallelen Ausführungen beschränkt Hälfte der Chipfläche wird für den Cache verwendet Yilmaz, Tolga Mesaud, Elias 15
CPU vs. GPU Die GPU ist auf 3D-Berechnungen spezialisiert hohes Maß an Parallelisierung erreicht ihre volle Effizienz bei ca. 1000 Threads benötigt dank intelligenter Speicherorganisation nur geringen Cache Yilmaz, Tolga Mesaud, Elias 16
CPU vs. GPU 4 Cores 240 Cores Yilmaz, Tolga Mesaud, Elias 17
CPU vs. GPU 330 GFlops 48 GFlops Yilmaz, Tolga Mesaud, Elias 18
CUDA bildet eine Erweiterung der C Sprache Dennoch unterstützt es nicht alle Funktionen Man benötigt keine Vorkenntnisse über die GPU- Programmierung oder Grafik-APIs Verfügbar für Windows und bekannte Linux- Distributionen Yilmaz, Tolga Mesaud, Elias 19
host : die Funktion ist nur vom Host aufrufbar und ausführbar. device : die Funktion ist nur vom Device aufrufbar und ausführbar. global : die Funktion ist nur vom Host aufrufbar und wird vom Device ausgeführt. Yilmaz, Tolga Mesaud, Elias 20
constant : Variable wird im constant memory abgelegt. device : Variable wird im global memory gespeichert. shared : Variable wird im shared memory gespeichert. Yilmaz, Tolga Mesaud, Elias 21
#include <stdio.h> #include <cuda.h> // Kernel that executes on the CUDA device global void square_array(float *a, int N) { int idx = blockidx.x * blockdim.x + threadidx.x; if (idx<n) a[idx] = a[idx] * a[idx]; } // main routine that executes on the host int main(void) { } float *a_h, *a_d; // Pointer to host & device arrays const int N = 10; // Number of elements in arrays size_t size = N * sizeof(float); a_h = (float *)malloc(size); // Allocate array on host cudamalloc((void **) &a_d, size); // Allocate on device // Initialize host array and copy it to CUDA device for (int i=0; i<n; i++) a_h[i] = (float)i; cudamemcpy(a_d, a_h, size, cudamemcpyhosttodevice); // Do calculation on device: int block_size = 4; int n_blocks = N/block_size + (N%block_size == 0? 0:1); square_array <<< n_blocks, block_size >>> (a_d, N); // Retrieve result from device and store it in host array cudamemcpy(a_h, a_d, sizeof(float)*n, cudamemcpydevicetohost); // Print results for (int i=0; i<n; i++) printf("%d %f\n", i, a_h[i]); // Cleanup free(a_h); cudafree(a_d); Yilmaz, Tolga Mesaud, Elias 22
Folding@home Beschleunigung von Mathlab mittels CUDA Bild und Videobearbeitung Nero Move it CUDA Plug-In vreveal TotalMedia Usw Yilmaz, Tolga Mesaud, Elias 23
Ernennung der Harvard Universität zum CUDA Centre of Excellence Connectome Projekt MWA-Telescope-Projekt Qchem-Projekt Yilmaz, Tolga Mesaud, Elias 24
Innovative CUDA Architektur 250-fache Rechenleistung eines PCs 960 Recheneinheiten für massiv- parallele Rechenleistung Programmieren in C für Windows oder Linux Der Supercomputer ist bereits ab 5000 erhältlich Yilmaz, Tolga Mesaud, Elias 25
TotalMedia ist ein Videoverarbeitungsprogram Verbesserung des Films(Video) Entlastung der CPU durch CUDA Optimieren des Audioencoding Yilmaz, Tolga Mesaud, Elias 26
Innovation mit Potenzial Ausbaufähig Noch nicht klar Strukturiert Fraglich ist ob es sich Etablieren wird Yilmaz, Tolga Mesaud, Elias 27
Yilmaz, Tolga Mesaud, Elias 28
Yilmaz, Tolga Mesaud, Elias 29