Ubuntu16.04下nvidia驅動+nvidia-docker+cuda9+cudnn7安裝


一、宿主機安裝nvidia驅動

打開終端,先刪除舊的驅動:

sudo apt-get purge nvidia*

禁用自帶的 nouveau nvidia驅動

sudo gedit /etc/modprobe.d/blacklist.conf

看下Nouveau是否已經被禁用

lsmod | grep nouveau

如果已經沒有任何顯示說明不用禁用了,否則繼續下面操作

sudo vim /etc/modprobe.d/blacklist-nouveau.conf #創建一個文件(注:按一下i鍵,表示現在進行內容插入)

並添加如下內容:

blacklist nouveau

options nouveau modeset=0

注:退出可用兩個命令中任意一個:

按完esc鍵后,按shift+zz 或者

按完esc鍵后,輸入“:wq!”雙引號里面的內容

再更新一下:

sudo update-initramfs –u

確認下Nouveau是已經被禁用:

lsmod | grep nouveau

沒有輸出什么東西,說明已經成功關閉了。

關閉X-window服務:

Ctrl+Alt+F1切換到無桌面命令終端:這里lightdm是你自己的顯示管理器,也可能是gdm,kdm,到底是哪一個可以使用 cat /etc/X11/default-display-manager進行查看,然后修改,並關閉顯示管理器。這里下面幾小步建議用手機拍照,對着照片來做,因為你可能不太熟悉

sudo service lightdm stop

此時正式進入終端界面:

Login:用戶賬號

Password:用戶密碼

安裝:

cd /home/wlh/tmp # 導到你的下載的驅動放在哪里的地址

sudo sh NVIDIA-Linux-x86_64-387.12.run

按照如下步驟安裝:

(1)accept

(2)contiuned install

后面默認yes安裝就好了

啟動顯示器:(lightdm只是我的顯示管理器,你可能是前面的說的gdm)

sudo service lightdm start

然后按Ctrl+Alt+F7 進入到桌面進行操作

檢查是否成功

nvidia-smi

二、docker安裝

下載地址:

containerd.io_1.2.5-1_amd64.deb

docker-ce-cli_18.09.4_3-0_ubuntu-xenial_amd64.deb

docker-ce_18.09.4~3-0~ubuntu-xenial_amd64.deb

dpkg -i containerd.io_1.2.5-1_amd64.deb

dpkg -i docker-ce-cli_18.09.4_3-0_ubuntu-xenial_amd64.deb

dpkg -i docker-ce_18.09.4~3-0~ubuntu-xenial_amd64.deb

使用 docker 命令試試安裝成功沒有。

建立 docker 組:

$ sudo groupadd docker

將當前用戶加入 docker 組:

$ sudo usermod -aG docker $USER

三、nvidia docker安裝

If you have nvidia-docker 1.0 installed: we need to remove it and all existing GPU containers

docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f sudo apt-get purge -y nvidia-docker

Add the package repositories

curl -s -L  | \ sudo apt-key add - distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L $distribution/nvidia-docker.list | \ sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update

執行下載5個命令,下載5個包到當前目錄,拷貝這些包到服務器上。

apt download libnvidia-container1

apt download libnvidia-container-tools

apt download nvidia-container-runtime-hook

apt download nvidia-container-runtime

apt download nvidia-docker2

在服務器上執行,dpkg -i libnvidia nvidia 即可一次安裝這5個包。

Test nvidia-smi with the latest official CUDA image

docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi

四、安裝cuda9.0

首先去官網下載cuda9.0, 下載那個1.6G的.run文件,下載完畢就可以正式安裝了。

進入下載目錄,給文件添加運行權限:

chmod +x ./cuda_9.0.176_384.81_linux.run

運行安裝

sudo ./cuda_9.0.176_384.81_linux.run

啟動安裝程序,一直按空格到最后(可以選擇Ctrl+c跳過),不用擔心,到99%的時候,輸入accept接受條款

注意:第一個提醒你是否安裝驅動時,選“n”,其余都“y”

安裝完畢后就需要添加環境了,這步很重要!!!

gedit ~/.bashrc

把下面的內容添加到最后:

export CUDA_HOME=/usr/local/cuda export PATH=$PATH:$CUDA_HOME/bin export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

測試是否安裝成功

nvcc -V

五、安裝cudnn7

下載完直接解壓,解壓會出現一個cuda文件夾,里面有兩個文件include 和 lib64,把里面的文件copy到/usr/local/cuda/里面相應的目錄里。 如果你就在local下解壓的就不要移動了。只需要給文件加讀權限即可!

sudo chmod a+x /usr/local/cuda/include/cudnn.h sudo chmod a+x /usr/local/cuda/lib64/libcudnn*

然后更新網絡連接:

cd /usr/local/cuda/lib64/
sudo chmod +r libcudnn.so.7.0.5 # 自己查看.so的版本
sudo ln -sf libcudnn.so.7.0.5. libcudnn.so.7
sudo ln -sf libcudnn.so.7 libcudnn.so
sudo ldconfig

查看cudnn版本,檢查是否安裝好:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

六、加載打包的鏡像

$ docker load<jq_tensorflow1.8-cuda9.0-cudnn7-devel-ubuntu16.04.tar

七、啟動容器

docker run --runtime=nvidia -it -v /home/dock/Downloads:/usr/Downloads name /bin/bash

啟動報錯解決辦法:

Systemd drop-in file sudo mkdir -p /etc/systemd/system/docker.service.d sudo tee /etc/systemd/system/docker.service.d/override.conf <<EOF [Service] ExecStart= ExecStart=/usr/bin/dockerd --host=fd:// --add-runtime=nvidia=/usr/bin/nvidia-container-runtime EOF sudo systemctl daemon-reload sudo systemctl restart docker Daemon configuration file sudo tee /etc/docker/daemon.json <<EOF { "runtimes": { "nvidia": { "path": "/usr/bin/nvidia-container-runtime", "runtimeArgs": [] } } } EOF sudo pkill -SIGHUP dockerd 再去開啟鏡像,done。

八、配置容器內環境

容器后台運行退出命令:CTRL+p+q

后台容器重新進入命令:docker exec -it [container id] /bin/bash


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM