利用caffe的MATLAB接口跑深度学习时,设置gpu模式:caffe.set_mode_gpu(),可以加速运算,然而在MATLAB 2016a/b中调用gpu时会出现了一个BUG,这个BUG会导致运算速度巨慢无比,正常gpu模式需要10s的可能要跑到10min,简直比cpu模式还慢,不能忍!
查找了半天最终在MathWorks 的Bug Reports(1439741)中发现解决办法,以下是bug描述及链接(需要注册):
https://www.mathworks.com/support/bugreports/search_results?utf8=%E2%9C%93&search_executed=1&keyword=&release_filter=Exists+in&release=264&selected_products=162&commit=
Search%20%20%E4%B8%8B%E9%9D%A2%E6%98%AFbug%E6%8F%8F%E8%BF%B0%EF%BC%9A
简而言之,就是对于最新的compute capability 6.0以上的显卡(gtx1080 gtx1070 gtx1060等),MATLAB 目前为止采用的cuDNN库(matlabroot\bin\win64\cudnn64_4.dll)支持的不好,有bug。需要下载下面这个文件,解压之后将matlabroot\bin\win64\cudnn64_4.dll替换掉:
从上到下分别对应着linux、windows的16a、16b版本,以下是MATLAB 2016aforwindows 的下载链接(需要登录MATLAB账户):
https://www.mathworks.com/support/bugreports/download/7370
替换之后,还需要设置一下环境变量:
重启一下电脑,跑一下MTCNN,速度是飞一般的快,至此,问题圆满解决。