【问题标题】:Trouble compiling/running CUDA code involving dynamic parallelism编译/运行涉及动态并行的 CUDA 代码时遇到问题
【发布时间】:2016-06-20 15:25:23
【问题描述】:

我正在尝试对 CUDA 使用动态并行,但我无法完成编译步骤。

我正在使用 Compute Capability 3.5 和 CUDA 7.5 版的 GPU。

根据我使用的编译命令中的开关,我收到不同的错误消息,但使用 documentation

  • 我到达了导致编译成功的一行:

    nvcc -arch=compute_35 -rdc=true cudaDynamic.cu -o cudaDynamic.out -lcudadevrt
    

    但是当程序启动时,所有程序都失败了。和 CUDA-memcheck,对于每次调用 API 函数,我都会收到相同的错误 留言:

    ========= CUDA-MEMCHECK
    ========= Program hit cudaErrorUnknown (error 30) due to "unknown error" on CUDA API call to ...
    
  • 我也试过这条线(取自 CUDA 动态示例 makefile):

    nvcc -ccbin g++ -I../../common/inc -m64 -dc -gencode arch=compute_35,code=compute_35 -o cudaDynamic.out -c cudaDynamic.cu
    

    但在执行时,我得到:

    cudaDynamic.out: Permission denied
    

我想了解如何正确编译 CUDA 动态代码,因为到目前为止我尝试过的所有其他编译行都失败了。

【问题讨论】:

  • 代码运行失败并不意味着你的编译命令行不正确。一般来说,您的命令行看起来是正确的。您的错误可能是您的代码的任何问题。您确定您的机器上正确安装了 CUDA 吗?其他 CUDA 代码(例如 CUDA 示例)是否正确运行?如果这是在 Windows 上,您是否可能遇到 WDDM 超时?您的问题中没有足够的信息来诊断实际出了什么问题。
  • CUDA已经正确安装到机器上:我一直在研究非动态CUDA。我在 Ubuntu 上运行。我尝试编译示例 cdpSimplePrint,但出现以下错误: make: /usr/local/cuda/bin/nvcc: Command not found Makefile:196: recipe for target 'cdpSimplePrint.o' failed make: *** [ cdpSimplePrint.o] 错误 127
  • 在你的机器上运行which nvcc的结果是什么?
  • 我尝试编译 cdpSimplePrint 动态示例,但编译失败。我在 Tesla K40 上运行,这是机器上唯一的 GPU。
  • $ 哪个 nvcc /usr/bin/nvcc

标签: cuda dynamic-parallelism


【解决方案1】:

我通过完全重新安装 CUDA 解决了这个问题。

我现在能够编译 CUDA 示例和我自己的代码。

【讨论】:

    猜你喜欢
    • 2020-08-17
    • 1970-01-01
    • 2022-01-12
    • 2014-11-08
    • 1970-01-01
    • 2021-11-07
    • 1970-01-01
    • 2021-01-01
    • 1970-01-01
    相关资源
    最近更新 更多