栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

[kubernetes]-win10上运行GPU容器

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[kubernetes]-win10上运行GPU容器

测试结果:win10可以使用wsl2在docker中使用GPU

测试步骤如下: 安装wsl2

在搜索中打开启用或关闭windows功能

开启适用于linux的windows子系统 如果有问题的话虚拟机平台也开启

在powershell下执行下面命令效果相同。

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

需要确保windows版本 大于win10 v2004 的内部版本 19041 或更高版本

可以通过在快捷键win+r ,输入winver 查看自己的windows版本

版本不达标可以通过以下升级工具升级

https://www.microsoft.com/zh-cn/software-download/windows10

升级成功并重启windows

安装windows terminal

登录微软商店账号,搜索terminal 并安装对应服务

这里先用管理员运行powershell

# 设置一下默认的版本  不然后面切换版本比较麻烦  切换异常得删除ubuntu18,再安装一次
wsl --set-default-version 2
安装ubuntu18.04

如果c盘不够大,可以先执行安装,安装完成之后参考下方修改安装路径

安装完毕后在商店搜索安装Ubuntu 18.04 LTS

安装完成之后点击打开 ,系统会自动执行初始化

初始化完成之后 输入登录系统的用户名及密码

deepwise/XJM@151089

重新打开windows 的terminal之后 可以通过terminal的下拉框来登录ubuntu

可以通过sudo -i切换到root用户

# 给deepwise用户 免密操作
sudo echo "deepwise ALL=(ALL:ALL) NOPASSWD: ALL" >>/etc/sudoers 

更换阿里源

cp /etc/apt/sources.list /etc/apt/sources.list.bak

echo "deb http://mirrors.aliyun.com/ubuntu/ focal main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal universe
deb http://mirrors.aliyun.com/ubuntu/ focal-updates universe
deb http://mirrors.aliyun.com/ubuntu/ focal multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal-security universe
deb http://mirrors.aliyun.com/ubuntu/ focal-security multiverse">/etc/apt/sources.list

更新源

apt update 
# apt upgrade -y

powershell切换wsl1到wsl2

# 查看当前版本
wsl -l -v 
# 如果是2的话 不用切换了
wsl --set-version Ubuntu-18.04  2

确保WSL2的linux内核为4.19.121以上

# 查看内核版本
uname -a

提示"WSL 2 需要更新其内核组件”。下载并安装 WSL2 Llinx内核后再执行上面的命令,这个可能需要一会时间。

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

在win10系统下安装wsl显卡驱动

安装wsl的显卡驱动 以便在docker中可以获取到GPU 这里需要安装的win10的驱动,而非linux版本的驱动

https://developer.nvidia.com/cuda/wsl

如图 还没有安装nvidia驱动启动容器调用GPU会报错

安装docker
sudo apt-get update

sudo apt-get install -y 
    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 -y docker-ce docker-ce-cli containerd.io
安装NVIDIA Container Toolkit
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) 
      && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg 
      && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | 
            sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | 
            sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
curl -s -L https://nvidia.github.io/libnvidia-container/experimental/$distribution/libnvidia-container.list | 
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | 
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
安装nvidia-docker2
sudo apt-get update
sudo apt-get install -y nvidia-docker2

启动docker

sudo service docker stop
sudo service docker start
sudo nvidia-docker version

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

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())


额外补充

挂载磁盘

wmic diskdrive list brief
GET-CimInstance -query "SELECT * from Win32_DiskDrive"
wsl --mount 
# D盘默认会挂载在/mnt/d

修改ubuntu安装路径

需要下载发行版https://docs.microsoft.com/zh-cn/windows/wsl/install-manual

我下载到的文件名为:Ubuntu_1804.2019.522.0_x64.appx

默认安装到C盘,随着Ubuntu的使用,后续有可能会占满C盘,为了方便使用,我们安装它到其它盘。

使用压缩软件打开Ubuntu_1804.2019.522.0_x64.appx(它本身就是一个压缩包),解压出里面的install.tar.gz文件备用。

导入Ubuntu

打开Windows Terminal,默认会进入命令行,输入:

#命令格式:wsl --import <发行版名字> <安装位置> <文件名> [选项]

# 导出 测试过程中导出,直接安装会有网络问题
# wsl --shutdown
# wsl --export Ubuntu-18.04  D:ubuntu18_04.tar
wsl --import Ubuntu-18.04  D:ubuntu18_04 D:ubuntu18_04.tar
wsl -l -v 
# 如果需要删除
# wsl --unregister Ubuntu-18.04

等待命令完成后,打开D:wsl2ubuntu目录,看到有一个 ext4.vhdx文件,刚开始安装完成时大约有1.2G左右(后续使用会变大),即为安装好的Ubuntu。

重新打开terminal就会显示刚刚安装的ubuntu18.04

如果报错,需要对部分包进行降级

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

参考

nvidia-docker2官方安装文档

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker

win11参考

https://zhuanlan.zhihu.com/p/434239083

其他

https://blog.csdn.net/m0_49648190/article/details/118978891

https://blog.csdn.net/qq_35818865/article/details/124083724

https://www.cnblogs.com/zongzc/p/15955848.html

挂载

https://docs.microsoft.com/en-us/windows/wsl/wsl2-mount-disk

修改ubuntu的安装路径

https://www.wzy2.com/93247.html

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/841223.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号