【发布时间】:2012-03-26 20:55:57
【问题描述】:
我想用 nvcc 的 --ptxas-options=-v 标志编译我的 cuda 程序,以实现寄存器和内存使用,以便在 CUDA GPU 占用计算器中使用它们。
错误:标识符“atomicAdd”未定义
我在内核中使用了 atomicAdd。我怎么解决这个问题?
【问题讨论】:
我想用 nvcc 的 --ptxas-options=-v 标志编译我的 cuda 程序,以实现寄存器和内存使用,以便在 CUDA GPU 占用计算器中使用它们。
错误:标识符“atomicAdd”未定义
我在内核中使用了 atomicAdd。我怎么解决这个问题?
【问题讨论】:
并非所有 GPU 代都支持原子操作,nvcc 的默认目标是 sm_10。假设您的 GPU 支持原子操作(请参阅CUDA C Programming Guide 了解您的 GPU 支持哪些功能的详细信息,附录 F.1),那么您将需要针对该架构,例如-gencode arch=compute_20,code=\'compute_20,sm_20\' 用于 Fermi 和更新版本。有关 gencode 选项的更多信息,请参阅NVCC manual。
顺便说一句,添加--ptxas-options=-v 标志真的会改变行为吗?如果不是,那么您的问题标题具有误导性。
【讨论】: