【问题标题】:nvcc --ptxas-options=-v (register and memory usage) ERRORnvcc --ptxas-options=-v(寄存器和内存使用)错误
【发布时间】:2012-03-26 20:55:57
【问题描述】:

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

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

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

【问题讨论】:

    标签: cuda nvcc


    【解决方案1】:

    并非所有 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 标志真的会改变行为吗?如果不是,那么您的问题标题具有误导性。

    【讨论】:

    • 我使用的 GPU 支持原子操作。我已经通过 nvcc -arch=sm_20 test.cu -o test 编译了我的程序并得到了正确的结果。我只想使用上述选项来获取我的程序的注册和共享内存使用情况。
    • 那么你的问题解决了吗?换句话说,您不再收到错误消息了吗?
    • 不,我的问题还没有解决。我仍然对提到的选项有疑问。我无法使用上述选项来编译我的程序。
    • 您需要同时使用 -arch=sm_20 和 --ptxas-options=-v 。如果这不起作用,请发布您的完整命令行...
    • 你的意思是当你同时有两个选项时问题就解决了?
    猜你喜欢
    • 2019-10-24
    • 2014-09-02
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2018-02-07
    • 2011-12-31
    相关资源
    最近更新 更多