在 WSL2 上安装 Tensorflow-GPU

Install Tensorflow-GPU on WSL2

有没有人在使用 NVIDIA GPU 的 WSL2 上成功安装 Tensorflow-GPU?我在 WSL2 上有 Ubuntu 18.04,但我正在努力安装 NVIDIA 驱动程序。任何帮助将不胜感激,因为我迷路了。

由于以下文章,我可以确认我能够在 WSL2 上无需 Docker 即可完成此工作:

https://qiita.com/Navier/items/cf551908bae707db4258

确保更新到驱动程序版本 460.15,而不是 CUDA 文档中列出的 455.41

请注意,这不适用于 TCC 模式下的卡(仅限 WDDM)。另外,请务必将文件放在 Linux 文件系统上(即不要放在安装驱动器上,如 /mnt/c/)。 Linux 文件系统上的性能明显更快(这与 WSL 1 与 WSL 2 的实施差异有关;参见 1, 2, and 3)。

注意: 另见

所以我刚得到这个 运行ning。

您需要执行的步骤是 here。总结一下:

  1. 注册 windows 内部程序并获取 windows 的开发版本,以便您拥有最新版本
  2. 安装 wsl 2
  3. 从 windows 商店安装 Ubuntu
  4. 在 windows
  5. 上安装 wsl 2 cuda 驱动程序
  6. 安装cuda工具包
  7. 安装cudnn(可以从windows下载linux版本,然后复制文件到linux)
  8. 如果您遇到类似 'cannot allocate memory' 的内存错误,那么您可能需要增加 wsl 可以获得的内存量
  9. 然后安装tensorflow-gpu
  10. 祈祷它有效

我遇到的错误:

  • 如果您第一次打开ubuntu时遇到错误,您需要在 bios 中启用虚拟化
  • 如果您不能 运行 安装说明中的 ./Blackscholes 示例,您可能没有正确的 windows 版本!你必须有正确的版本
  • 如果在 运行ning tf 时出现 'cannot allocate memory' 错误,您需要给 wsl 更多内存。默认情况下它只能访问一半的内存
    1. 在 windows 中的用户目录下创建一个 .wslconfig 文件,其中包含您想要的内存量。我的看起来像:
[wsl2]
memory=16GB 

在 运行 一些代码后编辑

这比我 运行 直接在 windows 上要慢得多。我从每个纪元 1 分钟变成了 5 分钟。我只是要双启动。

这些是我在 Ubuntu 20.04 中必须遵循的步骤。我不再使用开发频道,测试版频道适用于此用例并且更加稳定。

安装 WSL2

从 Windows 商店安装 Ubuntu 20.04

安装 Windows 的 Nvidia 驱动程序来自:https://developer.nvidia.com/cuda/wsl/download

使用以下命令在 WSL 内部安装 nvcc: sudo apt install nvidia-cuda-toolkit

检查它是否存在: nvcc --version

对于我的用例,我从事数据科学并且已经安装了 anaconda。我创建了一个环境:

conda create --name tensorflow
conda install tensorflow-gpu

然后用这个 python 小程序测试它并激活环境:

import tensorflow as tf
tf.config.list_physical_devices('GPU')
sys_details = tf.sysconfig.get_build_info()
cuda = sys_details["cuda_version"]
cudnn = sys_details["cudnn_version"]
print(cuda, cudnn)

由于我不明白的原因,我的机器在没有安装 nvcc 的情况下无法找到 GPU,实际上给出了一个错误消息说它找不到 nvcc。

我发现的在线教程让您分别下载 CUDA 和 CUDNN,但我认为 NVCC 包含 CUDNN,因为它是 . . .不知何故。

我只是想指出,使用anaconda安装cudatoolkit和cudnn似乎在wsl中不起作用。

也许路径有问题,导致 TF 只在系统路径而不是 conda 环境中查找需要的文件。