WSL2使用cuda

在微软最新发布的 Windows Insider 预览版本中,WSL2 获得了 GPU 计算支持。这意味着 Linux 二进制文件可以利用 GPU 资源,在 WSL 中进行机器学习、AI 开发或是数据科学等工作。微软在今年五月份的 Build 2020 大会上宣布了 WSL 对GPU 计算的支持,对这项功能的需求在社区中一直拥有很高的呼声。目前,需要在WSL中启用GPU支持需要加入Windows 预览版 SDK,以下为具体步骤。
原文转载于:https://blog.csdn.net/qq_20291997/article/details/106897324#comments_13435238

文章目录

  • 1.安装预览版系统
  • 2.安装预览版驱动
  • 3.安装WSL2
  • 4.配置环境
    • 安装编译环境
    • 安装cuda
    • 安装cudnn
    • 安装pytorch

1.安装预览版系统

打开 “设置”-“更新和安全”-“windows预览体验计划” 选择加入,随后保存并按照提示重启,随后检查更新即可自动安装最新的快速预览版系统。
WSL2使用cuda_第1张图片

请务必确保win版本高于20150,可在运行(win+R)中执行winver进行确认,我的版本是20231。
WSL2使用cuda_第2张图片

2.安装预览版驱动

请勿在 WSL 中安装任何 Linux 显示驱动程序。Windows 显示驱动程序将同时安装本机 Windows 和 WSL 支持的常规驱动程序组件。
在英伟达下载与安装支持WSL的GPU驱动。
WSL2使用cuda_第3张图片

记得按照自己的GPU产品选择对应的驱动(该步骤需要Nvidia账户,我下载的是Geforce的驱动),下载后安装即可。
WSL2使用cuda_第4张图片

3.安装WSL2

确保自己安装并启用了WSL2。

  1. 以管理员身份打开 PowerShell 并运行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

随后重启即可。
2. 将 WSL 2 设置为默认版本,以管理员身份打开 PowerShell 并运行:

wsl --set-default-version 2

ps: 若提示"WSL 2 需要更新其内核组件”。下载并安装WSL 2 Linux 内核。
3. 随后进入微软商店下载并安装对应的Linux版本即可。或者前往在此选择具体Linux版本。
WSL2使用cuda_第5张图片

注:WSL必须安装在系统分区中。如果之前修改到了其它分区,请在下载安装对应Linux之前在win系统设置-系统-存储-更改新内容的保存设置-将新应用保存到…中选择对应系统分区,随后再进行安装。
5. 验证
请务必验证安装了WSL2(特别是以往就安装了WSL的电脑),以管理员身份打开 PowerShell 并运行:

wsl --l --v

如果返回的结果中version下的值为2,WSL2就安装成功了。
WSL2使用cuda_第6张图片

4.配置环境

更新:在WSL2中配置Cuda
我说的时不要安装任何Linux显示驱动程序,必要的Cuda之类还是要自己安装的,以下为具体步骤:

安装编译环境

该步骤非必须,可以先尝试安装cuda,提示缺少编译器无法正常安装再进行该步骤

sudo apt update
sudo apt install build-essential

下载cuda包
前往Nvidia官网下载对应的cuda包,自己用什么版本就下什么版本。
WSL2使用cuda_第7张图片

如果需要使用tensorRT加速的话个人建议最好是下载cuda10.2的版本

安装cuda

安装cuda时不安装驱动,把“X”选项去掉就行。
WSL2使用cuda_第8张图片

安装后一定有如下提示,Driver: Not Selected
WSL2使用cuda_第9张图片
设置环境变量

在主目录下的~/.bashrc文件添加如下路径:

sudo su -
vim ~/.bashrc

末尾添加并保存:

export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
source ~/.bashrc

如果提示缺少相应的依赖库,直接执行如下代码自动安装相应的依赖库

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

查看cuda是否安装成功:

nvcc -V

WSL2使用cuda_第10张图片

安装cudnn

安装cudnn的时候也需要登录Nvidia账号,直接下载:cuDNN Library for Linux (x86)

WSL2使用cuda_第11张图片
然后打开终端执行:

tar -zxvf cudnn-10.2-linux-x64-v8.0.4.30.tgz
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda-10.1/lib64/
sudo cp  cuda/include/cudnn.h /usr/local/cuda-10.1/include/

为所有用户设置读取权限:

sudo chmod a+r /usr/local/cuda-10.1/include/cudnn.h sudo chmod a+r /usr/local/cuda-10.1/lib64/libcudnn*

查看 CUDNN 是否安装成功:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

WSL2使用cuda_第12张图片

安装pytorch

进入pytorch官网,下载安装包:
WSL2使用cuda_第13张图片
我选择pip安装:

pip3 install torch torchvision

最终
WSL2使用cuda_第14张图片
最终可以调用GPU训练了。
注意:如何你的windows预览版是20150~20210之间的版本是没问题的,如果你的是20210版本之上是无法使用cuda版本,报以下错误,windows升级到最新版本20236以上就解决了。
WSL2使用cuda_第15张图片

PS:NVIDIA官方帮助文档:https://docs.nvidia.com/cuda/wsl-user-guide/index.html#installing-nvidia-drivers

你可能感兴趣的:(cuda,WLS,PyTorch,ubuntu,windows)