00:00
加载中……请稍等……

微软已经在Windows v2004正式发布WSL2了,在Build 2020大会上微软宣布将支持GPU加速和GUI程序界面,非常棒。可能是吸引开发者的最强利器。目前可以在内部预览成员的快速通道里体验GPU加速深度学习的快感。

加入快速通道的内部预览成员

这点其实风险性比较大,毕竟Bug10会经常有些稀奇古怪的Bug,有时候会经常绿屏。

确保系统版本 ≥20145

安装Nvidia支持WSL2的预览驱动

CUDA on Windows Subsystem for Linux (WSL) - Public Preview

安装WSL2

如果有安装WSL2的发行版,需要更新到最新版

更新Linux Kernel

这点需要开启接受更新微软其他产品或服务

$ wsl cat /proc/version

确保内核版本 ≥4.19.121

安装Miniconda

$ wget "https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py37_4.8.2-Linux-x86_64.sh"
$ sudo bash Miniconda3-py37_4.8.2-Linux-x86_64.sh  # 安装到/opt/miniconda3
$ sudo chmod ugo+w -R /opt/miniconda3

conda安装GPU版的PyTorch

建议用官方源,确保pytorch最新当然这没强制,你可以用清华源,只是版本可能有些旧

$ conda update --all -y
$ conda create -n pytorch pytorch torchvision cudatoolkit=10.2 -c pytorch

测试

$ conda activate pytorch
$ python
>>>import torch
>>>torch.__version__
'1.5.1'
>>>torch.cuda.is_available()
True
>>>x = torch.Tensor([1.0])
>>>x = x.cuda()
>>>print(x)
tensor([1.], device='cuda:0')
>>>from torch.backends import cudnn
>>>print(cudnn.is_acceptable(x))
True

(可选项)安装Cuda ToolKit

目前只有最新的Cuda11.0

加个源,编辑 /etc/apt/sources.list.d/或者直接在 /etc/apt/sources.list.d/建个新文件 cuda.list

$ sudo apt-key adv --fetch-keys https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/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 -y cuda-toolkit-11-0

由于 nvidia.com在大陆会直接重定向到 nvidia.cn,所以直接改成 .cn,大陆外可以用 .com

虽然不能直接运行 nvidiasmi,但是利用WSL2可以运行 .exe的特性使用Windows里的 nvidia-smi。可以在 .bashrc里加上 alias nvidia-smi="/mnt/c/Windows/System/nvidia-smi.exe",或者直接运行 sudo alias nvidia-smi="/mnt/c/Windows/System/nvidia-smi.exe"

(可选项)在 Docker里使用GPU加速

这里假定你是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
$ 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

更新包,并安装 nvidia-docker2

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

重启Docker

$ sudo service docker restart

挂起容器

$ sudo docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
$ sudo docker run -it --gpus all -p 8888:8888 tensorflow/tensorflow:latest-gpu-py3-jupyter

enjoy.

参考链接

Enable NVIDIA CUDA in WSL 2

Getting started with CUDA on Ubuntu on WSL 2

CUDA on Windows Subsystem for Linux (WSL) - Public Preview

CUDA on WSL User Guide

Last modification:July 27th, 2020 at 01:44 am
如果觉得我的文章对你有用,请随意赞赏