gpt4 book ai didi

c++ - JCuda全局共享内存导致错误

转载 作者:行者123 更新时间:2023-11-28 06:12:02 25 4
gpt4 key购买 nike

我正在尝试使用 jcuda 中的共享内存做一些非常非常简单的事情。我的内核:

__shared__ int testMe;

extern "C"
__global__ void test() {
testMe = 5;
}

将共享内存设置为全局允许我在设备函数中使用它,不幸的是,我什至无法将共享内存声明为全局。 Cuda 刚刚崩溃,内核无法启动问题。我也尝试过:

extern __shared__ int test

但是 nvcc 编译器给出了 cannot external link shared memory 错误。我真的很想让它工作以简化内核的编写,但我看不出有什么办法。

最佳答案

您不能在翻译单元范围内定义静态共享内存,您必须在内核范围内声明它。如果这样做,您的共享内存将是同一 block 中每个线程的相同内存。如果你想为所有 block 中的每个线程使用相同的内存,你必须使用全局内存(在主机代码中调用 cudaMalloc() 并将内存指针传递给你的内核)。

关于c++ - JCuda全局共享内存导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31068816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com