【问题标题】:declaring the size of shared memory in cuda [duplicate]在cuda中声明共享内存的大小[重复]
【发布时间】:2014-01-09 01:31:26
【问题描述】:

我的代码在 cuda c/c++ 中看起来像这样(共享内存的大小取决于其他参数;即不是所有问题的常量):

__global__ void dist(){
     int a=4; int b=2;
     const int d=a+b;
    __shared__ short unsigned int shared_nodes[a];
}

程序不工作并显示错误消息:“错误:常量值未知。”你知道我该如何解决这个问题吗?

【问题讨论】:

标签: c++ cuda shared-memory


【解决方案1】:

如果要动态分配共享内存的大小,只需先声明共享内存,启动时给出大小即可:

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]; 
    ...
}

就像图片描述的那样:

【讨论】:

    猜你喜欢
    • 2017-05-14
    • 2021-08-24
    • 1970-01-01
    • 2012-07-14
    • 2021-06-16
    • 1970-01-01
    • 2013-03-06
    • 2011-06-29
    相关资源
    最近更新 更多