如何在CUDA内核函数中获取数组的大小?

时间:2015-04-04 16:28:00

标签: cuda

我有一个像这样的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上有一个问题:)谢谢!!!

2 个答案:

答案 0 :(得分:3)

您可以使用以下代码获取数组的字节大小:sizeof(array)

答案 1 :(得分:2)

将其作为内核参数传递?

kernel<<<gridSize, blockSize, sharedMemSize>>>(1, 2, sharedMemSize);