在docker-ubuntu18.04 上安裝 cuda 和 cudnn


在docker-ubuntu18.04 上安裝 cuda 和 cudnn

其實是安裝 nvidia-docker2 然后 pull 已經 安裝好 cuda 和 cudnn 的 ubuntu18.04的鏡像

環境: Ubuntu18.04 NVIDIA driver build-essential

  • 在主機上安裝 NVIDIA driver 官方文檔

    • 可執行文件安裝

      驅動版本地址

      BASE_URL=https://us.download.nvidia.com/tesla
      DRIVER_VERSION=450.80.02(需要去選擇合適的驅動版本)
      curl -fSsl -O $BASE_URL/$DRIVER_VERSION/NVIDIA-Linux-x86_64-$DRIVER_VERSION.run
      

      等待下載完成

      sudo sh NVIDIA-Linux-x86_64-$DRIVER_VERSION.run

    • apt 安裝

      安裝linux 內核 的頭文件

      sudo apt-get install linux-headers-$(uname -r)

      確保CUDA網絡存儲庫(CUDA network repository)上的包優先於規范存儲庫(Canonical repository)

      distribution=$(. /etc/os-release;echo $ID$VERSION_ID | sed -e 's/\.//g')
      sudo wget https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/cuda-$distribution.pin
      sudo mv cuda-$distribution.pin /etc/apt/preferences.d/cuda-repository-pin-600
      

      安裝 GPG公鑰(public GPG key)

      sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/7fa2af80.pub
      

      安裝 cuda源倉庫(CUDA network repository)

      echo "deb http://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64 /" | sudo tee /etc/apt/sources.list.d/cuda.list
      
      sudo apt-get update
      sudo apt-get -y install cuda-drivers
      
  • docker:中安裝cuda 和 cudnn

    • Setting up NVIDIA Container Toolkit

      安裝nvidia-docker2 替換 docker,docker不用卸載。
      過程中出現的基本都是網絡問題,把curl里面的 -s 去掉 可以看到原因。大多數情況下是DNS解析不了主機地址,訪問nvidia被拒絕。能夠用代理話可能就不會出現這些,沒有代理的話嘗試修改 DNS ,瀏覽器可以訪問 https://nvidia.github.io/nvidia-docker 基本就不會有問題了。

      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
      

      To get access to experimental features such as CUDA on WSL or the new MIG capability on A100, you may want to add the experimental branch to the repository listing:

      curl -s -L https://nvidia.github.io/nvidia-container-runtime/experimental/$distribution/nvidia-container-runtime.list | sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list
      

      Install the nvidia-docker2 package (and dependencies) after updating the package listing:

      sudo apt-get update
      sudo apt-get install -y nvidia-docker2
      

      按y切換配置,將舊的docker切換為可以調用GPU的nvidia-docker2

      Restart the Docker daemon to complete the installation after setting the default runtime:

      sudo systemctl restart docker

      dockerhub
      pull所需要cuda 和 cudnn 版本

      例如:我需要的環境是 cuda10.0 cudnn7 ubunutu18.04

      docker pull nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04

      進入鏡像后 nvidia-smi 顯示和下面一樣就可以了

      不知道自己版本測試用的話直接執行下面的命令就好了

      At this point, a working setup can be tested by running a base CUDA container:

      sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi

      This should result in a console output shown below:

      +-----------------------------------------------------------------------------+
      | NVIDIA-SMI 450.51.06    Driver Version: 450.51.06    CUDA Version: 11.0     |
      |-------------------------------+----------------------+----------------------+
      | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
      | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
      |                               |                      |               MIG M. |
      |===============================+======================+======================|
      |   0  Tesla T4            On   | 00000000:00:1E.0 Off |                    0 |
      | N/A   34C    P8     9W /  70W |      0MiB / 15109MiB |      0%      Default |
      |                               |                      |                  N/A |
      +-------------------------------+----------------------+----------------------+
      
      +-----------------------------------------------------------------------------+
      | Processes:                                                                  |
      |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
      |        ID   ID                                                   Usage      |
      |=============================================================================|
      |  No running processes found                                                 |
      +-----------------------------------------------------------------------------+
      
      


免責聲明!

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



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