天天看點

ubuntu16.04下通過nvidia-docker建構caffe-gpu環境

當我們需要配置某些容易出現相容性問題的環境時,虛拟環境(如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等等,如果我們需要這些工具,需要先安裝這些工具。

  1. 首先更新源

    apt update

    ,如果一次就順利更新,可以進行下一步,如果卡在某個源不動,可以嘗試

    rm -r /etc/apt/sources.list.d

    ,然後再更新試試
  2. 如果上述方法還不行,可以嘗試更換源,要麼通過挂載的檔案夾轉移

    sources.list

    ,要麼通過

    echo

    指令更新

    sources.list

    内容。
  3. 更新完之後,便可以安裝上述工具了

    apt install ...

測試caffe-gpu環境

  1. 首先你可以試試

    nvidia-smi

    檢視是否支援gpu,并且需要注意的一點是容器内有cuda但是沒有cudnn,是以需要自己下載下傳并移動到指定檔案夾下,才能正常使用cudnn加速。
  2. 接下來進入caffe檔案夾下

    cd /opt/caffe

    ,然後根據自己需要修改

    Makefile.config

    Makefile

    内相關的選項,如是否使用cudnn,是否使用opencv,是否編譯pycaffe,以及python版本和路徑等等…
  3. 在配置好了之後,直接

    make all -j8

    ,然後

    make pycaffe

    ,測試是否編譯正确

    make test -j8

    make runtest -j8

  4. 待一切都OK後,便可以放心使用caffe-gpu啦!

退出及再進入環境

  1. 退出直接

    ctrl + d

    即可或者關閉指令行視窗
  2. 再次進入停止的容器,首先通過

    docker ps -a

    查詢所有的容器,找到自己想要啟動的容器id,然後

    docker start id

    ,然後

    docker attach id

    即可