【问题标题】:Google Cloud AI Platform Notebook Instance won't use GPU with JupyterGoogle Cloud AI Platform Notebook Instance 不会将 GPU 与 Jupyter 一起使用
【发布时间】:2019-11-30 02:08:23
【问题描述】:

我正在使用预构建的 AI Platform Jupyter Notebook 实例来训练具有单个 Tesla K80 卡的模型。问题是我不相信模型实际上是在 GPU 上训练的。

nvidia-smi 在训练期间返回以下内容:

No Running Processes Found

不是“未找到正在运行的进程”,而是“不稳定的 GPU 使用率”为 100%。 似乎有些奇怪...

...而且训练速度非常慢。

几天前,我遇到了每次笔记本运行后 GPU 都没有发布的问题。发生这种情况时,我会收到 OOM(内存不足错误)。这需要我每次进入控制台,找到GPU运行进程PID并在重新运行笔记本之前使用kill -9。但是,今天,我根本无法让 GPU 运行?它从不显示正在运行的进程。

我尝试了 2 个不同的 GCP AI Platform Notebook 实例(两个可用的 tensorflow 版本选项),但都没有成功。我是否缺少这些“预建”实例的东西。

Pre-Built AI Platform Notebook Section

澄清一下,我没有构建自己的实例,然后安装对 Jupyter 笔记本的访问权限。相反,我使用了 AI Platform 子菜单下的内置 Notebook 实例选项。

我是否仍需要在某处配置设置或安装库才能继续使用/重置我选择的 GPU?我的印象是虚拟机已经加载了 Nvidia 堆栈,应该可以与 GPU 即插即用。

想法?

编辑:这是所要求的问题的完整视频 --> https://www.youtube.com/watch?v=N5Zx_ZrrtKE&feature=youtu.be

【问题讨论】:

  • 您能否提供重现此问题所需的确切步骤? (例如 1. Go here 2. Click that 3. Enter this 4. ...etc.您甚至可以添加自己创建新笔记本并显示此错误的视频)。理想的详细程度是让拥有 GCP 帐户的 12 岁儿童可以在自己的帐户上重现您的问题
  • 你试过pip uninstall tensorflow + pip3 uninstall tensorflow 然后pip3 install tensorflow-gpu 吗?
  • @ZainRizvi 我会尝试完成一个视频,但基本上步骤是...... 1. 使用 AI Platform 菜单选项创建一个笔记本实例,带有 tensorflow2.0、100gb 硬盘和单个特斯拉K80 GPU 卡。 2. 确保选中安装 nvidia 驱动程序的复选框 3. 打开实例并首次打开笔记本 4. 通过内置 jupyter notebook 上传选项从本地硬盘上传我的数据集 5. 编写我的模型/训练代码
  • 6.训练我的模型 7。模型训练就像我在 MacBook Air CPU 8 上运行它一样慢。在模型训练期间运行 nvidia-smi 仍然显示“No Running Processes”
  • 你用什么代码来训练? github.com/aymericdamien/TensorFlow-Examples/blob/master/…可以这样开始简单的代码吗?

标签: tensorflow google-cloud-platform jupyter-notebook google-cloud-ml gcp-ai-platform-notebook


【解决方案1】:

一般来说,您会希望尝试使用可能重现错误的尽可能少的代码来调试此类问题。这消除了您所看到的问题的许多可能原因。

在这种情况下,您可以通过运行此代码(复制自TensorFlow 2.0 GPU instructions)来检查您的 GPU 是否正在使用:

import tensorflow as tf
print("GPU Available: ", tf.test.is_gpu_available())

tf.debugging.set_log_device_placement(True)

# Create some tensors
a = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
b = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
c = tf.matmul(a, b)

print(c)

在同一个 TF 2.0 Notebook 上运行它会给我输出:

GPU Available:  True
Executing op MatMul in device /job:localhost/replica:0/task:0/device:GPU:0
tf.Tensor(
[[22. 28.]
 [49. 64.]], shape=(2, 2), dtype=float32)

这表明它正在使用 GPU

同样,如果您需要更多证据,运行 nvidia-smi 会给出输出:

jupyter@tf2:~$ nvidia-smi
Tue Jul 30 00:59:58 2019
+-----------------------------------------------------------------------------+
| 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   36C    P0    58W / 149W |  10900MiB / 11441MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      7852      C   /usr/bin/python3                           10887MiB |
+-----------------------------------------------------------------------------+

那么为什么您的代码不使用 GPU?您正在使用其他人编写的库,可能是出于教程目的。这些库函数很可能正在做一些导致使用 CPU 而不是 GPU 的事情。

您需要直接调试该代码。

【讨论】:

    猜你喜欢
    • 2021-05-01
    • 2020-03-13
    • 1970-01-01
    • 2020-06-08
    • 2020-05-09
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    • 2017-12-26
    相关资源
    最近更新 更多