相关疑难解决方法(0)

Cuda共享内存数组变量

我试图为矩阵乘法声明一个变量,如下所示:

__shared__ float As[BLOCK_SIZE][BLOCK_SIZE];
Run Code Online (Sandbox Code Playgroud)

我试图让它成为用户可以输入矩阵的大小来计算,但这意味着改变BLOCK_SIZE.我改变了它但是我收到了编译器错误:"错误:常量值未知".我调查了它,它与这个帖子类似.所以我尝试过:

__shared__ int buf [];
Run Code Online (Sandbox Code Playgroud)

但后来我得到:"错误:不允许不完整的类型"

谢谢,Dan更新代码(几乎遵循本指南和盯着cuda指南):通过询问用户矩阵的大小来传递块大小.他们进入x和y.块大小仅为x,现在它必须接受与x和y相同的大小.

__global__ void matrixMul( float* C, float* A, float* B, int wA, int wB,size_t block_size)
{
    // Block index
    int bx = blockIdx.x;
    int by = blockIdx.y;

    // Thread index
    int tx = threadIdx.x;
    int ty = threadIdx.y;

    // Index of the first sub-matrix of A processed 
    // by the block
    int aBegin = wA * block_size * by;

    // Index of the last sub-matrix of …
Run Code Online (Sandbox Code Playgroud)

c cuda

16
推荐指数
2
解决办法
3万
查看次数

标签 统计

c ×1

cuda ×1