参考了谷歌论坛
=================================================================
简单讲就是GPU的加速性能不够,CUDNN只支持CUDA Capability 3.0以上的GPU加速
==================================================================
在实验室台式机上(I7+GeForce GTX TITAN Black With CUDA CAPABILITY 3.5)成功配置caffe并测试数据无误、训练数据也开始以后,也打算笔记本上(I5+GEFORCE GT540M--With CUDA CAPABILITY 2.1)配上caffe.
于是安装了cuda和cudnn加速,make和make test都过了,而make runtest时报错,大概是这样滴错误
<pre name="code" class="plain">[----------] 6 tests from CuDNNConvolutionLayerTest/1, where TypeParam = double
[ RUN ] CuDNNConvolutionLayerTest/1.TestSimpleConvolutionGroupCuDNN
F1014 08:55:30.083176 23568 cudnn_conv_layer.cpp:30] Check failed: status == CUDNN_STATUS_SUCCESS (6 vs. 0) CUDNN_STATUS_ARCH_MISMATCH
*** Check failure stack trace: ***
@ 0x2b082d0a8daa (unknown)
@ 0x2b082d0a8ce4 (unknown)
@ 0x2b082d0a86e6 (unknown)
@ 0x2b082d0ab687 (unknown)
@ 0x739689 caffe::CuDNNConvolutionLayer<>::LayerSetUp()
@ 0x42c1f0 caffe::Layer<>::SetUp()
@ 0x49d776 caffe::CuDNNConvolutionLayerTest_TestSimpleConvolutionGroupCuDNN_Test<>::TestBody()
@ 0x68d613 testing::internal::HandleExceptionsInMethodIfSupported<>()
@ 0x6840b7 testing::Test::Run()
@ 0x68415e testing::TestInfo::Run()
@ 0x684265 testing::TestCase::Run()
@ 0x6875a8 testing::internal::UnitTestImpl::RunAllTests()
@ 0x687837 testing::UnitTest::Run()
@ 0x41e9d0 main
@ 0x2b0831cf1ec5 (unknown)
@ 0x4261c7 (unknown)
@ (nil) (unknown)
make: *** [runtest] Aborted (core dumped) caffe::NetTest_TestReshape_Test<>::TestBody()
@ 0x68d613 testing::internal::HandleExceptionsInMethodIfSupported<>()
@ 0x6840b7 testing::Test::Run()
@ 0x68415e testing::TestInfo::Run()
@ 0x684265 testing::TestCase::Run()
@ 0x6875a8 testing::internal::UnitTestImpl::RunAllTests()
@ 0x687837 testing::UnitTest::Run()
@ 0x41e9d0 main
@ 0x2b2a9f778ec5 (unknown)
@ 0x4261c7 (unknown)
@ (nil) (unknown)
make: *** [runtest] Aborted (core dumped)
在内网找了半天无果,终于在墙外找到了解决办法,不,是问题所在。 因为笔记本上的GT540M的CUDA Capability是2.1,而官方的cudnn加速是不支持3.0以下的版本的,因此只能在Makefile.config中注释掉USE_CUDNN这行,重新执行以下
make clean
make all -j4
make test -j4
make runtest -j4