admin 管理员组

文章数量: 887021

最近想体验下世界上最好的Linux发行版Win10(bushi),拿来深度学习炼丹,所以参考了在WSL2中使用CUDA提到的方法安装。

列举下遇到的问题:

1 Windows预览版本没响应

按理说在设置-更新和安全-Windows预览体验计划里面注册后,就能直接更新insider preview版本的操作系统,但是我试了几次都没用,所以直接去微软官网下载iso镜像https://www.microsoft/en-us/software-download/windowsinsiderpreviewiso,在下拉框选择版本,注意要安装cuda的话英伟达要求windows版本为 Build 20145或更高,所以选择dev channel。

这里吐槽一下微软的服务器,下载真滴慢,不到200k,而且下载链接有时限,好像是12小时,折腾了半天最后是用海外的VPS离线下载完转发回来的,Windows10_InsiderPreview_Client_x64_zh-cn_21286.iso

下载完直接安装即可,有几率失败回滚,多试几次。。。

使用镜像安装之后设置-更新和安全-Windows预览体验计划就会变成正常的状态。

2 CUDA on WSL 驱动安装

CUDA on WSL 驱动下载地址

https://developer.nvidia/cuda/wsl

根据自己的GPU类型(GeForce and Quadro)选择对应的驱动。

我的台式机显卡是2070s,就下载GeForce驱动。

不需要在wsl下安装nvidia驱动,windows会自动为wsl安装nvidia驱动!

不需要在wsl下安装nvidia驱动,windows会自动为wsl安装nvidia驱动!

不需要在wsl下安装nvidia驱动,windows会自动为wsl安装nvidia驱动!

3 WSL2安装

WSL2的具体安装方法参看微软官方指南:适用于 Linux 的 Windows 子系统安装指南 (Windows 10),非常简单。

这里有个大坑,Ubuntu是强制安装在C盘的,如果想长期用wsl2的话,绝大多数人的C盘容量肯定不够用。

为了把wsl转移到E盘,我找到了LxRunOffline 这个工具,LxRunOffline 使用教程 - WSL 自定义安装、备份,里面提到可以直接将安装在C盘的wsl移动到任意位置。

但是在使用

lxrunoffline m -n <WSL名称> -d <路径>

命令后报错,LxRunOffline 迁移wsl失败 Indicates that the directory trying to be deleted is not empty.

谷歌查到LxRunOffline项目的Issue,https://github/DDoSolitary/LxRunOffline/issues/150,发现是win某个版本更新后出现了这个问题。

查了半天发现wsl本身就有备份还原的功能,Windows10 Linux子系统安装/迁移到非系统盘提到

wsl --terminate <DistritubtionName>  # 先关闭相关的分发,以免后续造成不必要的问题
wsl --export <DistributionName> <FileName>  # 导出Linux子系统
wsl --unregister Ubuntu-18.04  # 注销这个分发
wsl --import <DistributionName> <InstallLocation> <FileName>  # 导入/还原之前的分发版本

重新导入后的Linux分发版不再以APP的形式出现于开始菜单中:

这样操作以后不能像原来一样在开始菜单点击图标启动此Linux分发,其他并未改变。可以通过wsl -s Ubuntu命令、Windows terminal程序等方式启动。或者将其设为默认分发版,通过wsl、bash启动。

另一方面,不能像原来那样在应用商店里更新。

不存在原来那样的Ubuntu804.exe这样的命令。

实际上我操作后发现重新导入的Linux分发版跟Windows商店下载的完全一样,没有任何变化(没试过能不能在商店更新) ,可以直接通过开始菜单点击图标启动。

当然这么修改之后启动Linux是默认用root账户的,可以通过以下步骤来改成普通用户:

查看用户 UID ,一般是 1000

id -u <用户名>

然后在PowerShell中使用LxRunOffine直接修改默认用户

lxrunoffline su -n <WSL名称> -v 1000

4 安装cuda

直接去英伟达官网下载想用的版本,这里建议选择run文件,简单方便。

如果安装cuda的时候报错,一般是缺少编译环境,用下面命令安装后重试。

sudo apt update
sudo apt install build-essential

cuda安装完之后,一定会显示Driver not selected,正常。

5 安装cuDNN

其实后面的就跟普通的Linux安装TensorFlow-GPU一样了。

下载cuDNN,https://developer.nvidia/cudnn

tar -zxvf cudnn-11.2-linux-x64-v8.1.0.77.tgz
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda-11.0/lib64/
sudo cp  cuda/include/cudnn.h /usr/local/cuda-11.0/include/

设置读写权限

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

要验证的话,去cuda安装目录下面编译一个sample即可。

cd /usr/local/cuda/samples/4_Finance/BlackScholes
sudo make
./BlackScholes

出现Test Passed 

6 后续

再然后就是熟悉的套路了,要么安装anaconda,要么用docker,常规操作。

本文标签: 子系统 位置 WSL