編碼的世界 / 優質文選 / 財富

2021年 Windows10 環境下使用WSL和Docker 配置深度學習環境- 可使用任意版本的 Ubuntu+CUDA image 以及踩坑...


2022年5月03日
-   

提示:文章寫完後,目錄可以自動生成,如何生成可參考右邊的幫助文檔
Windows10 環境下使用WSL2和Docker 配置深度學習環境以及踩坑記錄 (使用 Ubuntu 18.04+ Cuda)

配置深度學習環境以及踩坑記錄 (使用 Ubuntu 18.04+ Cuda))
前言
衷心地感歎有了Docker容器後,世界變得越來越好。以往需要費時費力花上幾十分鐘配置的深度學習環境,現在只需要十分鐘不到在任何平台上都可以得到。除了裝雙系統以外,最近微軟WSL2也支持在虛擬器裏面使用GPU加速了。 先看看這個nvidia官網的圖,生動地描述了Host和深度學習環境的關系。 圖片來自 https://github.com/NVIDIA/nvidia-docker
本文記錄了在windows10下如何配置Docker來使用任意版本的Ubuntu+CUDA 環境。本文參考下列資料,小夥伴也可以直接看1來進行配置,2是nvidia官方的配置方法,比較全面;按照3進行配置是無法成功使用GPU來跑程序,因為沒有加入windows insider program。
參考資料: 1https://www.youtube.com/watch?v=mWd9Ww9gpEM&ab_channel=JeffHeaton 2https://docs.nvidia.com/cuda/wsl-user-guide/index.html 3https://medium.com/@meng.chiang/%E5%9C%A8windows-10%E4%B8%AD%E4%BD%BF%E7%94%A8nvidia-docker-d1a369a9ac7a 4https://docs.microsoft.com/en-us/windows/wsl/install-win10 5https://dilililabs.com/en/blog/2021/01/26/deploying-docker-with-gpu-support-on-windows-subsystem-for-linux/
一、在Windows10 上配置WSL2

1. 加入 Windows Insider Program 安裝WSL2(一定需要加入,不然不能訪問gpu資源)


  • 1.1 加入 Windows Insider Program
    • Setting - Updata& Security - Windows insider program - Link an account - Dev channel
  • 1.2 然後選擇安裝更新到新的開發版本windows。 build version 需要 20145以上
  • 1.3 安裝WSL2和Ubuntu子系統 用管理員權限打開 powershell,輸入以下命令自動安裝並配置 WSL2和Ubuntu-18.04, 改為16.04或者20.04 可以安裝對應版本。

wsl install -d Ubuntu-18.04


2. 在win10安裝支持WSL2的nvidia驅動


通過以下鏈接登陸,下載並安裝(需要加入nvidia開發人員計劃並選擇清潔安裝):
https://developer.nvidia.com/cuda/wsl/download

3. 在ubuntu裏配置 CUDA Toolkit 10.2


$ sudo apt-key adv fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
$ sudo sh -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/cuda.list'
$ sudo apt-get update
$ sudo apt-get install -y cuda-toolkit-10-2

4. (選擇項目:直接安裝conda使用)


其實現在就可以自己安裝 conda進行環境的搭建,也可以繼續往下使用docker進行更簡單地搭建。
二、在ubuntu裏面配置Docker

1. 安裝Docker和NVIDIA Container Toolkit


*銘記:需要把之前安裝的Desktop Docker卸載。 一條一條的執行
$ curl https://get.docker.com | sh
$ 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
$ curl -s -L https://nvidia.github.io/libnvidia-container/experimental/$distribution/libnvidia-container-experimental.list | sudo tee /etc/apt/sources.list.d/libnvidia-container-experimental.list
$ sudo apt-get update
$ sudo apt-get install -y nvidia-docker2
$ sudo service docker stop
$ sudo service docker start

2. 測試docker是否安裝成功與是否能訪問GPU資源


重新打開一個powershell 進入wsl
$ sudo docker run gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark

通過輸出的信息知道,已經可以正確訪問GPU資源了。
三、在pycharm裏面配置wsl進行編譯
如果直接安裝conda使用的話,可以在pycharm裏面配置編譯器
總結(踩過的坑)
有三點一定需要注意:1. 一定需要加入windows insider program,其它方法可以安裝wsl但是無法訪問到gpu資源。2. 要下載wsl專用的nvidia驅動安裝在windows。 3.要刪除掉windows裏的 desktop docker

熱門文章