1. 程式人生 > >演算法庫:基礎線性代數子程式庫(Basic Linear Algebra Subprograms,BLAS)介紹

演算法庫:基礎線性代數子程式庫(Basic Linear Algebra Subprograms,BLAS)介紹

   除錯DeepFlow光流演算法,由於作者給出的演算法是基於Linux系統的,所以要在Windows上執行,不得不做大量的修改工作。移植到Windows平臺,除了一些標頭檔案找不到外,還有一些函式也找不到。這其中就涉及到三個函式:sgemv_,sgemm­,saxpy­_。百度了一下,原來這三個函式是很有來頭的。它們仨來自於Basic Linear Algebra Subprograms(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

….更多見官網