Windows系统WSL2 的ubuntu子系统安装 docker、nvidia-docker调用GPU

安装wsl2

先决条件

Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11

通过按 Windows 徽标键 + R ---输入winver,单击确定,检查你的 Windows 版本

如果内部版本低于要求请升级。登录你的windows账户并升级windows至预览版本,(过程可能需要1-2个小时)

升级完成后,验证内部版本是否低于19041 如果还低说明选错了升级渠道,一定要选择Dev 渠道,最新渠道,获取最新的版本

安装预览版nvdia驱动

GPU in Windows Subsystem for Linux (WSL) | NVIDIA Developer

需要登录nvidia账号才能下载,登录账号后下载适合自己的nvidia版本

启用windows子系统功能

安装WSL2

1.管理员身份PowerShell

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

重启电脑

2.管理员PowerShell 将WSL2设置为默认版本

wsl --set-default-version 2

提示"WSL 2 需要更新其内核组件”。下载并安装 WSL2 Llinx内核

3. 随后进入微软商店下载并安装对应的ubuntu版本即可。或者前往在此选择具体Linux版本

两种方式登录wsl2

 如果系统无法进入并报错,需要下载并安装 WSL2 Llinx内核

确保WSL2的linux内核为4.19.121+

uname -a

验证 wsl2

↓↓↓↓↓↓↓↓↓↓  Windows 管理员PowerShell

wsl --list --verbose

只要这个版本是2说明wsl2安装成功。(只有2才可以调用GPU)

安装docker

下面代码一行一行执行

sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

安装nvidia-docker

直接使用nvdia-docker,当前系统是不需要安装cuda的

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

重启docker

sudo service docker stop
sudo service docker start

验证nvidia-docekr 是否可以调用GPU

创建一个tensorflow容器

sudo docker run --runtime=nvidia  --rm -it --name tensorflow-1.14.0 tensorflow/tensorflow:1.14.0-gpu-py3

如果报错,是因为现最新版的 nvidia-docker有BUG (2022-2-10再次测试这个bug已经好了)

docker: Error response from daemon: OCI runtime create failed: container_linux.go:367: starting container process caused: process_linux.go:495: container init caused: Running hook #1:: error running hook: exit status 1, stdout: , stderr: nvidia-container-cli: initialization error: driver error: failed to process request: unknown.

对部分包进行降级

sudo apt-get install nvidia-docker2:amd64=2.5.0-1 \
           libnvidia-container-tools:amd64=1.3.3-1 \
           nvidia-container-runtime:amd64=3.4.2-1 \
           libnvidia-container1:amd64=1.3.3-1 \
           nvidia-container-toolkit:amd64=1.4.2-1

再次运行容器

sudo docker run --runtime=nvidia  --rm -it --name tensorflow-1.14.0 tensorflow/tensorflow:1.14.0-gpu-py3

测试GPU是否可用

python
import tensorflow as tf
print(tf.test.is_gpu_available())

windows wsl 操作技巧、命令

windows wsl 操作技巧、命令_SUNbrightness的博客-CSDN博客_wsl技巧

参考链接

安装 WSL | Microsoft Docs

CUDA on WSL :: CUDA Toolkit Documentation

nvidia-docker 2.6.0-1 - not working on Ubuntu WSL2 · Issue #1496 · NVIDIA/nvidia-docker · GitHub

Install Docker Engine on Ubuntu | Docker Documentation

猜你喜欢

转载自blog.csdn.net/SUNbrightness/article/details/116783604