无法让 VM debian 机器与 K80 一起工作

Unable to get VM debian machine work with K80

我使用一些自定义张量流模型和 google 视觉 api、google nlu api 为 运行 项目创建了一个深度学习 VM。 我用 Debian10 和 tensorflow 2.4(cuda11) 设置了一台机器,我选择了 1 个 nvidia K80 GPU。我使用这个 link 安装了 cuda11。当我 运行 nvidia-smi 时,我收到这个著名的丑陋消息:

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

我尝试安装 cuda10 或任何其他的,但对于 debian 根本不存在:请参阅此 cuda 10

请问如何解决这个问题!

我试图在我自己的项目中重现这个错误。 我安装了具有以下特征的 VM 实例:

  • 机器类型:n1-standard-1
  • GPU:1 个 NVIDIA Tesla K80
  • 启动盘:debian-10-buster-v20201216

正如您在 post 中提到的 Linux: CUDA Toolkit 10 没有驱动程序,所以我使用 link 中描述的步骤来安装它,我有一些安装驱动程序的复杂性,最后我能够重现您的问题,安装后我收到以下消息:

$ sudo nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

我又试了一次,但现在我稍微改变了我的安装:

  • 机器类型:n1-standard-1
  • GPU:1 个 NVIDIA Tesla K80
  • 启动盘:c0-common-gce-gpu-image-20200128

我这次使用的启动盘c0-common-gce-gpu-image-20200128是一个GPU优化的Debian镜像,m32(带有CUDA 10.0),一个基于Debian 9的镜像,预装了CUDA/CuDNN/NCCL

当我第一次通过ssh访问这个实例时,收到如下问题:

This VM requires Nvidia drivers to function correctly.   Installation takes ~1 minute.
Would you like to install the Nvidia driver? [y/n] y
Installing Nvidia driver.

它会自动安装驱动程序。

$ sudo nvidia-smi
Thu Jan  7 19:08:06 2021       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.104      Driver Version: 410.104      CUDA Version: 10.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla K80           Off  | 00000000:00:04.0 Off |                    0 |
| N/A   75C    P0    91W / 149W |      0MiB / 11441MiB |    100%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

我也尝试过使用 TensorFlow 图像,因为您提到您正在使用 TensorFlow:c0-deeplearning-tf-1-15-cu110-v20201229-debian-10 根据此图像的信息,它是一个深度学习图像:TensorFlow 1.15,m61 CUDA 110,一个基于 debian-10 Linux 的图像,带有 TensorFlow 1.15(使用 CUDA 110 和 Intel(TM) MKL-DNN,英特尔® MKL) 加上英特尔(TM) 优化的 NumPy、SciPy 和 scikit-learn。 在这种情况下,我 verified the TensorFlow installation too:

$ python -c "import tensorflow as tf;print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
2021-01-07 20:29:02.854218: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.11.0
Tensor("Sum:0", shape=(), dtype=float32)

而且效果很好。

因此,安装的图像 (Devian 10) 和 GPU 类型 (NVIDIA K80) 所需的 CUDA 工具包之间似乎存在问题。

我的建议是使用深度学习 VM 映像,您可以在此处查看完整列表 link:Choosing an image