首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用GEMM的cublas AA‘

使用GEMM的cublas AA‘
EN

Stack Overflow用户
提问于 2017-07-16 17:19:20
回答 1查看 50关注 0票数 1

我试图找到计算AA的乘法,其中A是MxN,我试着这样做:

代码语言:javascript
复制
    double al =1.0f; // al =1
    double bet =0.0f; // bet =1
stat=cublasDgemm(handle,CUBLAS_OP_N,CUBLAS_OP_T,M,M,N,&al,d_A,M,d_Acopy,M,&bet,d_temp,M);

但是它给出了分割误差I found this question but I couldn't follow

你能帮我做AA吗,知道我用双指针手动初始化了矩阵

代码语言:javascript
复制
double ** m = (double**)malloc(rows * sizeof(double*));

另外,我将这些值保存为

代码语言:javascript
复制
int i,j;
//initalize A
for (i=0;i<cols;i++)
    {
     for (j=0;j<rows;j++)
       {
        a[i][j]=A_example[i*rows+j];
        //a[i][j]=my_round(a[i][j]*10000.0)/10000.0;
        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-17 07:26:37

我只是重新定义了我的矩阵,就像他们在示例中定义的那样。我认为问题出在他们使用的数据布局上。我无法将我的C矩阵转换为cuBlas格式。

不管怎么说:他们这样定义它:

代码语言:javascript
复制
double *m=( double *) malloc (rows*cols* sizeof ( double ));

对于数据初始化: int i;int j;

代码语言:javascript
复制
for (i=0;i<k;i ++){
    for (j=0;j<n;j ++){
        printf (" %5.0f",a[ IDX2C(i,j,k )]);
        }

其中,IDX2C是定义为:

代码语言:javascript
复制
# define IDX2C(i,j,ld) (((j)*( ld ))+( i ))

最后我找到了AA‘,如下所示:

代码语言:javascript
复制
double al =1.0f; // al =1
double bet =0.0f; // bet =1
stat=cublasDgemm(handle,CUBLAS_OP_N,CUBLAS_OP_T,M,M,N,&al,d_A,N,d_A,M,&bet,d_temp,M);

其中A是MxN矩阵。

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

https://stackoverflow.com/questions/45126967

复制
相关文章

相似问题

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