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

Oli*_*bes 7 nvidia google-cloud-platform tensorflow google-dl-platform

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

Import tensorflow as tf
tf.config.list_physical_devices()
Run Code Online (Sandbox Code Playgroud)

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

但是,如果我注销,停止实例,然后重新启动实例,运行完全相同的代码只会看到 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
Run Code Online (Sandbox Code Playgroud)

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

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

a-d*_*a-d 3

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

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
Run Code Online (Sandbox Code Playgroud)

我必须重新安装 CUDA 驱动程序,从那时起,即使重新启动实例后它仍然可以工作。您可以在NVIDIA 网站上配置系统设置,它将为您提供安装 cuda 所需的命令。它还询问您是否要卸载以前的 cuda 版本(是!)。幸运的是,这也非常快。

  • 注意:在 nvidia 网站上,您需要使用 deb(网络)而不是 deb(本地)安装,然后它对我有用! (3认同)