GCP AI 平台训练不能使用完整的 GPU 配额

GCP AI platform training cannot use full GPU quota

在 GCP -> IAM & admin -> Quotas 页面上,服务 "Compute Engine API NVidia V100 GPUs" for us-central1 show Limit is 4. 但是当我使用以下命令在 GCP AI 平台上提交训练作业时,我得到了一个错误说最大允许的 V100 GPU 是 2。

命令如下:

gcloud beta ai-platform jobs submit training $JOB_NAME \
    --staging-bucket $PACKAGE_STAGING_PATH \
    --job-dir $JOB_DIR  \
    --package-path $TRAINER_PACKAGE_PATH \
    --module-name $MAIN_TRAINER_MODULE \
    --python-version 3.5 \
    --region us-central1 \
    --runtime-version 1.14 \
    --scale-tier custom \
    --master-machine-type n1-standard-8 \
    --master-accelerator count=4,type=nvidia-tesla-v100 \
    -- \
    --data_dir=$DATA_DIR \
    --initial_epoch=$INITIAL_EPOCH \
    --num_epochs=$NUM_EPOCHS

错误信息如下:

ERROR: (gcloud.beta.ai-platform.jobs.submit.training) RESOURCE_EXHAUSTED: Quota failure for project [PROJECT_ID]. The request for 4 V100 accelerators exceeds the allowed m
aximum of 16 TPU_V2, 16 TPU_V3, 2 P4, 2 V100, 40 K80, 40 P100, 8 T4. To read more about Cloud ML Engine quota, see https://cloud.google.com/ml-engine/quotas.
- '@type': type.googleapis.com/google.rpc.QuotaFailure
  violations:
  - description: The request for 4 V100 accelerators exceeds the allowed maximum of
      16 TPU_V2, 16 TPU_V3, 2 P4, 2 V100, 40 K80, 40 P100, 8 T4.
    subject: [PROJECT_ID]

这里是 GPUs on Compute Engine webpageus-central1-aus-central1-bus-central1-cus-central1-f 区域有 8 个 NVIDIA® Tesla® V100 GPU 可用.我的默认区域是 us-central1-c.

如何使用所有 4 个 V100 GPU 进行训练?谢谢。

更新 1(2020 年 1 月 14 日): 在 this page,它说明了需要增加的全球 GPU 配额以匹配每个区域的配额。但是我在配额页面上找不到它。

To protect Compute Engine systems and users, new projects have a global GPU quota, which limits the total number of GPUs you can create in any supported zone. When you request a GPU quota, you must request a quota for the GPU models that you want to create in each region, and an additional global quota for the total number of GPUs of all types in all zones.

更新 2(2020 年 1 月 14 日): 我联系了 GCP 以增加全球 GPU 配额以匹配我的区域配额。他们回答说对于某些项目来说这是需要的,但是对于我的项目来说没有必要这样做。

这个 documentation link 可能会阐明您的错误:

"The GPUs that you use for prediction are not counted as GPUs for Compute Engine, and the quota for AI Platform Training does not give you access to any Compute Engine VMs using GPUs. If you want to spin up a Compute Engine VM using a GPU, you must request Compute Engine GPU quota, as described in the Compute Engine documentation."

Google 人们告诉我“有一个 V100 GPUS 配额和一个 V100 VWS GPUS 配额。您项目中的 VWS 配额只有 1。不确定这里需要哪个,但可能有是根本原因。”他们调整配额后,现在我最多可以附加8个V100 GPU进行训练工作。