gemm函数详解

el/2024/4/19 23:30:51

参考链接:https://software.intel.com/en-us/node/520775

    http://www.cnblogs.com/darkknightzh/p/5553336.html

函数原型:

void cblas_sgemm (const CBLAS_LAYOUT Layout, const CBLAS_TRANSPOSE transa, constCBLAS_TRANSPOSE transb, const MKL_INT m, const MKL_INT n, const MKL_INT k, const float alpha,const float *a, const MKL_INT lda, const float *b, const MKL_INT ldb, const float beta, float *c,const MKL_INT ldc);

功能:

C := alpha*op(A)*op(B) + beta*C,

op:表示转置与否,由参数transa 和transb控制

op(A):m*k矩阵 op(B):k*n矩阵 c:m*n矩阵

参数解释:

Layout:表示矩阵的存储方式,有CblasRowMajor(行主序)和CblasColMajor(列主序)两种。即对于m行n列矩阵A(m*n),若为行主序,则将矩阵按照行的方式依次存储;若为列主序,则依次存储矩阵的每一列。后面的分析以行主序为例

transa/transb: 分别控制矩阵A、B是否做转置变化。有CblasNoTrans和CblasTrans两种形式。

m:表示op(A)和C的行数

n:op(B)和C的列数

k:op(A)的列数和op(B)的行数

alpha:

a:生成矩阵A

  NoTrans Trans

  ColMajor: A=a的左上m*k部分,a为lda*k矩阵, lda>max(1,m)A=a的k*m部分,a为lda*m, lda>max(1,k)

  RowMajor: A=a的左上k*m部分,a为lda*m矩阵,lda>max(1,k)A=a的m*k部分,a为lda*k, lda>max(1,m)

lda:如上描述

b:生成矩阵B

ldb:

beta:

C:结果输出矩阵C

  ColMajor: A=c的左上m*n部分,c为ldc*n矩阵, lda>max(1,m)  RowMajor: A=a的左上n*m部分,a为ldc*m矩阵,lda>max(1,n)


http://www.ngui.cc/el/5181837.html

相关文章

tensorflow 分类损失函数问题(有点坑)

tf.nn.softmax_cross_entropy_with_logits(记为f1) 和 tf.nn.sparse_softmax_cross_entropy_with_logits(记为f3),以及 tf.nn.softmax_cross_entropy_with_logits_v2(记为f2) 之间的区别。 f1和f3对于参数logits的要求都是一样的,即未经处理的,直接由神…

OpenMP并行程序设计——for循环并行化详解

转载请声明出处http://blog.csdn.net/zhongkejingwang/article/details/40018735 在C/C中使用OpenMP优化代码方便又简单,代码中需要并行处理的往往是一些比较耗时的for循环,所以重点介绍一下OpenMP中for循环的应用。个人感觉只要掌握了文中讲的这些就足…

音视频技术网站

http://blog.yundiantech.com/

c++ 函数式编程(简单示例)

C中一个函数作为作为另一个函数的参数 2016年12月17日 15:59:36 initiallysunny 阅读数:13266 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Initiallysunny/article/details/53708466 C中一个函数作为作为…

._bootstrap' has no attribute 'SourceFileLoader' 和 'socketio' has no attribute 'Server' 分析解决

之前运行别人的代码,报错缺少各种包,于是直接pip install安装,后来发现,报下面两个错误,很是纠结,网上查阅资料都不能正确的解决问题。 File "/usr/local/lib/python3.6/dist-packages/pkg_resources…

x264 参数详解

https://blog.csdn.net/zhubosa/article/details/51321783

opencv reshape 深拷贝 浅拷贝之坑

今天学习reshape遇见了一个坎,浪费了不少时间,希望后学者不要未该问题浪费过多时间。通常情况下,Opencv 的reshape函数跟Matlab是一致的。A.reshape(0,N),代表通道不变,行数变为N的变形。但是即便上两个参数没有问题&a…

x264_stack_align 对齐函数

看到x264中对于字节对齐的函数x264_stack_align( x264_slice_write, h ),为什么要字节对齐呢?因为x264中用到的指令集优化SSE2,而SSE2寄存器是128位寄存器,SSE2的指令是对16字节(128/8)同时处理&#xff0c…

x264 理论与代码系列

https://www.cnblogs.com/TaigaCon/category/1189649.html

统计数据(包括金融、气候、交通等,全面的医疗数据,如EEG、ECG、血压等)

金融、气候、交通等统计数据: https://datamarket.com/data/list/?qprovider:tsdl 权威的医疗数据(EEG、ECG、血压,各种医学影像资料等): https://physionet.org/physiobank/database/ (格式为.dat&am…