运行caffe训练时,提示如下错误:
*** Check failure stack trace: ***
提示此错误的原因是:项目默认是开启cudnn的,而CUDNN要求GPU CUDA Capability 不小于3.0(查看CUDA capablity的方法:在CUDA的安装目录下有CUDA Samples ,在对应的1_Utilities 文件夹下面有个 deviceQuery 程序,运行之后应该就会得到显卡的相关信息了。也可以访问https://developer.nvidia.com/cuda-gpus), 对于不满足条件的GPU,需要在项目中关闭CUDNN。preprocessor definitions 里面删除USE_CUDNN。
解决办法:重新编译caffe,另外在编译选项中,去掉USE_CUDNN
原来的编译选项为:
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>../../3rdparty/include;../../src;../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_VARIADIC_MAX=10;WIN32;NDEBUG;_CONSOLE;USE_CUDNN;USE_OPENCV;USE_LEVELDB;USE_LMDB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
将红色部分的编译选项删掉,重新编译运行即可。或者直接在项目的属性中,找到C/C++选项卡的预处理器定义中,将USE_CUDNN删除。3个项目都要删。
如果提示的是: invalid device function,则需要修改CUDA C/C++选项下的Device,栏目Code generation添上compute_20,sm_20。另外要注意检查NVIDIA显卡的驱动是否与CUDA的版本匹配,不匹配就尽量更新NVIDIA的显卡驱动 http://www.nvidia.cn/Download/index.aspx?lang=cn
http://blog.youkuaiyun.com/eagelangel/article/details/50562065