首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MKL CBlas错误

MKL CBlas错误
EN

Stack Overflow用户
提问于 2011-06-02 17:59:40
回答 1查看 483关注 0票数 0

我尝试使用英特尔MKL提供的cblas将两个矩阵的乘积,例如A和B转换为C。这会导致错误有什么原因吗?

代码语言:javascript
复制
double * A, *B, *C;

A = (double *) calloc(20 * 200, sizeof (double));
B = (double *) calloc(200 * 200, sizeof (double));
C = (double *) calloc(20 * 200, sizeof (double));

cblas_dgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, 
     20, 200, 200,
     1.0, A, 20,
     B, 200,
     0.0, C, 20);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-17 16:48:13

仔细检查cblas_dgemm的所有参数。如果您有一个错误,该函数可能正在读取超出数组的界限。对于不会触发错误的小尺寸,因为坏地址仍将落在单个内存页面内。(但数学将会出错,您应该检查它。)但是200x200矩阵是2.5兆字节的数据,传递错误的大小肯定会触发段错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6213014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档