1

我编写了一个简单的代码,它只启动一个块和块内的一个线程。内核创建一个 48 KB的共享内存阵列,填充流式多处理器的整个共享内存。代码设置和取消设置共享内存中的各个位。我注意到前 32 位代码运行良好。然而,当我开始翻转剩余的位时,什么也没有发生,位保持不变。

有什么想法吗?我是 CUDA 编程的新手。有没有理由相信这与内存库冲突有关?

4

1 回答 1

1

要回答您的问题,不,这与共享内存库冲突无关。银行冲突只影响性能,不影响正确性。因此,无论是否存在银行冲突,您都会得到相同的结果。

您应该在主机代码中添加错误检查并检查所有 cuda API 函数返回的结果。我怀疑您在某处遇到错误。一般来说,如果您想要更准确的答案,您应该发布带​​有问题的代码。

于 2012-06-25T02:29:41.260 回答