【发布时间】:2014-01-27 13:50:38
【问题描述】:
我无法运行包含 CUDA 代码的 python 脚本。它告诉我更新我的 CUDA SDK,但我认为问题是读取 cuda C 文件而不是同名的 cuda C++ 文件。有谁知道如何解决这个问题?
错误信息是:
MapSMtoCores undefined SM 3.5 is undefined (please update to the latest SDK)!
1.1...src/cudaconv2/filter_acts.cu(1179) : getLastCudaError() CUDA error :
filterActs: kernel execution failed : (9) invalid configuration argument.
我很确定我使用的是 cuda-5。要检查,根据this,我需要
$ cd $(SDK)
$ make
$ ./C/bin/linux/release/deviceQuery
我没有root权限,所以我不得不
$ mkdir ~/CUDA_SDK
$ cp -r /usr/local/cuda/gpu_sdk ~/CUDA_SDK
$ cd ~/CUDA_SDK
$ make
但是,这导致:
- 表单的许多警告
../../common/inc/helper_cuda.h:246:12: warning: command line option ‘-Wimplicit’ is valid for C/ObjC but not for C++
../../common/inc/helper_cuda.h:246:12: warning: enumeration value ‘FOO’ not handled in switch
- 表单有很多错误
../../common/inc/helper_cuda.h:252:14: error: ‘FOO’ was not declared in this scope
我在 helper_cuda.h 上查看了 find -name。它有2个版本:
./C/common/inc/helper_cuda.h,包含错误中提到的所有变量的 cuda C 文件的标头,
./CUDALibraries/common/inc/helper_cuda.h,cuda C++ 文件的标头,不包含错误中提到的任何变量。
我还查看了grep "is undefined (please update to the latest SDK)!" -r ~/CUDA_SDK 哪个文件可能正在输出导致这一切的错误(在顶部提到),并且引人注目的是,helper_cuda.h 是仅有的两个文件之一。
如果我可以读取 C++ helper_cuda.h 而不是 C helper_cuda.h,我想我赢了。我应该使用环境变量吗?
【问题讨论】:
-
你的机器里有没有计算能力3.5的设备? SDK 可能已设置为仅支持可用的内容。
-
您的
nvcc版本是什么?我猜它很旧,您需要将其更新到 5.0 或更高版本。 -
您好,我已经更新了我的问题,我认为不再是更新 SDK 的问题了!