天天看點

安裝NVIDIA 驅動及nvidia-docker環境

本教程是在NVIDIA顯示卡的機器上配置深度學習環境,原理是利用NVIDIA-docker。

配置nvidia-docker需要安裝NVIDIA驅動和docker 可參考官網

1. 安裝NVIDIA驅動

1.1 添加nvidiarepository
sudo add-apt-repository ppa:graphics-drivers/ppa 
sudo apt update
           

備注:如果添加報錯檢視解決方法

1.2 選擇驅動版本并安裝
ubuntu-drivers devices
           

顯示可用的驅動版本,例如:

driver   : nvidia-410 - third-party free
driver   : nvidia-415 - third-party free
driver   : nvidia-418 - third-party free
driver   : nvidia-384 - distro non-free
driver   : nvidia-430 - third-party free recommended
driver   : xserver-xorg-video-nouveau - distro free    builtin
           

如果要安裝430版本,就要如下指令:

sudo apt install nvidia-430
           

上面顯示的驅動可能會有變化,例如這樣(中間多了“driver字樣”)

driver   : nvidia-driver-410 - third-party free
driver   : nvidia-driver-415 - third-party free
driver   : nvidia-driver-440 - third-party free recommended
driver   : nvidia-driver-430 - third-party free
driver   : nvidia-driver-390 - third-party free
driver   : nvidia-driver-435 - third-party free
driver   : xserver-xorg-video-nouveau - distro free builtin
           

依然安裝對應的驅動,例如:

sudo apt install nvidia-driver-430
           

注意:如果在 BIOS 中将 secure boot 設定為 on,在上述安裝過程中可能出現設定 secure boot 密碼的相關提示。如果在安全性方面要求不是很苛刻,可以考慮将 secure boot 設定為 off.

1.3 安裝完重新開機

檢視驅動是否安裝成功:

nvidia-smi
           

備注:如果提示nvidia-smi找不到,按照上面的操作将secure boot 設定為 off.

2. docker安裝

2.1 解除安裝舊版本

Docker 的舊版本被稱為 docker,docker.io 或 docker-engine 。如果已安裝,請解除安裝它們:

sudo apt-get remove docker docker-engine docker.io containerd runc
           

2.2 使用Docker倉庫進行安裝

在新主機上首次安裝 Docker Engine-Community 之前,需要設定 Docker 倉庫。之後,您可以從倉庫安裝和更新 Docker 。

A. 設定倉庫

更新apt包索引。

sudo apt-get update
           

安裝apt依賴包,用于通過HTTPS來擷取倉庫:

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
           

添加Docker的官方GPG秘鑰:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
           

使用以下指令設定穩定版本倉庫

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
           

B. 安裝 Docker Engine-Community

更新apt包索引

sudo apt-get update
           

安裝最新版本的 Docker Engine-Community 和 containerd ,或者轉到下一步安裝特定版本:

sudo apt-get install docker-ce docker-ce-cli containerd.io
           

要安裝特定版本的 Docker Engine-Community,請在倉庫中列出可用版本,然後選擇一種安裝。列出您的倉庫中可用的版本:

$ apt-cache madison docker-ce
           
docker-ce | 5:18.09.1~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
docker-ce | 5:18.09.0~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
docker-ce | 18.06.1~ce~3-0~ubuntu       | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
docker-ce | 18.06.0~ce~3-0~ubuntu       | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
           

使用第二列中的版本字元串安裝特定版本,例如 5:18.09.13-0ubuntu-xenial

sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
           

3. 配置nvidia-docker

Ubuntu 16.04/18.04, Debian Jessie/Stretch/Buster

# Add the package repositories
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
$ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

$ sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
$ sudo systemctl restart docker
           

Upgrading with nvidia-docker2 (Deprecated)

# On debian based distributions: Ubuntu / Debian
$ sudo apt-get update
$ sudo apt-get --only-upgrade install docker-ce nvidia-docker2 #注意執行是否忽略的nvidiadocker2
$ sudo systemctl restart docker

# All of the following options will continue working
$ sudo docker run --gpus all nvidia/cuda:9.0-base nvidia-smi
$ sudo docker run --runtime nvidia nvidia/cuda:9.0-base nvidia-smi
$ sudo nvidia-docker run nvidia/cuda:9.0-base nvidia-smi
           

測試:

nvidia-docker
           

轉載請注明出處:https://blog.csdn.net/tbl1234567.作者:陶表犁

繼續閱讀