我想在 CUDA 代码中实例化一个类,它与同一块中的其他线程共享它的一些成员。
但是,在尝试编译以下代码时,我收到错误消息:»attribute "shared" does not apply here«(nvcc 版本 4.2)。
class SharedSomething {
public:
__shared__ int i; // this is not allowed
};
__global__ void run() {
SharedSomething something;
}
这背后的理由是什么?是否有解决方法来实现所需的行为(跨一个块的类的共享成员)?