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