BLAS(Basic Linear Algebra Subprograms)库,是用Fortran语言实现的向量和矩阵运算库,是许多数值计算软件库的核心, 但也有一些其它的包装, 如cblas是C语言, 也有C++的包装, boost/ublas 是C++ template class的实现; 另外还有一些特别的实现, 如intel MKL, AMD core math library blas就是做向量、矩阵的基本运算,如加、减、乘等操作。
https://blog.csdn.net/zuoyigexingfude/article/details/50488255
函数的定义:cblas_sgemm(order, transA, transB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC);
第一个参数的函数是存储的有限性,有行优先和列优先(c语言是行优先)
caffe中使用的也是行优先
第二个参数和第三个参数是是否转置
A矩阵经过transA之后的维度是M×K
B矩阵经过transB之后的维度是K×N
C矩阵的维度是M×N
LDA和LDB是对应矩阵还没变换之前,在主维度方向的维度。(如果是行优先就是列数)。
LDA:A的列
LDB:B的列
LDC:C的列
其他部分:C = alpha*op( A )*op( B ) + beta*C
https://blog.csdn.net/zhuiqiuk/article/details/72916558
https://blog.csdn.net/jacke121/article/details/60143119
https://blog.csdn.net/u012235274/article/details/52769682