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

Slides:



Advertisements
Ähnliche Präsentationen
Matrixmultiplikation
Advertisements

< CUDA implementation>
Schnelle Matrizenoperationen von Christian Büttner
FH-Hof Der B-Baum Richard Göbel. FH-Hof Wahl des Verzweigungsgrad Verzweigungsgrad kann größer als 2 sein v Nachfolger für einen Knoten v-1 Werte in einem.
Didaktik der Linearen Algebra
Was wir zur numerischen Lösung von Dglen wissen
Lösung von linearen Gleichungssystemen - Grundlagen
Lösung von linearen Gleichungssystemen - Grundlagen
Dynamische Programmierung (2) Matrixkettenprodukt
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Lösung linearer Gleichungssysteme
Numerik partieller Differentialgleichungen
Beispiele für Gleichungssysteme
Mathematik Unterschiede GK / LK R. Redix 2009.
Uebung 01 ANN mit MATLAB.
Random Heightmap on GPU
Matrix Multiplication on CUDA
< Best practices >
Folie 1 § 30 Erste Anwendungen (30.2) Rangberechnung: Zur Rangberechnung wird man häufig die elementaren Umformungen verwenden. (30.1) Cramersche Regel:
Folie 1 § 29 Determinanten: Eigenschaften und Berechnung (29.1) Definition: Eine Determinantenfunktion auf K nxn ist eine Abbildung (im Falle char(K) ungleich.
§ 29 Determinanten: Eigenschaften und Berechnung
Matrix-Algebra Grundlagen 1. Matrizen und Vektoren
Effiziente Algorithmen
Clustering mittels Grafikprozessor
Eine Implementierung einer effiziente externe geordnete (!) lineare Liste Operationen: Search(x) Insert(x) Delete(x)
© Roland Angst, 2012Institute for Visual Computing Exercise Session 1 Roland Angst,
Lineare Algebra Komplizierte technologische Abläufe können übersichtlich mit Matrizen dargestellt werden. Prof. Dr. E. Larek
Effiziente Algorithmen
Multiplikation großer Zahlen mit Standard-FFT
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Einführung in die Matrizenrechnung
Einführung in die Programmierung Wintersemester 2012/13 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
GPU Computing Burim Kameri Fachhochschule Hannover (FHH)
GPU Computing Burim Kameri Fachhochschule Hannover (FHH)
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Parallel Matrix Multiplication
Parallel Programming Parallel Matrix Multiplication
Technische Informatik Reihungen – Felder - Arrays.
Lineare Algebra Außerdem bieten Determinanten
Algorithm Engineering „GPU Algorithmen“
Ein Vortrag von Simon Bayer
Inhalt Vorbemerkung Vorstellung einer Unterrichtssequenz Kritik
Determinanten und Cramer‘sche Regel
Agenda für heute, 22. Juni, 2006 Direkte FilezugriffeDirekte Filezugriffe Datentypen: Mengen Individualisierbare Datentypen.
Multivariate Statistische Verfahren
Präzise Vorhersage der Rechnerkapazität bei Mehrzweckdiensten Gruppe 5 Modellierungswoche Lambrecht 23. Juni bis 28. Juni 2002.
Diskrete Mathematik I Vorlesung 2 Arrays.
Lineare Algebra 11. Matrizen Eine m  n-Matrix ist ein Raster aus m  n Koeffizienten, die in m Zeilen und n Spalten angeordnet sind. = (a ij )
Prof. Dr. Walter Kiel Fachhochschule Ansbach
Christian Scheideler WS 2008
Prof. Dr. Walter Kiel Fachhochschule Ansbach
Anfang Präsentation 3. November, 2004 Tarjan’s Schleifenaufbrechalgorithmus In dieser Vorlesung wird ein Verfahren vorgestellt, welches in der Lage ist,
6. Thema: Arbeiten mit Feldern
Wissenschaftliches Rechnen auf Grafikkarten Achim Grolms Buyu Xiao Guanhua Bai Betreuer: Dipl.-Ing. Bastian Bandlow.
Test 1 Test 2 Test 3. Test 4 Test 5 Test 6 Test 7 Test 8 Test 9.
Blowfish mit CUDA Dominik Oepen Inhalt ● Blowfish Grundlagen ● Implementierungsdetails ● Performance ● Fazit.
Mathematik LK oder GK?.
Fundamentalräume einer Matrix
Algorithmen und Datenstrukturen
- mal + = - + mal - = - + mal + = + - mal - = +
Test.
Wiederholung TexPoint fonts used in EMF.
Christian Scheideler WS 2008
Mathematik LK oder GK?.
ReduSoft Ltd. Kurzbeschreibungen zu einigen Modulen, die im Programm MathProf 5.0 unter dem Themenbereich Algebra implementiert sind. Matrizen.
ReduSoft Ltd. Kurzbeschreibungen zu einigen Modulen, die im Programm MathProf 5.0 unter dem Themenbereich Algebra implementiert sind. Matrizen.
Komplexität und Berechenbarkeit
 Präsentation transkript:

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

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

Einteilung in Blöcke

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

Submatrix 32x32 Einträge

4 Schritte im Thread-Block 32x8 Threads

Zugriff auf die Bänke

Problematische Eingaben günstig ungünstig

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

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.

Iterationsschritte b{ n

Kernelaufrufe

Matrixmultiplikation

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

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

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

==================================================================================================== Problem size: 512 x 512 ==================================================================================================== matrix multiplication on CPU CPU time: s matrix multiplication on GPU GPU time: s Checksum: Integrity test: SUCCESS Ratio(GPU:CPU): 1 : ==================================================================================================== Problem size: 1024 x 1024 ==================================================================================================== matrix multiplication on CPU CPU time: s matrix multiplication on GPU GPU time: s Checksum: Integrity test: SUCCESS Ratio(GPU:CPU): 1 : ==================================================================================================== Problem size: 2048 x 2048 ==================================================================================================== matrix multiplication on CPU CPU time: s matrix multiplication on GPU GPU time: s Checksum: Integrity test: SUCCESS Ratio(GPU:CPU): 1 : ==================================================================================================== Matrix Multiplikation

==================================================================================================== Problem size: 256 ==================================================================================================== CPU Determinante: 1 time spent in kernels: #swaps: 21 CUDA Determinante: 1 Time(CPU:CUDA): : ==================================================================================================== Problem size: 512 ==================================================================================================== CPU Determinante: 0 time spent in kernels: #swaps: 41 CUDA Determinante: 0 Time(CPU:CUDA): : ==================================================================================================== Problem size: 1024 ==================================================================================================== CPU Determinante: 6 time spent in kernels: #swaps: 85 CUDA Determinante: 6 Time(CPU:CUDA): : ==================================================================================================== Problem size: 2048 ==================================================================================================== CPU Determinante: 9 time spent in kernels: #swaps: 167 CUDA Determinante: 9 Time(CPU:CUDA): : ==================================================================================================== Obere Dreiecksform