在WSL2上安装Tensorflow-GPU

问题描述

有人在带有NVIDIA GPU的WSL2上成功安装tensorflow-gpu吗?我在WSL2上安装了Ubuntu 18.04,但是正在努力安装NVIDIA驱动程序。如果我迷路了,我们将不胜感激。

解决方法

所以我刚刚开始运行。

您需要遵循的步骤是here。总结一下:

  1. 注册 windows 内幕程序并获取 windows 的开发版本,以便您拥有最新版本
  2. 安装 wsl 2
  3. 从 Windows 商店安装 Ubuntu
  4. 在 Windows 上安装 wsl 2 cuda 驱动程序
  5. 安装 cuda 工具包
  6. 安装cudnn(你可以从windows下载linux版本,然后将文件复制到linux)
  7. 如果您收到诸如“无法分配内存”之类的内存错误,那么您可能需要增加 wsl 可以获得的内存量
  8. 然后安装tensorflow-gpu
  9. 祈祷一切顺利

我一路上遇到的错误:

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

运行一些代码后进行编辑

这比我直接在 Windows 上运行时要慢得多。我从每 epoch 1 分钟到 5 分钟。我只是要双启动。

,

由于以下文章,我可以确定我能够在WSL2上不需要Docker的情况下完成此工作:

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

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

注意,这不适用于处于TCC模式的卡(仅WDDM)。另外,请确保将文件放在Linux文件系统上(即,不要放在挂载驱动器上,例如/mnt/c/)。在Linux文件系统上,性能显着提高(这与WSL 1与WSL 2的实现有所不同;请参阅123)。>

注意:另请参见Is the class generator (inheriting Sequence) thread safe in Keras/Tensorflow?

,

这些是我在 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,因为它是 . . .不知何故。