最近一段时间因为一个小项目要搭建一个tensorflow机器学习平台,因为当时查阅了大量的资料,而且国内相关的说明资料非常少,而且也不够详细基本没有什么太大的用处,介于这些原因,也是为了帮助有需要的人,所以决定将整个解决问题的过程整理成文。
上面的是我已经安装成功后的wsl命令行查询Linux系统版本的情况,为了让大家不走弯路我先说一下wsl2安装CUDA的几个先决条件,以及如何达到这些条件:
- 首先明确一个目的,安装Cuda是因为要部署机器学习框架Tensorflow,如果你没有Nvidia显卡那就不用弄了;
- WSL2与WSL1不同之处是WSL2采用了Hype-V虚拟机;
- Windows10 要开启预览体验计划,并且设置为Dev渠道,国外文章一般叫作 insider fast ring 或者干脆下载预览版安装镜像升级;
- Windows 10 内部版本要高于20150 (Powershell输入winver查看);
**以上是先决条件,如果达不到是不可能顺利完成后续工作的,所以如果达不到以上条件,即使升级成功了wsl2也不可能安装CUDA成功的。
如果已经达到以上条件,以下有两条命令是可以执行的,否则不会执行成功:
- wsl --shutdown #关闭虚拟机;
- wsl --update #检查wsl升级,也可以通过Appstore升级;
如果你已经安装wsl1,可以通过以下命令将wsl1升级为wsl2:
wsl --set-version $已经使用的WSL的名字 2 #升级wsl2
wsl --set-default-version 2 #设置wsl默认运行版本为wsl2
完成以上两步后,基础工作就算完成了,WSL2是通过linux驱动与windows驱动互动来实现GPU驱动的,接下来需要到nvidia官网下载最新版nvidia驱动程序,linux中安装的CUDA版本与windows10驱动的版本号不需要一致,Linux中需要根据Tensorflow所需要版本进行选择,windows10下安装管方最新版。
Nvidia 驱动下载地址:https://developer.nvidia.com/cuda/wsl/download
安装完windows下驱动,需要重启wsl2,重启后会发现 /usr/lib/wsl/lib
映射的windows显卡驱动目录,则可以判断驱动安装OK。
接下来需要安装Tensorflow与Linux下的Cuda、cudnn,因为Tensorflow 1.x与最新的2.x版本架构完全不同,而且2.x对于1.x的兼容性并不全面,所以如果您是要跑现有的项目,建议安装合适的Tensorflow版本,然后根据Tensorflow版本选择安装合适的Cuda与Cudnn,本文就不多说了,我觉得关键问题都已经说情了。
Cuda与Cudnn下载地址:https://developer.nvidia.com/cuda-toolkit-archive
需要注意的是:Tensorflow要安装Tensorflow-gpu版本
sudo pip install tensorflow-gpu==2.x.x/1.9.x
参考文章:
- https://forums.developer.nvidia.com/t/failure-to-install-cuda-on-wsl-2-ubuntu/128592/3 #主要参考
- https://docs.nvidia.com/cuda/wsl-user-guide/index.html#installing-nvidia-drivers #WSL安装CUDA
- https://developer.nvidia.com/blog/announcing-cuda-on-windows-subsystem-for-linux-2/ #讲解
- https://blogs.windows.com/windows-insider/posts/ #windows10预览版发版情况
- https://www.tensorflow.org/install #tensorflow安装指导