Google 云构建在构建时添加 GPU

问题描述 投票:0回答:1

我一直在尝试在 Google 云构建中的构建时添加 GPU 支持(例如用于编译 Flash Attention),但遇到了一些问题。 (此处还讨论了:如何将 GPU 连接到 Google Cloud 构建?

说明

我们的想法是按照此存储库中的说明创建一个新的构建器https://github.com/GoogleCloudPlatform/cloud-builders-community/tree/master/remote-builder

我从构建 GPU 构建器开始:

steps:
- name: 'gcr.io/cloud-builders/docker'
  env: 
  - ZONE=us-east5-b
  args: ['build', '-t', 'grc.io/project/builder/gpu-builder:latest', '.']
images:
- 'grc.io/project/buider/gpu-builder:latest'
options:
  machineType: 'E2_HIGHCPU_8'

我使用命令构建的:

gcloud builds submit --config=cloudbuild.yaml .

图像已推送,一切正常。

目标是使用此构建器并添加

--accelerator
参数以启用 GPU 作为实例,如远程构建器存储库中所述,因此我创建了以下配置文件:

steps: 
- name: grc.io/project/builder/gpu-builder:latest
  waitFor: ["-"]
  env: 
    - INSTANCE_ARGS=--accelerator=type=nvidia-a100-80gb,count=1
    - USERNAME=cloud-user
    - COMMAND=docker run -v /home/cloud-user/workspace:/workspace ubuntu:16.04 bash -xe /workspace/test-scripts/no-op.sh
options:
  machineType: 'E2_HIGHCPU_8'

PS:请注意,我已尝试更改机器类型,但并未考虑在内。

问题

每当我尝试更改机器类型(因为需要在某个区域才能使用某些 GPU)时,它总是尝试采用

'n1-standard-1'
机器类型来构建。基本上这就是错误:

 - Invalid value for field 'resource.machineType': 'https://compute.googleapis.com/compute/v1/projects/operation-405916/zones/us-east5-b/machineTypes/n1-standard-1'. Machine type with name 'n1-standard-1' does not exist in zone 'us-east5-b'.

当我尝试在具有

n1-standard-1
的区域中使用实例时,出现以下错误:

ERROR: (gcloud.compute.instances.create) Could not fetch resource:
 - [n1-standard-1, nvidia-a100-80gb] features are not compatible for creating instance.

(当然,我验证了 A100 在所选区域可用)

[更新] 因此,它适用于将机器类型与

INSTANCE_ARGS
一起使用的答案,但是该技术也不起作用:

+ gcloud compute instances create --accelerator=type=nvidia-a100-80gb,count=1 --machine-type a2-ultragpu-1g builder-9821e1c9-58f1-4829-badb-4cf5a3e69a1f --metadata block-project-ssh-keys=TRUE --metadata-from-file ssh-keys=ssh-keys
ERROR: (gcloud.compute.instances.create) Could not fetch resource:
 - Instances with guest accelerators do not support live migration.
ERROR

问题

=> 可能是什么问题?我尝试过使用

--machine-type
参数进行更改,但也通过在配置文件中添加选项来更改。

=> 还有其他方法可以使用 GPU 进行云构建吗?

google-cloud-platform cloud google-cloud-build
1个回答
2
投票

您必须在

INSTANCE_ARGS
中指定您的机器类型,就像这样

steps: 
- name: grc.io/project/builder/gpu-builder:latest
  waitFor: ["-"]
  env: 
    - INSTANCE_ARGS=--accelerator=type=nvidia-a100-80gb,count=1 --machine-type e2-highcpu-8
    - USERNAME=cloud-user
    - COMMAND=docker run -v /home/cloud-user/workspace:/workspace ubuntu:16.04 bash -xe /workspace/test-scripts/no-op.sh

选项部分是为 Cloud Build 计算机制作的,而不是为远程构建器制作的。

© www.soinside.com 2019 - 2024. All rights reserved.