當我們需要配置某些容易出現相容性問題的環境時,虛拟環境(如Docker)可以說是一個很好的選擇。那麼怎麼使用Docker建構caffe-gpu環境呢?下面簡單說一下建構的步驟。
安裝nvidia-docker
因為我們要使用gpu,而原生的docker不能很好地解決這個問題,是以推薦使用nvidia-docker。
安裝nvidia-docker很簡單,隻需要
sudo apt install nvidia-docker
即可,并且用法和原版的docker幾乎一模一樣。
下載下傳caffe官方鏡像
通過指令
docker pull bvlc/caffe:gpu
即可下載下傳該鏡像了,當然了,如果你有下載下傳其它版本的caffe的需要,指令也是一樣的,找到這個鏡像,然後pull下來即可。
使用caffe-gpu鏡像
通過該鏡像建構一個容器的指令很簡單,即
nvidia-docker -ti -v path1:path2 bvlc/caffe:gpu /bin/bash
這裡的
-ti
即通過指令行的方式使用該容器,
-v path1:path2
的作用是将主機的某路徑
path1
挂載到容器内的某路徑
path2
下,這樣就能很友善地進行檔案的處理和交換了。
接下來就進入了容器下的指令行模式了。
進入容器後一些可能需要做的事
在容器裡,很多非必須的東西都是沒有的,例如vi, vim, pip等等,如果我們需要這些工具,需要先安裝這些工具。
- 首先更新源
,如果一次就順利更新,可以進行下一步,如果卡在某個源不動,可以嘗試apt update
,然後再更新試試rm -r /etc/apt/sources.list.d
- 如果上述方法還不行,可以嘗試更換源,要麼通過挂載的檔案夾轉移
,要麼通過sources.list
指令更新echo
内容。sources.list
- 更新完之後,便可以安裝上述工具了
apt install ...
測試caffe-gpu環境
- 首先你可以試試
檢視是否支援gpu,并且需要注意的一點是容器内有cuda但是沒有cudnn,是以需要自己下載下傳并移動到指定檔案夾下,才能正常使用cudnn加速。nvidia-smi
- 接下來進入caffe檔案夾下
,然後根據自己需要修改cd /opt/caffe
和Makefile.config
内相關的選項,如是否使用cudnn,是否使用opencv,是否編譯pycaffe,以及python版本和路徑等等…Makefile
- 在配置好了之後,直接
,然後make all -j8
,測試是否編譯正确make pycaffe
和make test -j8
make runtest -j8
- 待一切都OK後,便可以放心使用caffe-gpu啦!
退出及再進入環境
- 退出直接
即可或者關閉指令行視窗ctrl + d
- 再次進入停止的容器,首先通過
查詢所有的容器,找到自己想要啟動的容器id,然後docker ps -a
,然後docker start id
即可docker attach id