在 Google 云上使用 GPU 的 Tensorflow

Tensorflow with GPU on Google Cloud

我有一个使用 tensorflow 的 Google 机器学习模型,没问题。 现在我想用 GPU 做一些预测。 我看到了这个 link,但它讲述的是使用 GPU 进行训练而不是预测。预测会话中没有关于 GPU 的内容。

有人知道是否可以使用带 GPU 的 google 机器学习引擎进行预测吗?或者,如果我使用 GPU 进行训练,我的预测会自动 运行 with GPU?

我正在使用以下命令行:

gcloud ml-engine predict --model ${MODEL_NAME} --json-instances request.json

此命令有效,但它使用的是 CPU。 附加信息:我的模型发布在us-east1区,我的比例是自动的。

这个站点有一些信息:

https://cloud.google.com/ml-engine/docs/how-tos/getting-started-training-prediction

然而,这是一种完全不同的训练和预测方式。他们提供了在其服务基础设施上进行培训和预测的方法。您只需使用 Tensorflow 程序构建模型,然后将他们的硬件与他们的云 SDK 一起使用。所以无论它是在 CPU 还是 GPU 上运行都不会打扰你。

您不能选择使用 GPU 在 ml-engine 中进行预测。不清楚他们是否默认使用 GPU——我会 link 文档,但有 none 可用。

不过,我确信他们没有使用 TPU。目前,Google 仅将 TPU 用于内部服务;尽管他们专门为研究人员创建了一个 TPU 云来进行实验:https://yourstory.com/2017/05/google-cloud-tpus-machine-learning-models-training/

如果您想更好地控制预测的方式 运行,您可以以相同的价格配置 Google 具有高性能 Tesla K80 GPU 的计算引擎。您的 Tensorflow 模型也可以在那里工作,而且设置起来很简单。

我的建议是使用您的 GCE 实例进行基准预测,然后将它们与 ml 引擎进行比较。如果 ml-engine 比 GCE 快,那么 Google 可能正在使用 GPU 进行预测。当然,他们的目标是在未来提供 GPU 和 TPU 作为机器学习引擎,但如今 HPC 云的需求正在超载。

GCP ML Engine 上的在线预测默认使用具有高延迟的单核 CPUs。如果它符合您的要求,您可以使用四核 CPU 来更快地提供预测。要使用它,您必须为在 ML 引擎上创建模型版本的预测指定 CPU 的类型。 Link 到文档:https://cloud.google.com/ml-engine/docs/tensorflow/online-predict.

我们现在支持 GPU。文档 here!

示例:

gcloud beta ai-platform versions create version_name \
  --model model_name \
  --origin gs://model-directory-uri \
  --runtime-version 2.1 \
  --python-version 3.7 \
  --framework tensorflow \
  --machine-type n1-standard-4 \
  --accelerator count=1,type=nvidia-tesla-t4 \
  --config config.yaml

如果您的模型版本使用一种 Compute Engine (N1) 机器类型,您可以选择添加 GPU 来加速每个预测节点。

  • NVIDIA Tesla K80
  • NVIDIA Tesla P4
  • NVIDIA Tesla P100
  • NVIDIA Tesla T4
  • NVIDIA Tesla V100