向kernel函数传入静态数组的问题
向kernel函数传入一个静态变量是没有问题的,但传入静态数组就会有问题了出现内存访问的错误,请问是怎么回事?
我初步设想可能是编译器把传入的静态变量当做一个常量值直接可以复制进去,而静态数组则是把首地址传进去,而在CUDA
函数里访问全局内存是不容许的。
像这样就出错了:
int test[100];
for( int i = 0; i <= 99; i++)
{
test[i] = i;
}
testFuc<<<BlockSize,ThreadSize>>>(test);