1

我想用 nvcc 的 --ptxas-options=-v 标志编译我的 cuda 程序,以实现寄存器和内存使用,以便在 CUDA GPU 占用计算器中使用它们。

错误:标识符“atomicAdd”未定义

我在内核中使用了 atomicAdd。我怎么解决这个问题?

4

1 回答 1

3

并非所有 GPU 代都支持原子操作,nvcc 的默认目标是 sm_10。假设您的 GPU 支持原子操作(有关您的 GPU 支持哪些功能的详细信息,请参阅CUDA C 编程指南,附录 F.1),那么您将需要针对该架构,例如-gencode arch=compute_20,code=\'compute_20,sm_20\'Fermi 和更新的架构。有关 gencode 选项的更多信息,请参阅NVCC 手册

顺便说一句,添加--ptxas-options=-v标志真的会改变行为吗?如果不是,那么您的问题的标题具有误导性。

于 2012-03-26T11:19:14.003 回答