我编写了一个简单的代码,它只在块内启动一个块和一个线程。内核创建一个48 KB的共享内存数组,填充流多处理器的整个共享内存。代码设置和取消设置共享内存中的各个位。我注意到,对于前32位,代码运行良好。然而,当我开始翻转剩余的比特时,什么都没有发生,比特保持不变。
有什么好主意吗?我是CUDA程序的新手。有任何理由相信这与内存库冲突有关吗?
发布于 2012-06-25 02:29:41
要回答您的问题,不,这与共享内存库冲突无关。银行间的冲突只影响绩效,而不影响正确性。因此,无论是否存在银行冲突,您都会得到相同的结果。
您应该将错误检查添加到主机代码中,并检查所有cuda函数返回的结果。我怀疑你在某个地方搞错了。一般来说,如果你想要一个更准确的答案,你应该贴上你的问题的代码。
https://stackoverflow.com/questions/11179426
复制相似问题