【发布时间】:2013-03-07 06:55:00
【问题描述】:
我编写了一个简单的内核,在其中我将共享内存数组声明为
extern __shared__ float As[100];
在我的内核启动中,我指定了 number_of_bytes 的共享内存。编译内核(到 PTX)时出现错误“意外的地址空间”。我正在使用来自 svn 的相当新版本的 LLVM(3.3 正在进行中)。有什么想法我在这里做错了吗?问题似乎与 extern 关键字有关,但是我还要如何指定它呢?(共享内存)。 我应该使用不同的 LLVM 构建吗?
配置 CUDA 5.0 , Nvidia Tesla C1060
【问题讨论】:
-
试试这个:
extern __shared__ float As[]; -
所以您使用的是自己的 LLVM 构建,而不是 CUDA 工具包中的任何东西?
-
也许你可以提供更完整的源代码。
-
您的代码是否使用默认的 CUDA 5 工具包正确构建?
-
@talonmies 不是我自己的,而是来自大约一个月前拍摄的 LLVM svn。 Robert Crovella:好吧,nvcc 会抛出“错误:local 和 shared 变量不能有外部链接”