Win7_X64 + VS2013 + CUDA + Caffe 配置記錄

1. 背景

因項目需要,在Windows下安裝python, caffe等工具。安裝caffe需要在VS下編譯源碼得到。PC上安裝了NVIDIA GeForce 1080,於是打算裝下CUDA,久聞大名。

2. CUDA

2.1 CUDA & cuDNN

cuda官網下載:https://developer.nvidia.com/cuda-downloads
cudnn官網下載: https://developer.nvidia.com/cudnn

CUDA是什麼?我的理解是在NVIDIA GPU開發並行程序的一套SDK,包含一堆頭文件,庫文件等,然後我們將其路徑添加進VS配置中,包含其頭文件,即可調用API。(就好比OpenCV的模式)

cuDNN是什麼?CUDA中專注於DNN運算的加速組件,也是一堆頭文件、庫文件,下載後拷貝至CUDA安裝目錄下即可。

2.2 安裝問題

  1. 運行setup文件第一次,提示“Visual Studio Intergration”安裝失敗

解決:Visual Studio Intergration無法安裝導致失敗,安裝時不勾選跳過即可。其他組件未安裝皆因此導致。

參考:https://blog.csdn.net/hsqaihkl/article/details/80674912

  1. 安裝中顯示器黑屏

解決:主機已經安裝了顯卡驅動。重啓後運行cuda安裝文件,僅勾選第一項“CUDA”(去掉勾選VS Intergration),不要勾選後面三項,再安裝即可。後面三項中可以看到,也是安裝驅動這些。

  1. 如何檢測安裝成功?

解決:cmd中進入目錄“C:\ProgramData\NVIDIA_Corporation\CUDA Samples\v8.0\bin\win64\Debug”,不同主機路徑大致相同。然後cmd運行bandwidthTest.exe和deviceQuery.exe,若運行結果顯示pass即安裝成功。

  1. 如何將CUDA集成至VS?

解決:因爲在windows下使用VS的開發者太多了,CUDA對於VS集成做的工作很多,具體表現在簡單操作下就可以完成。在筆者PC上,因爲問題1和問題2跳過了CUDA中VS集成安裝,於是需要手動安裝。可以參看 https://blog.csdn.net/hsqaihkl/article/details/80674912 博文中所講,將CUDA的VS集成包下的文件,拷貝至對應路徑下即可。VS集成包中還包括2個msi安裝程序,均執行下。重啓VS後就可以出現:新建CUDA工程,筆者親測發現工程下自動生成kernel.cu源碼文件,相當於CUDA的HelloWorld,2個5維向量相加。VS的路徑配置中都弄好了,筆者指的是頭文件,依賴庫等這些。這樣CUDA就好像是VS下的另一個模板,和C++那種一樣的使用,很方便(而opencv則需要自己在工程配置裏添加頭文件、庫文件路徑,稍微麻煩點)

3. Caffe

3.1 caffe-windows源碼

caffe源碼下載:https://github.com/BVLC/caffe/tree/windows

雖然這個caffe源碼是BVLC下的,但卻並不是官方版本,由個人維護,因此頁面上一些鏈接都失效了。下載源碼到本地後解壓。

3.2 VS下編譯caffe

  • github頁面上有官方配置教程,但據說有錯。可以參考:https://www.cnblogs.com/jerrybaby/p/8385227.html

  • 需要安裝好cmake,VS 2015兩個工具。Cmake 並不直接建構出最終的軟件,而是產生標準的建構檔(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然後再依一般的建構方式使用。VS 2015作爲最終可執行文件和庫的編譯工具。

  • 在/scripts/build_win.cmd中對VS版本,python版本,CPU/GPU設置,然後運行該腳本。提示下載一個libraries_v140_x64_py35_1.1.0.tar.bz2文件放到對應位置,其中v140表示VS 2015。

  • 然後再次運行build_win.cmd腳本,這次開始做編譯,時間大概10分鐘。編譯完後,/scripts/build/下生成了Caffe.sln文件,這就是我們熟悉的VS工程解決方案文件。

  • /scripts/build/lib/Release/下存放着生成的.lib文件,如caffe.lib。

  • \scripts\build\tools\Release\下存放着生成的.exe文件,如caffe.exe,可以在cmd中運行該命令做train或者test任務。如 # caffe.exe train --solver=.\examples\mnist\lenet_solver.prototxt

  • \caffe-windows\python\下有一個caffe文件夾,這是caffe的python接口文件,將該文件夾全部拷貝至python安裝目錄下的site-packages目錄下,即可在python環境中導入caffe庫進行調用。

至此可得到原始的caffe 1.0.0版本。

3.3 測試caffe

以caffe自帶的example/mnist爲例測試。

可參看:https://blog.csdn.net/liuweiyuxiang/article/details/79532073

note:所有prototxt文件內部涉及的路徑要使用linux下的斜槓,在cmd運行時使用Windows下的反斜槓形式。開始全部改爲反斜槓結果錯誤,將solver.prototxt和train_test.prototxt中的路徑改爲斜槓好了。

3.4 擴展caffe

如果需要讓caffe支持自定義層,需要對caffe做出擴展。主要流程包括:

  • 修改caffe.proto文件,註冊層信息;
  • 將自定義層的實現代碼,頭文件拷貝至caffe目錄下,並添加至VS工程中;
  • 重新編譯caffe的VS工程;
  • 生成新的caffe.lib和_caffe.pyd。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章