接触Deep Learning也有一段时间了,在使用的过程中,有一点特别不舒服,那就是很多常用的应用只在windows/mac下有,但是为了使用CUDA的性能和深度学习框架的兼容性最好,必须使用Linux(Ubuntu)。
如此导致我不得不来回切换两个系统,在windows下日常工作+游戏,在linux下深度学习。
偶然在网上了解到windows在最新的insider版本20145版本推出了支持GPU加速的WSL2完整linux内核容器,使用DX12传递GPU到WSL中,可使windows和linux并存并且完全支持CUDA!
Figure 1. CUDA on WSL Overview
本人大喜,赶紧折腾起来,来来回回折腾了三遍,总耗时几天,总算是搞定了,分享一下。
首先是抄一下windows官网的WSL2文档WSL2
在WSL 2中启用NVIDIA CUDA
Windows Insider SDK支持运行现有的ML工具,库和流行的框架,这些工具使用NVIDIA CUDA在WSL 2实例中进行GPU硬件加速。这包括PyTorch和TensorFlow以及本机Linux环境中可用的所有Docker和NVIDIA Container Toolkit支持。
安装最新的Windows Insider Dev Channel版本
要使用此预览,您需要注册Windows Insider程序。完成后,请按照以下说明安装最新的Insider版本。选择设置时,请确保您选择的是Dev Channel。
对于此预览,您需要内部版本20150或更高版本。您可以winver
通过运行命令(Windows徽标键+ R)运行来检查内部版本号。
安装预览GPU驱动程序
下载并安装适用于WSL的,支持NVIDIA CUDA的驱动程序,以与您现有的CUDA ML工作流程一起使用。
设置WSL 2进行预览
安装完上述驱动程序后,请确保启用WSL 2并安装基于glibc的发行版(例如Ubuntu或Debian)。通过在“设置”应用的“ Windows Update”部分中选择“检查更新”,确保您具有最新的内核。
注意
当您启用Windows更新时,请确保您具有接收其他Microsoft产品的更新。你可以找到它的高级选项的中的Windows Update设置应用程序的部分。
对于此预览,您需要4.19.121或更高版本的内核版本。您可以通过在PowerShell中运行以下命令来检查版本号。
wsl cat /proc/version
现在,您可以通过NVIDIA Docker或通过在WSL 2内安装PyTorch或TensorFlow开始使用现有的Linux工作流程。有关设置的更多信息,请参见《 WSL用户指南》中的NVIDIA CUDA。
这是笔者安装的显卡驱动的版本。
然后需要注意的是在wsl2中运行docker,需要以nvidia-docker run --gpus all