C++ 声明cuda中共享内存的大小
在cuda c/c++中,我的代码如下所示(共享内存的大小取决于其他参数;即不是所有问题的常数):C++ 声明cuda中共享内存的大小,c++,cuda,shared-memory,C++,Cuda,Shared Memory,在cuda c/c++中,我的代码如下所示(共享内存的大小取决于其他参数;即不是所有问题的常数): __global__ void dist(){ int a=4; int b=2; const int d=a+b; __shared__ short unsigned int shared_nodes[a]; } 程序不工作并显示错误消息:“错误:常量值未知”。您知道如何解决该问题吗 如果要动态分配共享内存的大小,只需先声明共享内存,并在启动时给出大小: exter
__global__ void dist(){
int a=4; int b=2;
const int d=a+b;
__shared__ short unsigned int shared_nodes[a];
}
程序不工作并显示错误消息:“错误:常量值未知”。您知道如何解决该问题吗 如果要动态分配共享内存的大小,只需先声明共享内存,并在启动时给出大小:
extern __shared__ char array[];
__global__ void shared_memory_1(float* result, int shared_size)
{
float* sh_data = (float*)array;
float* sh_data2 = (float*)&sh_data[shared_size];
...
}
如图所示:
共享内存大小始终可以作为模板参数传入。如果模板不是您想要的,请参阅