我无法运行包含 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。要检查,根据这个,我需要
$ 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
我看了一下find -name
helper_cuda.h。它有 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,我认为我赢了。我应该使用环境变量吗?