Next: 4.1.3.2 Algorithmen für
Up: 4.1.3 Matrix-Matrix-Operationen (BLAS3)
Previous: 4.1.3 Matrix-Matrix-Operationen (BLAS3)
6 verschiedene Algorithmen zur Matrixmultiplikation
mit den Unterschieden
- Zeilen- bzw. Spaltenzugriff auf die Matrixelemente
- Nutzbare Grundroutinen, z.B. Skalarprodukt, Triade
Konkrete Implementierung stark hardwareabhängig :
-
Speicherbankkonflikte :
Nach jedem Lese/Schreibzugriff auf ein Element einer Speicherbank wird
diese Bank für eine gewisse Zeit für Zugriffe gesperrt.
Wir betrachten als Beispiel das Laden eine Vektors (Matrixzeile / -spalte)
.
Die Sperrzeit der Speicherbänke betrage 4 Lesezyklen.
Speicherung a)
Die Strides mit Konflikten hängen von der Anzahl der Bänke und der
Sperrzeit ab.
Speicherung b)
Hier treten bei Stride 1,2,3 Speicherbankkonflikte auf,
der konkrete maximale Stride mit Konflikten hängt von der Länge der
Bank ab.
Speicherbankkonflikte senken schon bei normalen Prozessoren die Leistung,
bei Vektorrechnern können sie sich signifikant auswirken !
-
Page fault :
Die angeforderte Adresse/Speicherzelle befindet sich nicht im schnellsten
Speicher, dh. dieser muß nachgeladen werden.
Muß bei Prozessoren mit Cache und bei virtuellem Speicher beachtet werden.
- Auf Parallelrechnern mit verteiltem Speicher soll natürlich
möglichst wenig Kommunikation erfolgen.
- Länge der Vektorregister beim Vektorrechner.
Next: 4.1.3.2 Algorithmen für
Up: 4.1.3 Matrix-Matrix-Operationen (BLAS3)
Previous: 4.1.3 Matrix-Matrix-Operationen (BLAS3)
Gundolf Haase
1998-12-22