Level 3

Mit Tag 6 solltet ihr fertig sein, d.h.

Vorbereitungen

Im Moment ist level1 ein Top-Level Verzeichnis. Wenn jetzt aber level3 dazu kommt, dann sollen beise Verzeichnisse eine Ebene weiter nach unten rutschen. Die Struktur soll so aussehen:

  ulmBLAS/
  |+bench/
  |+refblas/
  |~src/
  | |+auxiliary/
  | |+level1/
  | |+level3/
  | |-Makefile
  | `-ulmblas.h
  |+test/
  |-Makefile
  `-Readme.md

Es kommt also auf oberster Ebene das Verzeichnis src hinzu. Dies enthält folgende Dinge:

Aufgabe:

Makefile

Damit wir die Makefiles verstehen schreiben wir sie selber! Dazu freunden wir und mit GNU Make und insbesondere der make documentation an. Das Makefile entwickeln wir iterativ.

Unterverzeichnisse Scannen

Aufgabe: Schreibt in src/ ein Makefile das nach und nach folgendes tut:

Hinweis:

Alten Stand wiederherstellen

Aufgabe: Die Dummy Source Files wieder löschen. Das Makefile so erweitern, dass

Hinweis:

Level 3: GEMM

Wir entwickeln die Implementierung von Level 3 BLAS wieder schrittweise.

Rümpfe

Aufgabe: Übersetzen und damit libatlulmblas.a und libulmblas.a erzeugen.

Level 3 Test

Aufgabe:

Fehlerbehandlung für dgemm

Aufgabe:

Implementierung von dgemm

Aufgabe: Jetzt soll die dgemm Implementierung auch das richtige Ergebnis liefern.