【发布时间】: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