Win10使用Linux子系统(WSL2)进行深度学习训练
1.使用场景
希望拥有Linux系统开发深度学习程序的便捷性,和Windows系统日常工作的高效性。
为什么不用虚拟机:
虚拟机(如VMware等)安装的Linux系统无法使用Windows系统中的显卡进行深度学习程序加速。
2.步骤概况
- 开启windows体验计划,并更新系统至较高预览版本。
- 安装英伟达对wsl2的显卡驱动(NVIDIA Drivers for CUDA on WSL)。
- 安装wsl2。
- 从windows商店安装Ubuntu系统。
- 安装CUDA Toolkit 。
Or
6.安装Docker Desktop 使用合适的容器开发。
3.详细操作步骤
3.1开启windows体验计划,并更新系统至较高预览版本
- 将你的账户注册为预览体验机会账户
https://insider.windows.com/zh-cn/
- 前往【开始菜单】>【设置】>【更新和安全】>【Windows 预览体验计划】,选择【开始】,然后点击【确认】
- 登录上一步骤中的微软帐户,然后点击【继续】
- 选择“快”通道,以保证能更新至足够新的预览版本(确保等于或高于Build version 20145 )。
- 选择“立即重启”
- 前往【开始菜单】>【设置】>【更新和安全】>【Windows 更新】,选择【检查更新】然后等待电脑更新。(需要重启)
3.2安装英伟达对wsl2的显卡驱动
- 前往以下链接,下载与电脑显卡匹配(GEFORCE or QUADRO)的驱动连续进行安装。Official Drivers | NVIDIADownload latest drivers for NVIDIA products including GeForce, TITAN, NVIDIA RTX, Data Center, GRID and more.https://www.nvidia.com/download/index.aspx
3.3安装WSL2
- 启用适用于 Linux 的 Windows 子系统
以管理员身份打开 PowerShell 并运行
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
- 启用虚拟机功能
以管理员身份在 PowerShell 运行
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
运行成功后重启计算机。
- 前往以下链接,下载并安装WSL2 Linux内核包
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
- 将 WSL 2 设置为默认版本
以管理员身份在 PowerShell 运行
wsl --set-default-version 2
3.4从windows商店安装Ubuntu系统
- 可以安装ubuntu、Ubuntu 18.04 LTS 或 Ubuntu 20.04 LTS等版本
- 输入账户名,密码,以开启你的ubuntu系统
- 在ubuntu命令行中使用nvidia-smi命令获得显卡信息,以检查上述步骤的正确性。
Note: 由于是windows的显卡驱动,无法具体查看某个进程的GPU使用情况,将一直显示“No running processes found ”,但可通过上面的GPU总内存使用情况检查程序是否正确使用显卡。
3.5在Ubuntu 18.04 LTS中安装CUDA Toolkit和相关开发环境
- 设置库并更新
$ apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
$ sh -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/cuda.list'
$ apt-get update
- 安装cuda
$ apt-get install -y cuda-toolkit-11-0
- 安装python,对应版本的Pytorch,并验证cuda的可用性
4.使用Docker Desktop容器进行开发(推荐,可选)
4.1推荐理由
- 无需在ubuntu中安装任何cuda版本(也就是步骤3.5不必要)。
- 可以同时运行多个不同版本的开发环境(如Python版本不同,Pytorch版本不同,Cuda版本不同)。
- 开发环境无需安装,只需在网上(一般为Docker Hub)拉取下来用。
4.2使用方法
- 前往以下地址下载并安装Docker Desktop
https://www.docker.com/products/docker-desktop
- 在linux子系统(ubuntu)中使用docker命令查看安装是否正常
Linux子系统实际使用了windows中安装的Docker,两个平台所有docker数据共用
- 去docker hub寻找并拉取一个带有合适开发环境的docker镜像(如:1.9.0-cuda10.2-cudnn7-devel)
除了docker hub,英伟达也为深度学习开发提供了官方的docker镜像。使用容器开发的优点就在于此时你能随意选择需要的python,pytorch,cuda等版本。并且拉取之后就直接能用,无需安装。
- 从镜像生成容器
docker run --gpus all -it -v local/path:container/path image_name:tag /bin/bash
注:
要使用gpu环境,需要加--gpus xx指定使用的具体gpu,all表示使用机器中所有的gpu。
-v 用来将本地的一个地址挂载到container当中,以方便container与本地的交互。
-it 表示以交互式的方法开启一个终端,此时你的命令行为容器内部的命令行
image_name为容器名;tag为版本名需要指定,如不指定则默认tag=latest
/bin/bash 为在容器内运行的命令
- 检查cuda是否可用
由于显卡驱动是windwos版本,容器内部不能使用nvidia-smi指令,可以用以上方法查看显卡是否可用。
- (可选)使用vscode直接使用docker
在vscode安装插件“Docker”之后,可以直接操作docker镜像
从镜像创建容器后,可以使用vscode直接进入该容器,此时所有的操作都在该容器内,这样可以直接在容器内修改代码。
- (可选)docker快速入门(2,3个小时即可看完)
Docker 仓库管理 | 菜鸟教程 (runoob.com)
参考链接
如何加入微软 Windows 10/11 预览体验计划? - 知乎
更多推荐
所有评论(0)