Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Lineare Algebra Softwareprojekt: Anwendung von Algorithmen Sebastian Kürten, Philipp Borgers SoSe 2010.

Ähnliche Präsentationen


Präsentation zum Thema: "Lineare Algebra Softwareprojekt: Anwendung von Algorithmen Sebastian Kürten, Philipp Borgers SoSe 2010."—  Präsentation transkript:

1 Lineare Algebra Softwareprojekt: Anwendung von Algorithmen Sebastian Kürten, Philipp Borgers SoSe 2010

2 Status ● Matrixmultiplikation: ● Eingabegröße: quadratisch, vielfaches der Blockgröße ● Beliebige Eingabegrößen ● Gaussalgorithmus: ● Obere Dreiecksform ● Determinante ● Beliebige Eingabegrößen ● Jordan (Eliminierung rückwärts) ● Eigenwerte

3 Einteilung in Blöcke

4 Zugriff auf Blöcke ==== CPU ==== A,B,C // Matrizen N // Größe der Matrizen BLOCK = 32// Größe eines Blocks numBlocks(N / BLOCK, N / BLOCK) numThreads(32, 8) kernel >>(A,B,C) === Kernel ==== __shared__ rows[32*32] __shared__ cols[32*32] __shared__ temp[32*32] initialisiere temp zu 0 #sumatrices = N / BLOCK for s = 1,...,#submatrices: load submatrix of A to rows load submatrix of B to cols temp += rows * cols; write temp to C

5 Submatrix 32x32 Einträge

6 4 Schritte im Thread-Block 32x8 Threads 1 2 34

7 Zugriff auf die Bänke

8 Problematische Eingaben günstig ungünstig

9 Problematische Eingaben günstig ungünstig for s = 1,...,#submatrices: load submatrix of A to rows load submatrix of B to cols temp += rows * cols; write temp to C

10 Lineare Gleichungssysteme Problem: ● Eliminierung des i-ten Werts in der k-ten Zeile hängt von der Eliminierung der vorangehenden i-1, i-2,... Werte ab. ● Algorithmus somit inhärent sequentiell. Lösungsansatz: ● Ändern der Operationsreihenfolge, sodass möglichst viele Operation parallel erfolgen können.

11 Iterationsschritte b{ n

12 Kernelaufrufe

13 Matrixmultiplikation

14 LGS - Stabilität ● Gaussalgorithmus besitzt ungünstige Stabilitätseigenschaften ● Lösungsansätze: ● Restklassenkörper ● Pivotisierung

15 Determinante ● Determinante durch Gaussverfahren ermitteln. ● Bei einer Dreiecksmatrix das Produkt der Hauptdiagonale ● Problem: Zeilentausch -> Vorzeichenwechsel der Determinante ● Lösung: Zeilentausch merken

16 TODO ● Beschränkung auf vielfache der Blockgröße aufheben ● Berechnungen auf nicht quadratischen Matrizen ● Gauss-Jordan-Elimierung

17 ==================================================================================================== Problem size: 512 x 512 ==================================================================================================== matrix multiplication on CPU.................................................................................................... CPU time: 1.057971 s matrix multiplication on GPU.................................................................................................... GPU time: 0.159612 s Checksum: 537883392.00 Integrity test: SUCCESS Ratio(GPU:CPU): 1 : 6.628393 ==================================================================================================== Problem size: 1024 x 1024 ==================================================================================================== matrix multiplication on CPU.................................................................................................... CPU time: 8.569744 s matrix multiplication on GPU.................................................................................................... GPU time: 0.557436 s Checksum: 4291794432.00 Integrity test: SUCCESS Ratio(GPU:CPU): 1 : 15.373503 ==================================================================================================== Problem size: 2048 x 2048 ==================================================================================================== matrix multiplication on CPU.................................................................................................... CPU time: 68.473384 s matrix multiplication on GPU.................................................................................................... GPU time: 4.360490 s Checksum: 34356312064.00 Integrity test: SUCCESS Ratio(GPU:CPU): 1 : 15.703140 ==================================================================================================== Matrix Multiplikation

18 ==================================================================================================== Problem size: 256 ==================================================================================================== CPU Determinante: 1 time spent in kernels: 0.020275 0.013058 0.039803 0.003668 0.021788 #swaps: 21 CUDA Determinante: 1 Time(CPU:CUDA): 0.055983:0.099171 ==================================================================================================== Problem size: 512 ==================================================================================================== CPU Determinante: 0 time spent in kernels: 0.073135 0.026702 0.155535 0.012815 0.165345 #swaps: 41 CUDA Determinante: 0 Time(CPU:CUDA): 0.444818:0.435897 ==================================================================================================== Problem size: 1024 ==================================================================================================== CPU Determinante: 6 time spent in kernels: 0.289803 0.052377 0.614527 0.046532 1.275463 #swaps: 85 CUDA Determinante: 6 Time(CPU:CUDA): 3.558698:2.284423 ==================================================================================================== Problem size: 2048 ==================================================================================================== CPU Determinante: 9 time spent in kernels: 1.116764 0.108615 2.440921 0.178503 10.232544 #swaps: 167 CUDA Determinante: 9 Time(CPU:CUDA): 28.896249:14.095491 ==================================================================================================== Obere Dreiecksform


Herunterladen ppt "Lineare Algebra Softwareprojekt: Anwendung von Algorithmen Sebastian Kürten, Philipp Borgers SoSe 2010."

Ähnliche Präsentationen


Google-Anzeigen