算法库:基础线性代数子程序库(Basic Linear Algebra Subprograms,BLAS)介绍

时间:2023-11-28 17:44:26

调试DeepFlow光流算法,由于作者给出的算法是基于Linux系统的,所以要在Windows上运行,不得不做大量的修改工作。移植到Windows平台,除了一些头文件找不到外,还有一些函数也找不到。这其中就涉及到三个函数:sgemv_,sgemm­,saxpy­_。百度了一下,原来这三个函数是很有来头的。它们仨来自于Basic Linear Algebra Subprograms(BLAS),即基础线性代数子程序库。这个库其实就是关于向量和矩阵之间的运算的。

BLAS维百介绍:https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms

BLAS官方连接:http://www.netlib.org/blas/

BLAS库分为三个level:level1是关于向量和向量之间的运算,level2是关于向量和矩阵之间的运算,level3是关于矩阵和矩阵之间的运算。

BlAS函数的命名:主要由数据类型、矩阵类型、运算类型组成。

数据类型 

矩阵类型  

运算类型

S:single (single real)

D:double (double real)

C:complex (single complex)

Z:double complex

GE:general

GB:general band

SY:symmetric

SB:symmetric band

SP:symmetric packed

HE:hermitian

HB:hermitian band

HP:hermitian packed

TR:triangular

TB:triangular band

TP:triangular packed

….更多见官网

DOT:scalar product,  x^T y

AXPY:vector sum,  alpha x + y

MV:matrix-vector product,  Ax

SV:matrix-vector solve,  inv(A)x

MM:matrix-matrix product,  AB

SM:matrix-matrix solve,  inv(A) B

….更多见官网