BLAS-Wrapper für AutoIt

  • Hier stelle ich einen Wrapper für BLAS vor.

    Was ist BLAS? - Wer BLAS nicht kennt braucht es auch nicht... ;)
    BLAS bedeutet Basic Linear Algebra Subprograms. Es ist eine uralte FORTRAN-Bibliothek welche Grundfunktionen der linearen Algebra beinhaltet.
    Über die Jahre haben sich die BLAS-Schnittstellen als Quasi-Standard für derartige Aufgaben durchgesetzt.
    Das führt dazu, dass man sein Programm in einer einheitlichen BLAS-Syntax schreiben kann und ohne etwas am Code zu ändern sein Programm auf das jeweilige System hin optimieren kann indem man einfach auf die hierfür geeignete Library linkt.
    Fast jeder Hersteller im High-Performance-Bereich stellt für seine Systeme optimierte BLAS-Bibliotheken bereit um das beste aus den Systemen rauszuholen.
    Eine der bekanntesten dürfte die Intel Math Kernel Library (MKL) sein, welche für Intel-Prozessoren optimiert wurde.
    BLAS-Libraries stellen die Grundlage für eine Vielzahl an Programmen im wissenschaftlichen und medialen Bereich.

    Was bringt uns das für AutoIt?
    Wer es nicht lassen kann auch mal in AutoIt aufwendigere Berechnungen durchzuführen, der hat durch die UDF Zugang zu wahnsinnig optimierten Prozeduren.
    Optimiert nicht nur im Hinblick auf Performance und Speicherverbrauch, sondern ebenso auf numerische Stabilität.

    Der Entwicklungsstand:

    • Alle wichtigen Funktion der 3 BLAS-Levels wurden für den Double-Datentyp implementiert. Die drei anderen Datentypen (Single, Complex, Double Complex) sind nicht implementiert.
    • Bandmatrizen sind noch nicht implementiert
    • Vermutlich einige Bugs vorhanden aufgrund dessen, dass die Funktionen noch nicht umfangreich getestet wurden.
    • Beigelegte Libraries: OpenBLAS und MKL (x86-MKL könnte noch Probleme machen)


    Zur Benutzung der einzelnen Funktionen gibt es im Funktionsheader immer ein vollständiges Beispiel. Mit diesem sollte die Benutzung schnell klar werden.


    Download (extern da zu groß fürs Forum): http://ge.tt/api/1/files/22YCdu92/0/blob?download