Windows下编译CAFFE+CUDA, 运行时提示status == CUDNN_STATUS_SUCCESS错误

运行caffe训练时,提示如下错误:

F0122 14:42:15.990329  3128 cudnn_conv_layer.cpp:53] Check failed: status == CUDNN_STATUS_SUCCESS (6 vs. 0)  CUDNN_STATUS_ARCH_MISMATCH

*** 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

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页