现在很多项目都是基于Linux开发的,但是平常使用还是Windows香。
分别尝试了虚拟机、docker、wsl。
虚拟机:过于庞大,但是可以有完整的Linux桌面环境,使用起来很顺手,但是不够流畅,再者,如果需要使用gpu,就是一件很尴尬的事了。
Docker:目前很流行,环境的打包、管理等都很方便灵活,但是在Windows上很难使用宿主机的gpu。
最终选择了WSL2。
目录
1、更新到WSL2
1.1、加入Windows预览体验成员
1.2、启用“适用于 Linux 的 Windows 子系统”可选功能
1.3、更新wsl1到wsl2
2、安装Linux子系统
3、安装cuda和cudnn
3.1、安装cuda-toolkit
3.2、安装cudnn
3.2.1、下载cudnn
3.2.2、进行安装
4、安装桌面
参考微软官方文档:https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-index
在Windows中,设置→更新和安全→windows预览体验计划, 选择“Dev渠道”
接着在 设置→更新和安全→windows更新→高级选项 中,打开“更新Windows时接收…的更新”
接着,在 设置→更新和安全→windows更新 中,检查更新,下载更新,安装更新。
可能重复几次,直到Windows版本大于 2004-20145(如下图,我的直接到了20161了)
微软官方说的是大于19041即可,但这只是WSL2的版本要求,我需要使用物理的显卡,要用到cuda,参考下文,cuda对于WSL的支持需要更新系统到20145之后。
在Windows的 控制面板→程序→启动或关闭Windows功能 中,勾选“适用于Linux的Windows子系统”。
之后可能会重启电脑。
参照官方的说明,以管理员身份,在PowerShell中执行一下命令:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl --set-default-version 2
运行该命令后,你可能会看到此消息:WSL 2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel
。 跟随链接(https://aka.ms/wsl2kernel),在文档中安装来自该页面的 MSI,以便在计算机上安装 Linux 内核供 WSL 2 使用。 安装内核后,请再次运行该命令,该命令应会成功完成而不显示消息。
打开Windows Store(微软应用商城),搜索“Linux”
可以看到很多可用的Linux发行版本,可以根据自己的喜好与需求选择合适的。
由于我需要使用Nvidia的cuda等,官方文档中所列的版本中,比较的合适的是Ubuntu18.04,所以我装了这个版本。
安装后首次打开需要设置用户名和密码,进行设置即可。
参考cuda的官网指导:CUDA on WSL User Guide
在成为Windows预览体验成员、更新系统到2004-20145之后,
确保安装了wsl2。确保更新安装了最新的wsl2内核4.19.121+
在PowerShell中使用如下命令查看:
wsl cat /proc/version
接着安装Nvidia针对wsl的驱动(Windows上):https://developer.nvidia.com/cuda/wsl/download
接下来,打开我们安装的Linux子系统。
首先你可能要先安装gnupg2:
设置cuda的仓库地址,并更新。
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo sh -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/cuda.list'
sudo apt-get update
安装cuda-toolkit
sudo apt-get install -y cuda-toolkit-11-0
安装完成后应该能在"/usr/local/"目录下找到cuda的目录
简单的分下载和安装两部分,因为WSL2和Windows是共享存储的,可以在windows的文件管理中查看子系统的存储,也可以在Linux子系统中访问Windows磁盘。所以cudnn的下载在windows上操作更便捷。
说明一下,如果在Windows上访问Linux子系统的存储,打开文件管理器左侧可以看到:
若要在Linux子系统中访问Windows的存储,在Linux的 "/mnt"路径下,c、d、e、f对应的即是Windows对应磁盘。
参考官方说明:https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#install-linux
更具已安装的cuda-toolkit的版本。选择对应的版本下载。
比如我下载的:cudnn-11.0-linux-x64-v8.0.1.13.tgz
在ubuntu中,将下载到的文件拷贝到ubuntu的某个路径下(sudo cp /mnt/../cudnn---1.13.tgz /...)(这一步可以忽略)
接着在对应路径下解压该文件(注意换成自己的文件名)
tar -xzvf cudnn-11.0-linux-x64-v8.0.1.13.tgz
进行如下操作
sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
到此就安装成功了。
这里参考了网上以为大神的方法,用了xrdp+xface4,一次成功。连接:https://www.bilibili.com/video/BV1Lz4y1975a
不用在Windows上安装任何东西,直接通过远程桌面连接即可。