Windows10 wsl2 如何安装Tensorflow NVIDIA CUDA

最近一段时间因为一个小项目要搭建一个tensorflow机器学习平台,因为当时查阅了大量的资料,而且国内相关的说明资料非常少,而且也不够详细基本没有什么太大的用处,介于这些原因,也是为了帮助有需要的人,所以决定将整个解决问题的过程整理成文。

最近一段时间因为一个小项目要搭建一个tensorflow机器学习平台,因为当时查阅了大量的资料,而且国内相关的说明资料非常少,而且也不够详细基本没有什么太大的用处,介于这些原因,也是为了帮助有需要的人,所以决定将整个解决问题的过程整理成文。

wls命令查询Linux版本
wls命令查询Linux版本

上面的是我已经安装成功后的wsl命令行查询Linux系统版本的情况,为了让大家不走弯路我先说一下wsl2安装CUDA的几个先决条件,以及如何达到这些条件:

  1. 首先明确一个目的,安装Cuda是因为要部署机器学习框架Tensorflow,如果你没有Nvidia显卡那就不用弄了;
  2. WSL2与WSL1不同之处是WSL2采用了Hype-V虚拟机;
  3. Windows10 要开启预览体验计划,并且设置为Dev渠道,国外文章一般叫作 insider fast ring 或者干脆下载预览版安装镜像升级;
  4. Windows 10 内部版本要高于20150 (Powershell输入winver查看);
 开启预览体验计划,并且设置为Dev渠道
开启预览体验计划,并且设置为Dev渠道
查看win10内部版本号
查看win10内部版本号

**以上是先决条件,如果达不到是不可能顺利完成后续工作的,所以如果达不到以上条件,即使升级成功了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

参考文章: