cuda中的矩形矩阵乘法

时间:2013-12-01 06:03:20

标签: matrix cuda

我正在cuda进行矩形矩阵乘法,但我无法使用适当的网格和块大小启动内核。我试过很多配置。我的矩阵大小为189*10241024*100

任何人都可以帮我解决这个问题吗?

__global__ void matrixMultiply(float * C, float * A, float * B,
                   int numARows, int numAColumns,
                   int numBRows, int numBColumns,
                   int numCRows, int numCColumns) {
    //@@ Insert code to implement matrix multiplication here
    int Row = blockIdx.y * blockDim.y + threadIdx.y;
    int Col = blockIdx.x * blockDim.x + threadIdx.x;
    if (numAColumns != numBRows) return;
    if ((Row < numARows) && (Col < numBColumns)){
    float Cvalue = 0;
    for (int k = 0; k < numAColumns; ++k)
    Cvalue += A[Row*numAColumns + k] * B[k * numBColumns + Col];
    C[Row*numCColumns + Col] = Cvalue;
  }

}

这是我正在使用的全局函数 和gridsize是numCColumns / 8 numCRow / 8     blocksize是[8 8]

0 个答案:

没有答案