我有一个像这样的CUDA内核函数:
__global__ void kernel(int a, int b)
{
extern __shared__ unsigned char array[];
//int size = /*size of array*/; = 16
}
在函数main中我调用它:
sharedMemSize = 16;
kernel<<<gridSize, blockSize, sharedMemSize>>>(1, 2);
如何获得共享内存阵列的大小? 这是我第一次在StackOverflow上有一个问题:)谢谢!!!
答案 0 :(得分:3)
您可以使用以下代码获取数组的字节大小:sizeof(array)
。
答案 1 :(得分:2)
将其作为内核参数传递?
kernel<<<gridSize, blockSize, sharedMemSize>>>(1, 2, sharedMemSize);