CSDN搬家失败,手动导出markdown后再导入博客园
最近想体验下世界上最好的 Linux 发行版 Win10(bushi),拿来深度学习炼丹,所以参考了在 WSL2 中使用 CUDA 提到的方法安装。
列举下遇到的问题:
1 Windows 预览版本没响应
按理说在设置 - 更新和安全 - Windows 预览体验计划里面注册后,就能直接更新 insider preview 版本的操作系统,但是我试了几次都没用,所以直接去微软官网下载 iso 镜像 https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewiso,在下拉框选择版本,注意要安装 cuda 的话英伟达要求 windows 版本为 Build 20145 或更高,所以选择 dev channel。
这里吐槽一下微软的服务器,下载真滴慢,不到 200k,而且下载链接有时限,好像是 12 小时,折腾了半天最后是用海外的 VPS 离线下载完转发回来的,Windows10_InsiderPreview_Client_x64_zh-cn_21286.iso。
![[output/attachments/a05f4facbd6a6e5ffe2e0138a664ed77_MD5.png]]
下载完直接安装即可,有几率失败回滚,多试几次。。。
使用镜像安装之后设置 - 更新和安全 - Windows 预览体验计划就会变成正常的状态。
2 CUDA on WSL 驱动安装
CUDA on WSL 驱动下载地址
https://developer.nvidia.com/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 移动到任意位置。
但是在使用
wsl --terminate <DistritubtionName> # 先关闭相关的分发,以免后续造成不必要的问题
wsl --export <DistributionName> <FileName> # 导出Linux子系统
wsl --unregister Ubuntu-18.04 # 注销这个分发
wsl --import <DistributionName> <InstallLocation> <FileName> # 导入/还原之前的分发版本
命令后报错,LxRunOffline 迁移 wsl 失败 Indicates that the directory trying to be deleted is not empty.
谷歌查到 LxRunOffline 项目的 Issue,https://github.com/DDoSolitary/LxRunOffline/issues/150,发现是 win 某个版本更新后出现了这个问题。
查了半天发现 wsl 本身就有备份还原的功能,Windows10 Linux 子系统安装 / 迁移到非系统盘提到
sudo apt update
sudo apt install build-essential
重新导入后的 Linux 分发版不再以 APP 的形式出现于开始菜单中:
这样操作以后不能像原来一样在开始菜单点击图标启动此 Linux 分发,其他并未改变。可以通过 wsl -s Ubuntu 命令、Windows terminal 程序等方式启动。或者将其设为默认分发版,通过 wsl、bash 启动。
另一方面,不能像原来那样在应用商店里更新。
不存在原来那样的 Ubuntu804.exe 这样的命令。
实际上我操作后发现重新导入的 Linux 分发版跟 Windows 商店下载的完全一样,没有任何变化(没试过能不能在商店更新) ,可以直接通过开始菜单点击图标启动。
当然这么修改之后启动 Linux 是默认用 root 账户的,可以通过以下步骤来改成普通用户:
查看用户 UID ,一般是 1000
。
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/
然后在 PowerShell 中使用 LxRunOffine 直接修改默认用户
sudo chmod a+r /usr/local/cuda-11.0/include/cudnn.h
sudo chmod a+r /usr/local/cuda-11.0/lib64/libcudnn*
4 安装 cuda
直接去英伟达官网下载想用的版本,这里建议选择 run 文件,简单方便。
如果安装 cuda 的时候报错,一般是缺少编译环境,用下面命令安装后重试。
cd /usr/local/cuda/samples/4_Finance/BlackScholes
sudo make
./BlackScholes
![[output/attachments/f6f8b3a999421d8700872fe33d09346f_MD5.png]]
cuda 安装完之后,一定会显示 Driver not selected,正常。
5 安装 cuDNN
其实后面的就跟普通的 Linux 安装 TensorFlow-GPU 一样了。
下载 cuDNN,https://developer.nvidia.com/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
![[output/attachments/9a90dc1596f824ebb4c90d18d7bdd4a4_MD5.png]]
6 后续
再然后就是熟悉的套路了,要么安装 anaconda,要么用 docker,常规操作。
标签:--,local,sudo,wsl,WSL,cuda,安装,usr From: https://www.cnblogs.com/algorithmSpace/p/18200239