Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C M不'时的分片矩阵乘法;t等于N?_C_Algorithm_Matrix Multiplication - Fatal编程技术网

C M不'时的分片矩阵乘法;t等于N?

C M不'时的分片矩阵乘法;t等于N?,c,algorithm,matrix-multiplication,C,Algorithm,Matrix Multiplication,我遇到的每一种算法都使用一个平方矩阵来平铺矩阵乘法。当两个矩阵的大小完全不同时,是否可以平铺MMM 这就是我目前正在使用的代码,我想尝试添加平铺来提高性能 #pragma omp parallel shared(x, R, r, row) private(i, j, k, temp) { #pragma omp for for (k = 0; k < x->n; k++){ for (i = row; i < row+2; i++){

我遇到的每一种算法都使用一个平方矩阵来平铺矩阵乘法。当两个矩阵的大小完全不同时,是否可以平铺MMM

这就是我目前正在使用的代码,我想尝试添加平铺来提高性能

#pragma omp parallel shared(x, R, r, row) private(i, j, k, temp)
{
    #pragma omp for
    for (k = 0; k < x->n; k++){
        for (i = row; i < row+2; i++){
            temp = x->v[i*x->n+k];
            for (j = 0; j < R->n; j++){         
                r[i*R->n+j] += temp*R->v[k*R->n+j];
            }
        }
    }
}
#pragma omp并行共享(x,R,R,row)私有(i,j,k,temp)
{
#pragma omp for
对于(k=0;kn;k++){
对于(i=行;i<行+2;i++){
温度=x->v[i*x->n+k];
对于(j=0;jn;j++){
r[i*r->n+j]+=temp*r->v[k*r->n+j];
}
}
}
}
变量x、R和R是矩阵结构,定义了m、n和v来保存大小和数据。矩阵x是一个旋转矩阵,因此它是一个单位矩阵,数据分为两行。这就是为什么我将乘法限制为仅两行

因此,矩阵x的大小为2xn,而R的大小为mxn。注:已定义x的n始终是R的m,因此没有大小不匹配

是否有可能平铺这种类型的不匹配矩阵乘法,并仍然获得性能增益