Software Grundlagen HPC
Erster Kontakt mit Assembler, Compiler und UNIX Prozessen. |
|
Mehr zu Assembler: Register, Befehle, Direktiven, ... |
|
Funktionsaufrufe in Assembler: Call und Ret, Funktions Argumente, Call by Value, Call by Reference, Lokale Variablen. |
|
Pointer, Arrays, Optimierungen |
|
C/Fortran Funktionen gegenseitig aufrufen. |
|
BLAS Level 1. |
|
Erste Schritte mit SSE, BLAS Level 1 mit SSE |
|
Mehr zu Makefiles. Erste Schritte mit Level 3, packen von Matrix-Blöcken, GEMM Micro-Kernel, GEMM Macro Kernel und dgemm_nn. |
|
Optimierung des Micro Kernel (Part I): Mit SSE |
|
Optimierung des Micro Kernel (Part II): Mit AVX |
Weiteres Material:
-
Die PDF Folien der Vorlesung.
-
Unser Coding Style.
-
Ein Cheet Sheet für Assembler (allerdings nur für den Intel 32 Befehlssatz) von einer Vorlesung in Stanford.
-
Von Netlib eine Übersicht der in BLAS spezifizierten Funktionen.
-
FLENS: A Flexible Library for Efficient Numerical Solutions: C++ Numerik Bibliothek. Neben Matrix und Vecktor Typen wird ein high-level Interface für BLAS bereitgestellt. Außerdem implementiert FLENS mit FLENS-LAPACK eine wichtige Teilmenge von LAPACK.
-
Mein vimrc und (damit *.tcc files als C++ source files erkannt werden) mein filetype.vim.
-
... and of course: Write in C!