演算法庫:基礎線性代數子程式庫(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 ….更多見官網 |