相关疑难解决方法(0)

使用CUDA减少矩阵行

Windows 7, NVidia GeForce 425M.
Run Code Online (Sandbox Code Playgroud)

我写了一个简单的CUDA代码来计算矩阵的行和.矩阵具有单维表示(指向浮点的指针).

代码的串行版本如下(它有2循环,如预期的那样):

void serial_rowSum (float* m, float* output, int nrow, int ncol) {
    float sum;
    for (int i = 0 ; i < nrow ; i++) {
        sum = 0;
        for (int j = 0 ; j < ncol ; j++)
            sum += m[i*ncol+j];
        output[i] = sum;
    }
}
Run Code Online (Sandbox Code Playgroud)

在CUDA代码中,我调用内核函数按行扫描矩阵.下面是内核调用片段:

dim3 threadsPerBlock((unsigned int) nThreadsPerBlock); // has to be multiple of 32
dim3 blocksPerGrid((unsigned int) ceil(nrow/(float) nThreadsPerBlock)); 

kernel_rowSum<<<blocksPerGrid, threadsPerBlock>>>(d_m, d_output, nrow, ncol);
Run Code Online (Sandbox Code Playgroud)

以及执行行的并行求和的内核函数(仍有1 …

c cuda matrix

13
推荐指数
2
解决办法
1万
查看次数

标签 统计

c ×1

cuda ×1

matrix ×1