问题描述
有人在带有NVIDIA GPU的WSL2上成功安装tensorflow-gpu吗?我在WSL2上安装了Ubuntu 18.04,但是正在努力安装NVIDIA驱动程序。如果我迷路了,我们将不胜感激。
解决方法
所以我刚刚开始运行。
您需要遵循的步骤是here。总结一下:
- 注册 windows 内幕程序并获取 windows 的开发版本,以便您拥有最新版本
- 安装 wsl 2
- 从 Windows 商店安装 Ubuntu
- 在 Windows 上安装 wsl 2 cuda 驱动程序
- 安装 cuda 工具包
- 安装cudnn(你可以从windows下载linux版本,然后将文件复制到linux)
- 如果您收到诸如“无法分配内存”之类的内存错误,那么您可能需要增加 wsl 可以获得的内存量
- 然后安装tensorflow-gpu
- 祈祷一切顺利
我一路上遇到的错误:
- 如果第一次打开 ubuntu 时出现错误,则需要在 bios 中启用虚拟化
- 如果您无法运行安装说明中的 ./Blackscholes 示例,您可能没有正确构建 Windows!您必须拥有正确的版本
- 如果在运行 tf 时遇到“无法分配内存”错误,则需要为 wsl 提供更多内存。默认情况下它只访问你的 ram 的一半
- 在 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的实现有所不同;请参阅1,2和3)。>
注意:另请参见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,因为它是 . . .不知何故。