我无法运行包装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
我在helper_cuda.h上与 find -name
一起看。它存在2个版本: ./C/common/inc/helper_cuda.h
,CUDA C文件的标头,包含错误中提到的所有变量, ./CUDALibraries/common/inc/helper_cuda.h
,CUDA C 文件的标头,其中包含错误中提到的变量。
i还使用了grep "is undefined (please update to the latest SDK)!" -r ~/CUDA_SDK
的外观,该文件可能会输出该错误(在顶部提到),这开始了这一切,令人惊讶的是,Helper_cuda.h是仅有的两个文件之一。
如果我可以让c helper_cuda.h读取而不是c helper_cuda.h,我认为我赢了。我可以使用环境变量吗?
有两个不同的问题。第一个问题是,运行时成功构建的CUDA应用程序失败,第二个是由于无效的构建环境而构建CUDA应用程序失败。
消息,
当使用CUDA样本框架(Helper_cuda.h)的应用程序(通常是CUDA样本之一)时,mapsmtocores未定义的SM 3.5不确定(请更新到最新的SDK)!
是输出没有更新以涵盖该计算功能。
如果安装了CUDA 5,则该应用似乎是使用SDK的较早版本构建的。
第二条消息,
.. src/cudaconv2/filter_acts.cu(1179):getlastCudaError()cuda错误: 过滤器:内核执行失败:(9)无效配置参数。
可能是由于该应用程序未检测到第一个错误而引起的,然后继续尝试启动具有打印第一个错误的函数返回的函数的内核。
其他错误是构建错误。这些是由将CUDA SDK复制到您的主文件夹并尝试从那里构建而不更新CUDA环境变量引起的。
在其本地位置以外构建CUDA样品可能是很多工作,因此不必为了使"过滤器行为"应用程序工作。要使使用Compute功能3.5设备在机器上工作的"过滤器行为",您将需要使用CUDA 5.0或更新的重建或对其进行重建,或者将其修改为不再依赖CUDA样本框架(这会更好)。p>因此,您应该首先确定是否有实际工作的CUDA 5构建环境。如果您没有这个,那么具有root访问的人应该修复它。在有效的构建环境中,您应该能够重建应用程序。