2021年 Windows10 环境下使用WSL和Docker 配置深度学习环境

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

Windows10 环境下使用WSL2和Docker 配置深度学习环境以及踩坑记录 (使用 Ubuntu 18.04+ Cuda)

  • 前言
  • 一、在Windows10 上配置WSL2
    • 1. 加入 Windows Insider Program 安装WSL2(一定需要加入,不然不能访问gpu资源)
    • 2. 在win10安装支持WSL2的nvidia驱动
    • 3. 在ubuntu里配置 CUDA Toolkit 10.2
    • 4. (选择项目:直接安装conda使用)
  • 二、在ubuntu里面配置Docker
    • 1. 安装Docker和NVIDIA Container Toolkit
    • 2. 测试docker是否安装成功与是否能访问GPU资源
  • 三、在pycharm里面配置wsl进行编译
  • 总结(踩过的坑)

配置深度学习环境以及踩坑记录 (使用 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。

参考资料:
【1】https://www.youtube.com/watch?v=mWd9Ww9gpEM&ab_channel=JeffHeaton
【2】https://docs.nvidia.com/cuda/wsl-user-guide/index.html
【3】https://medium.com/@meng.chiang/%E5%9C%A8windows-10%E4%B8%AD%E4%BD%BF%E7%94%A8nvidia-docker-d1a369a9ac7a
【4】https://docs.microsoft.com/en-us/windows/wsl/install-win10
【5】https://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里面配置编译器


用 cuda.is_available() 查看gpu。

总结(踩过的坑)

有三点一定需要注意:1. 一定需要加入windows insider program,其它方法可以安装wsl但是无法访问到gpu资源。2. 要下载wsl专用的nvidia驱动安装在windows。 3.要删除掉windows里的 desktop docker

(0)

相关推荐