基本環境
建議嚴格按照版本來
- Windows 10
- Visual Studio 2013
- Matlab R2016b
- Anaconda
- CUDA 8.0.44
- cuDNN v4
1. 安裝CUDA 8.0
安裝完后,程序會自動地添加一個CUDA_PATH的環境變量:
2. 下載cuDNN
下載前需要在Developer網上注冊一個號,簡單填一填基本材料即可。
下完就是一個壓縮包,也沒辦法安裝的,壓縮包里面有三個文件,分別是bin,include,lib,把它們解壓,得到一個叫cuda的文件夾。
3. 從Microsoft的Github中下載Caffe的源碼
注意了,一般來講Windows配置Caffe是比較困難的,原因就在於caffe包不能去正常的官網下載,這個微軟caffe真是給我們省了不少的麻煩,所以,強調一下,去這個鏈接下載Caffe源碼的壓縮包!
https://github.com/Microsoft/caffe
下載完后,解壓文件,得到一個叫caffe-master的文件夾。
4. 安裝Caffe
4.1 打開caffe-master文件夾,然后看到一個windows文件夾,然后繼續打開windows文件夾,看到里面一個CommonSettings.props.example文件,復制出來一份,並改名字為CommonSettings.props。
4.2 用Visual Studio 2013打開windows文件夾下的Caffe.sln,檢查解決方案中的項目,重點看libcaffe和test_all是否成功地被導入。
如果這兩個沒有成功導入,原因是Visual Studio 2013的安裝路徑中缺少CUDA 8.0.props(或者是你的版本號在CommonSettings.props寫錯了),我的是這個路徑
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations
其實CUDA 8.0.props就在cuda的安裝目錄下,我的路徑是
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\extras\visual_studio_integration\MSBuildExtensions
只要拷貝到
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations
就行,那么libcaffe和testall就都沒問題了!(以上解決方法屬於引用,博主實際是導入了這兩個項的。)
4.3 設置libcaffe為啟動項目
方法是右鍵libcaffe,選擇設為啟動項目。
4.4 打開解決方案中的CommenSetting.probs,在CuDnnPath那里把存放解壓的cudnn出來的文件夾cuda的目錄路徑放到其中去。(比如我這里是裝在F:\Windows+Caffe下面)----------------這一步如果把CuDnn里cuda的文件已經放到Cuda安裝目錄下的話,就不要再添加路徑了,否則最后會報錯.
也就是說從cudnn-7.5-windows7-x64-v5.1-rc.zip解壓出cuda文件夾,假設位置在F:\Windows+Caffe下,那么CuDnnPath設置為F:\Windows+Caffe。這是因為程序中會自動給你加上cuda,例如(CuDnnPath)\cuda\lib\x64;$(LibraryPath)。因此你需要做的就只是指定它的上級目錄。
4.5 解決方案配置設為release
4.6 選擇菜單中的DEBUG->libcaffe Properties...
此處需要修改兩個地方,分別是配置屬性中的常規和C/C++中的常規,如下圖所示
另外,在cudnn.hpp文件里找到下面代碼,加上版本控制,GUDA版本太高會導致很多錯誤.
template <typename Dtype> inline void setConvolutionDesc(cudnnConvolutionDescriptor_t* conv, cudnnTensorDescriptor_t bottom, cudnnFilterDescriptor_t filter, int pad_h, int pad_w, int stride_h, int stride_w) { //CUDNN_CHECK(cudnnSetConvolution2dDescriptor(*conv, // pad_h, pad_w, stride_h, stride_w, 1, 1, CUDNN_CROSS_CORRELATION)); #if CUDNN_VERSION_MIN(6, 0, 0)//版本控制 CUDNN_CHECK(cudnnSetConvolution2dDescriptor(*conv, pad_h, pad_w, stride_h, stride_w, 1, 1, CUDNN_CROSS_CORRELATION, dataType<Dtype>::type)); #else CUDNN_CHECK(cudnnSetConvolution2dDescriptor(*conv, pad_h, pad_w, stride_h, stride_w, 1, 1, CUDNN_CROSS_CORRELATION)); #endif }
4.7 開始編譯
漫長的等待… … …
直到編譯成功,lucky boy,我這兒跳出這個提示,暫時沒有去理他,反正沒有出錯就先這樣吧
4.8 查看戰利品
caffe_master文件夾下應該生成了一個名為Build的文件夾,以后編譯的成功和運行需要的文件都會存放在..\build\X64\Relase下面。
至此,說明’libcaffe’已經成功地編譯完啦。
5. 編譯caffe
在Visual Studio 2013的解決方案上面右擊選擇屬性(properties)
可以看到原來的是單項目啟動,編譯libcaffe,那么現在我們選擇編譯caffe,也可以選擇更多的任務來編譯。
開始編譯,漫長的等待… … …后,也就編譯成功啦!可以去看看戰利品。
Windows10下安裝配置Caffe並支持GPU加速
本文用到的安裝材料:百度網盤
原文是在windows7系統配置環境,matlab2016a,cuda是7.5.
我的差異;win10,matlab2016b,cuda8.0.結果是成功的