停止和启动深度学习 google 云 VM 实例导致 tensorflow 停止识别 GPU

Stopping and starting a deep learning google cloud VM instance causes tensorflow to stop recognizing GPU

我正在使用 google 云提供的预构建深度学习 VM 实例,并附有 Nvidia tesla K80 GPU。我选择自动安装 Tensorflow 2.5 和 CUDA 11.0。当我启动实例时,一切正常 - 我可以 运行:

Import tensorflow as tf
tf.config.list_physical_devices()

我的函数 returns CPU、加速 CPU 和 GPU。同样,如果我运行tf.test.is_gpu_available(),函数returnsTrue.

但是,如果我注销、停止实例,然后重新启动实例,运行使用完全相同的代码只会看到 CPU 和 tf.test.is_gpu_available() 结果为 False。我收到一个看起来驱动程序初始化失败的错误:

 E tensorflow/stream_executor/cuda/cuda_driver.cc:355] failed call to cuInit: CUDA_ERROR_UNKNOWN: unknown error

运行nvidia-smi显示电脑还是能看到GPU,我的tensorflow看不到

有人知道是什么原因造成的吗?我不想在重新启动实例时重新安装所有内容。

有些人(遗憾的是不是我)可以通过在 script/main 的开头设置以下内容来解决此问题:

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"

我不得不重新安装 CUDA 驱动程序,从那时起,即使在重新启动实例后它也能正常工作。您可以在 NVIDIAs website 上配置您的系统设置,它将为您提供安装 cuda 所需遵循的命令。它还会询问您是否要卸载以前的cuda版本(是!)。幸好速度也很快。

选项-1:
升级笔记本实例的环境。参考link升级。
可升级的笔记本实例为双盘,一张启动盘,一张数据盘。升级过程会将启动磁盘升级为新映像,同时将您的数据保留在数据磁盘上。

选项 2:
通过 SSH 和 运行 命令 link.
连接到笔记本虚拟机 执行命令后,cuda版本会更新到11.3,nvidia驱动版本会更新到465.19.01。
重新启动笔记本 VM。

注意:gpu 图像中的问题已解决。将使用图像版本 M74 创建新笔记本。 google-public-issue-tracker关于新镜像版本尚未更新,但您可以在控制台中找到新镜像版本M74。

我用下面的命令解决了同样的问题,取自https://issuetracker.google.com/issues/191612865?pli=1

gsutil cp gs://dl-platform-public-nvidia/b191551132/restart_patch.sh /tmp/restart_patch.sh

chmod +x /tmp/restart_patch.sh

sudo /tmp/restart_patch.sh

sudo service jupyter restart