caffe matlab無法使用gpu

2021-07-27 12:43:57 字數 4551 閱讀 4391

常見問題:1.版本不相容。我用的是vs2013+cuda7.5+cudnn的v5版+matlab2016a,如果選用的是microsoft的caffe,是可以用cudnn的v5版的。但cuda8.0尚不被支援,如果你的顯示卡是最新的gtx10系列,如果cuda7.5不能驅動的話,就只能再等等了。所以首先請先確保你用的各種元件的版本不高於以上列出的版本。3.commonsettings.props的配置.問題往往出現在這裡:

1

<?xml version="

1.0" encoding="

utf-8

"?>2"

4.0" xmlns="

">3"

propertysheets

" />4"

usermacros

">

5$(solutiondir)..build67

false

8true

97.5

1013

false

1416

true

1718

1921

compute_30,sm_30;compute_35,sm_35;compute_52,sm_52

2223

24c:cudnn

25$(solutiondir)scripts

2627

"'$(cpuonlybuild)'=='false'

">

28cublas.lib;cuda.lib;curand.lib;cudart.lib

293031"

'$(usecudnn)'=='true'

">

32cudnn.lib;$(cudadependencies)

3334

"'$(usecudnn)'=='true' and $(cudnnpath)!=''

">

35$(cudnnpath)cudalibx64;$(librarypath)

36$(cudnnpath)cudainclude;$(includepath)

3738

3940

$(builddir)$(platform)$(configuration)

41$(builddir)int$(projectname)$(platform)$(configuration)

4243

44$(outdir);$(cuda_path)lib$(platform);$(librarypath)

45$(solutiondir)..include;$(solutiondir)..includecaffeproto;$(cuda_path)include;$(includepath)

4647

"'$(pythonsupport)'=='true'

">

48c:miniconda2

49$(pythondir)libs;$(librarypath)

50$(pythondir)include;$(includepath)

5152

"'$(matlabsupport)'=='true'

">

53c:program filesmatlabr2016a

54$(matlabdir)externlibwin64microsoft;$(librarypath)

55$(matlabdir)externinclude;$(matlabdir)toolboxdistcompgpuexterninclude;$(includepath)

5657

"'$(cpuonlybuild)'=='true'

">

5859

cpu_only;%(preprocessordefinitions)

606162"

'$(usecudnn)'=='true'

">

6364

use_cudnn;%(preprocessordefinitions)

6566

67use_cudnn

686970"

'$(pythonsupport)'=='true'

">

7172

with_python_layer;boost_python_static_lib;%(preprocessordefinitions)

737475"

'$(matlabsupport)'=='true'

">

7677

matlab_mex_file;%(preprocessordefinitions)

7879

8081

82false

83true

84_scl_secure_no_warnings;use_opencv;use_leveldb;use_lmdb;%(preprocessordefinitions)

85true

868788"

'$(configuration)|$(platform)'=='release|x64'

">

8990

full

91ndebug;%(preprocessordefinitions)

92multithreadeddll

93true

9495

96true

97true

98uselinktimecodegeneration

99true

100101

102"

'$(configuration)|$(platform)'=='debug|x64'

">

103104

disabled

105_debug;%(preprocessordefinitions)

106multithreadeddebugdll

107108

109true

110111

112

請保證第7,8,16行

如上所示;在第24行新增你解壓的cudnn的路徑,路徑下的資料夾應該是cuda;第53行新增你所用的的matlab的安裝路徑。

3.1如果你用的是microsoft的caffe,在用vs2013生成matcaffe的解決方案時,最後出現了錯誤:「無法開啟包括檔案: 「gpu/mxgpuarray.h」: no such file or directory」那麼請在第55行,新增路徑:

$(matlabdir)toolboxdistcompgpuexterninclude;
當然你的matlab版本不要低於2012b,否則這個目錄下可能什麼都沒有;3.2在系統變數和matlab中新增分別新增了路徑.但在用matlab測試caffe的樣例bvlc_reference_caffenet.caffemodel時出現了錯誤:
未定義函式或變數 '

caffe_'。

出錯 caffe.set_mode_cpu (line 5)

caffe_(

'set_mode_cpu');

出錯 classification_demo (line 71)

caffe.set_mode_cpu();

可以通過在classification_demo.m檔案的59行修改
addpath('

..');

為:
addpath('../../build/x64/release/matcaffe');
解決.3.2如果在啟用gpu時進行測試時,即執行
[scores, maxlabel] = classification_demo(im, 1)
時,matlab突然crash出錯,變成了已停止工作,並退出. 顯然這和gpu配置有關,很有可能就是顯示卡的cuda compute capability版本未被支援導致.

請開啟matlab,在命令列中鍵入gpudevice回車,如果出現錯誤:

錯誤使用 gpudevice (line 26

)an unexpected error occurred during cuda execution. the cuda error was:

cannot

setwhile device is active in

this process

那麼請重啟matlab,重新執行gpudevice.直到輸出如(否則請顯示卡驅動):
cudadevice (具有屬性):

name: 'geforce gtx ****'

index: 1

computecapability: 'x.x'

supportsdouble: 1

driverversion: 8

toolkitversion: 7.5000

...

檢視第三行屬性

computecapability, 假設

是x.x,就去掉小數點,在21行中加入"compute_xx,sm_xx;"(如compute_30,sm_30,如果x.x小於3.0就無法支援gpu了).然後儲存,

在用vs2013重新生成matcaffe,要先生成libcaffe,因為這裡有前者需要的一些環境,解決方案要配置為release.

配置caffe matlab 中遇到的坑

caffe下cnn除錯中碰到check failed readprotofrombinaryfile param file,param failed to parse netparameter 附上原文 另外在編譯matcaffe的時候,不要隨便使用make clean,不然就會出現.build t...

VVDocumenter無法使用

專案git 他的部落格 今天突然發現不能用,之前我是用alcatraz安裝,可能是因為新的xcode原因,官網也不提倡使用alcatraz安裝了,因為很多新的特性未能及時更新。所以我把整個vvdocumenter xcode專案clone下來,用xocde build一下,重新開啟xcode。就可以...

openstack VNC無法使用

一 問題現象 二 問題分析 分析日誌 openstack nova novncproxy並沒有啟動 手動執行啟動指令碼 usr bin nova novncproxy web usr share novnc root controller0 usr bin nova novncproxy web u...