큐에 추가된 리소스 사용자 가이드
큐에 추가된 리소스를 사용하면 큐에 추가된 방식으로 Cloud TPU 리소스를 요청할 수 있습니다. 큐에 추가된 리소스를 요청하면 요청이 Cloud TPU 서비스에서 유지보수하는 큐에 추가됩니다. 요청된 리소스를 사용할 수 있게 되면 즉시 독점으로 사용 가능하도록 Google Cloud 프로젝트에 할당됩니다. 삭제 또는 선점되지 않는 한 프로젝트에 할당된 상태로 유지됩니다. 선점형 TPU만 선점할 수 있습니다.
큐에 추가된 리소스 요청에서 선택적으로 시작 시간 또는 종료 시간을 지정할 수 있습니다. 시작 시간은 요청을 채울 가장 이른 시간을 지정합니다. 지정된 종료 시간까지 요청이 작성되지 않으면 요청이 만료됩니다. 요청이 만료된 후에도 큐에 남아 있습니다.
큐에 추가된 리소스 요청은 다음 중 하나일 수 있습니다.
ACCEPTED
- 요청이 큐에 추가되었습니다.
ACTIVE
- 요청이 할당되었습니다.
FAILED
- 요청을 완료할 수 없습니다.
SUSPENDED
- 요청에 지정된 리소스가 삭제되었습니다.
큐에 추가된 리소스 요청이 큐에 추가되면 상태는 ACCEPTED
로 설정됩니다. 리소스 요청은 할당되거나 할당 간격이 경과할 때까지 이 상태로 유지됩니다.
요청이 할당되면 상태가 ACTIVE
로 설정됩니다. 요청의 할당 간격이 경과하면 상태는 ACCEPTED
상태로 유지되지만 더 이상 할당할 수 없습니다. 큐에 추가된 리소스 요청은 명시적으로 삭제될 때까지 큐에 남아 있습니다.
요청에 지정된 리소스가 삭제되면 요청이 SUSPENDED
상태로 전환됩니다. 요청이 SUSPENDED
상태이면 더 이상 할당할 수 없습니다.
요청에 문제가 있거나 요청된 리소스를 사용할 수 없는 경우 요청이 FAILED
상태로 전환됩니다.
gcloud alpha compute tpus queued-resources describe
또는 gcloud alpha compute tpus queued-resources list
명령어를 사용하여 큐에 추가된 리소스의 상태를 볼 수 있습니다.
큐에 추가된 리소스 요청이 ACTIVE
상태라면 Cloud TPU VM 사용자 가이드에 따라 TPU VM을 관리할 수 있습니다.
기본 요건:
이 가이드를 읽기 전에 다음을 수행해야 합니다.
- Google Cloud CLI 알파 구성요소 업데이트
- Cloud TPU API 사용 설정
예약된 할당량을 사용하여 큐에 추가된 리소스 요청
gcloud
명령어에 --reserved
플래그를 지정하거나 curl 요청에 guaranteed.reserved=true
를 지정하여 예약된 할당량을 사용해 큐에 추가된 리소스를 요청할 수 있습니다.
gcloud
gcloud alpha compute tpus queued-resources create your-queued-resource-id \ --node-id your-node-id \ --project your-project \ --zone us-central2-b \ --accelerator-type v4-8 \ --runtime-version tpu-vm-tf-2.11.0 \ --reserved
curl
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d "{ 'tpu': { 'node_spec': { 'parent': 'projects/your-project-number/locations/us-central2-b', 'node_id': 'your-node-id', 'node': { 'accelerator_type': 'v4-8', 'runtime_version': 'tpu-vm-tf-2.11.0', } } }, 'guaranteed': { 'reserved': true, } }" \ https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id
명령어 매개변수 설명
주문형 큐에 추가된 리소스 요청
gcloud CLI
명령어에서 --reserved
플래그를 생략하거나 curl 요청에서 guaranteed.reserved
를 생략하여 주문형 큐에 추가된 리소스를 요청할 수 있습니다. 예를 들면 다음과 같습니다.
gcloud
gcloud alpha compute tpus queued-resources create your-queued-resource-id \ --node-id your-node-id \ --project your-project \ --zone us-central2-b \ --accelerator-type v4-8 \ --runtime-version tpu-vm-tf-2.11.0 \
curl
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d "{ 'tpu': { 'node_spec': { 'parent': 'projects/your-project-number/locations/us-central2-b', 'node_id': 'your-node-id', 'node': { 'accelerator_type': 'v4-8', 'runtime_version': 'tpu-vm-tf-2.11.0', } } } }" \ https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id
명령어 매개변수 설명
지정된 기간 후에 만료되는 큐에 추가된 리소스 요청
--valid-until-duration
플래그를 사용하여 큐에 추가된 리소스 요청의 유효한 기간을 지정할 수 있습니다. 다음 예시에서는 6시간 동안 입력하지 않으면 만료되는 v4-32를 요청합니다. 지정된 기간이 지나면 요청은 큐에 남아 있지만 더 이상 할당될 수 없습니다.
gcloud
gcloud alpha compute tpus queued-resources create your-queued-resource-id \ --node-id your-node-id \ --project your-project-id \ --zone us-central2-b \ --accelerator-type v4-32 \ --runtime-version tpu-vm-tf-2.11.0-pod \ --valid-until-duration 6h
curl
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d "{ 'tpu': { 'node_spec': { 'parent': 'projects/your-project-number/locations/us-central2-b', 'node_id': 'your-node-id', 'node': { 'accelerator_type': 'v4-32', 'runtime_version': 'tpu-vm-tf-2.11.0-pod', } } }, 'queueing_policy': { 'valid_until_duration': { 'seconds': 21600 } }" \ https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id
명령어 매개변수 설명
queued-resource-request-id
- 큐에 추가된 리소스 요청의 사용자 할당 ID입니다.
node-id
- 요청에 대한 응답으로 생성된 TPU의 사용자 정의 ID입니다.
project
- 큐에 추가된 리소스가 할당된 Google Cloud 프로젝트입니다.
zone
- Cloud TPU를 생성하려는 영역입니다.
accelerator-type
- 생성할 Cloud TPU의 유형입니다.
runtime-version
- Cloud TPU 소프트웨어 버전입니다.
valid-until-duration
- 요청의 유효 기간입니다. 기간 형식에 대한 자세한 내용은 Google Cloud CLI topic datetime을 참조하세요.
지정된 시간 후에 큐에 추가된 리소스 요청
--valid-after-time
플래그를 사용하여 리소스를 할당해야 하는 시간을 지정할 수 있습니다.
다음 명령어는 2022년 12월 14일 오전 9시 이후에 런타임 버전 tpu-vm-tf-2.11.0
이 할당된 v4-4096 TPU를 요청합니다.
gcloud
gcloud alpha compute tpus queued-resources create your-queued-resource-id \ --node-id your-node-id \ --project your-project-id \ --zone us-central2-b \ --accelerator-type v4-4096 \ --runtime-version tpu-vm-tf-2.11.0-pod \ --valid-after-time 2022-12-14T09:00:00Z
curl
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d "{ 'tpu': { 'node_spec': { 'parent': 'projects/your-project-number/locations/us-central2-b', 'node_id': 'your-node-id', 'node': { 'accelerator_type': 'v4-4096', 'runtime_version': 'tpu-vm-tf-2.11.0-pod', } } }, 'queueing_policy': { 'valid_after_time': { 'seconds': 2022-12-14T09:00:00Z } } }" \ https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id
명령어 매개변수 설명
queued-resource-request-id
- 큐에 추가된 리소스 요청의 사용자 할당 ID입니다.
node-id
- 요청에 대한 응답으로 생성된 TPU의 사용자 정의 ID입니다.
project
- 큐에 추가된 리소스가 할당된 Google Cloud 프로젝트입니다.
zone
- Cloud TPU를 생성하려는 영역입니다.
accelerator-type
- 생성할 Cloud TPU의 유형입니다.
runtime-version
- Cloud TPU 소프트웨어 버전입니다.
valid-after-time
- 이후에는 리소스를 할당해야 합니다. 기간 형식에 대한 자세한 내용은 Google Cloud CLI topic datetime을 참조하세요.
지정된 시간 전에 큐에 추가된 리소스 요청
--valid-until-time
플래그를 사용하여 리소스 할당 시간을 지정할 수 있습니다. 이 시점에서 TPU가 할당되지 않았으면 요청은 큐에 남아 있지만 더 이상 할당될 수 없습니다.
다음 명령어는 늦어도 2022년 12월 14일 오전 9시까지는 런타임 버전 tpu-vm-tf-2.10.0-pod
으로 v4-4096 TPU 노드를 만들도록 요청합니다. 지원되는 타임스탬프 형식 목록은 날짜/시간을 참조하세요.
gcloud
gcloud alpha compute tpus queued-resources create your-queued-resource-id \ --node-id your-node-id \ --project your-project-id \ --zone us-central2-b \ --accelerator-type v4-4096 \ --runtime-version tpu-vm-tf-2.11.0-pod \ --valid-until-time 2022-12-14T09:00:00Z
curl
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d "{ 'tpu': { 'node_spec': { 'parent': 'projects/your-project-number/locations/us-central2-b', 'node_id': 'your-node-id', 'node': { 'accelerator_type': 'v4-4096', 'runtime_version': 'tpu-vm-tf-2.11.0-pod', } } }, 'queueing_policy': { 'valid_until_time': { 'seconds': 1655197200 } } }" \ https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id
명령어 매개변수 설명
queued-resource-request-id
- 큐에 추가된 리소스 요청의 사용자 할당 ID입니다.
node-id
- 요청에 대한 응답으로 생성된 TPU의 사용자 정의 ID입니다.
project
- 큐에 추가된 리소스가 할당된 프로젝트의 ID입니다.
zone
- Cloud TPU를 생성하려는 영역입니다.
accelerator-type
- 생성할 Cloud TPU의 유형입니다.
runtime-version
- Cloud TPU 소프트웨어 버전입니다.
valid-until-time
- 이시간이 지나면 요청이 취소됩니다. 기간 형식에 대한 자세한 내용은 Google Cloud CLI topic datetime을 참조하세요.
큐에 추가된 선점형 리소스 요청
큐에 추가된 선점형 리소스를 요청할 수 있습니다. 선점형 리소스는 다른 워크로드에 추가 리소스가 필요한 경우 다른 워크로드에 할당할 수 있는 리소스입니다. 선점형 리소스는 비용이 낮으며 비선점형 요청에 비해 더 빠르게 리소스에 액세스할 수 있습니다.
gcloud
gcloud alpha compute tpus queued-resources create your-queued-resource-id \ --node-id your-node-id \ --project your-project-id \ --zone us-central2-b \ --accelerator-type v4-8 \ --runtime-version tpu-vm-tf-2.11.0 \ --best-effort
curl
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d "{ 'tpu': { 'node_spec': { 'parent': 'projects/your-project-number/locations/us-central2-b', 'node_id': 'your-node-id', 'node': { 'accelerator_type': 'v4-8', 'runtime_version': 'tpu-vm-tf-2.11.0', } } }, 'best_effort': {} }" \ https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id
명령어 매개변수 설명
지정된 기간 내에 큐에 추가된 리소스 요청
--valid-until-duration
플래그를 사용하여 요청의 유효 기간을 지정할 수 있습니다. 요청이 기간 경과 전에 할당되지 않은 경우 큐에 남아 있지만 더 이상 할당할 수 없습니다. 다음 예시에서는 v4-32를 다음 6시간 이내에 할당하도록 요청합니다.
gcloud
gcloud alpha compute tpus queued-resources create your-queued-resource-id \ --node-id your-node-id \ --project your-project-id \ --zone us-central2-b \ --accelerator-type v4-32 \ --runtime-version tpu-vm-tf-2.11.0-pod \ --valid-until-duration 6h
curl
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d "{ 'tpu': { 'node_spec': { 'parent': 'projects/your-project-number/locations/us-central2-b', 'node_id': 'your-node-id', 'node': { 'accelerator_type': 'v4-32', 'runtime_version': 'tpu-vm-tf-2.11.0-pod', } } }, 'queueing_policy': { 'valid_until_duration': { 'seconds': 21600 } }, }" \ https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id
명령어 매개변수 설명
queued-resource-request-id
- 큐에 추가된 리소스 요청의 사용자 할당 ID입니다.
node-id
- 요청에 대한 응답으로 생성된 TPU의 사용자 정의 ID입니다.
project
- 큐에 추가된 리소스가 할당된 프로젝트의 ID입니다.
zone
- Cloud TPU를 생성하려는 영역입니다.
accelerator-type
- 생성할 Cloud TPU의 유형입니다.
runtime-version
- Cloud TPU 소프트웨어 버전입니다.
valid-until-duration
- 요청의 유효 기간입니다. 기간 형식에 대한 자세한 내용은 Google Cloud CLI topic datetime을 참조하세요.
지정된 간격 내에 할당될 큐에 추가된 리소스 요청
하나의 플래그가 할당 간격의 시작을 지정하고 다른 플래그가 할당 간격을 끝을 지정하면 –valid-after-time
, –valid-after-duration
, –valid-until-duration
, –valid-until-time
플래그의 쌍을 사용하여 할당 간격을 지정할 수 있습니다. 지정된 기간 내에 요청이 할당되지 않은 경우 큐에 남아 있지만 프로비저닝되지 않습니다.
다음 명령어는 현재 시간으로부터 5시간 30분 후에 v4-32를 요청합니다. 지원되는 타임스탬프 및 기간 형식 목록은 날짜/시간을 참조하세요.
gcloud
gcloud alpha compute tpus queued-resources create your-queued-resource-id \ --node-id your-node-id \ --project your-project-id \ --zone us-central2-b \ --accelerator-type v4-32 \ --runtime-version tpu-vm-tf-2.11.0-pod \ --valid-after-duration 5h30m \ --valid-until-time 2022-12-14T09:00:00Z
curl
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d "{ 'tpu': { 'node_spec': { 'parent': 'projects/your-project-number/locations/us-central2-b', 'node_id': 'your-node-id', 'node': { 'accelerator_type': 'v4-32', 'runtime_version': 'tpu-vm-tf-2.11.0-pod', } } }, 'queueing_policy': { 'validInterval': { 'startTime': '2022-12-10T14:30:00Z', 'endTime': '2022-12-14T09:00:00Z' } }, }" \ https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id
명령어 플래그 설명
queued-resource-request-id
- 큐에 추가된 리소스 요청의 사용자 할당 ID입니다.
node-id
- 요청에 대한 응답으로 생성된 TPU의 사용자 정의 ID입니다.
project
- 큐에 추가된 리소스가 할당된 프로젝트의 ID입니다.
zone
- Cloud TPU를 생성하려는 영역입니다.
accelerator-type
- 생성할 Cloud TPU의 유형입니다.
runtime-version
- Cloud TPU 소프트웨어 버전입니다.
valid-until-timw
- 이시간이 지나면 요청이 취소됩니다. 기간 형식에 대한 자세한 내용은 Google Cloud CLI topic datetime을 참조하세요.
valid-until-duration
- 요청의 유효 기간입니다. 기간 형식에 대한 자세한 내용은 Google Cloud CLI topic datetime을 참조하세요.
큐에 추가된 리소스 요청 삭제
큐에 추가된 리소스 요청을 삭제하려면 먼저 TPU VM을 삭제해야 합니다. TPU VM을 삭제하면 요청이 SUSPENDED
상태로 전환됩니다.
다음 명령어는 'us-central2-b' 영역의 'my-project' 프로젝트에서 'my-queued-resource'라는 큐에 추가된 리소스 요청을 삭제합니다.
gcloud
gcloud alpha compute tpus queued-resources delete your-queued-resource-id \ --project your-project-id \ --zone us-central2-b
curl
curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id
HTTP
DELETE https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources/your-queued-resource-id
명령어 플래그 설명
queued-resource-request-id
- 큐에 추가된 리소스 요청의 사용자 할당 ID입니다.
project
- 큐에 추가된 리소스가 할당된 Google Cloud 프로젝트입니다.
zone
- Cloud TPU를 생성하려는 영역입니다.
큐에 추가된 리소스 요청에 대한 상태 및 진단 정보 검색
큐에 추가된 리소스 요청에 대한 상태 및 진단 정보를 검색합니다.
gcloud
gcloud alpha compute tpus queued-resources describe queued-resource-request-id \ --project your-project-id \ --zone us-central2-b
HTTP
GET https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/ us-central2-b/queuedResources/your-queued-resource-id
명령어 플래그 설명
queued-resource-request-id
- 큐에 추가된 리소스 요청의 사용자 할당 ID입니다.
project
- 큐에 추가된 리소스가 할당된 프로젝트의 ID입니다.
zone
- Cloud TPU를 생성하려는 영역입니다.
요청이 실패하면 응답에 오류 정보가 포함됩니다. gcloud alpha compute tpus queued-resources describe
의 출력은 다음과 유사합니다.
name: projects/your-project-id/locations/us-central2-b/queuedResources/your-queued-resource-id state: state: ACCEPTED tpu: nodeSpec: - node: acceleratorType: v4-8 bootDisk: {} networkConfig: enableExternalIps: true queuedResource: projects/your-project-number/locations/us-central2-b/queuedResources/your-queued-resource-id runtimeVersion: tpu-vm-tf-2.10.0 schedulingConfig: {} serviceAccount: {} shieldedInstanceConfig: {} useTpuVm: true nodeId: your-node-id parent: projects/your-project-number/locations/us-central2-b
프로젝트의 큐에 추가된 리소스 요청 나열
다음 명령어는 'your-project-id' 프로젝트의 큐에 추가된 리소스 요청을 나열합니다.
gcloud
gcloud alpha compute tpus queued-resources list --project your-project-id \ --zone us-central2-b
HTTP
GET https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources
명령어 플래그 설명
project
- 큐에 추가된 리소스가 할당된 Google Cloud 프로젝트입니다.
zone
- Cloud TPU를 생성하려는 영역입니다.
curl을 사용하여 큐에 추가된 리소스 요청 관리
HTTP를 사용하여 큐에 추가된 리소스 API 명령어를 실행하려면 승인 헤더가 필요합니다.
gcloud auth print-access-token
를 실행하면 헤더를 검색할 수 있습니다.
HTTP 요청 본문을 저장할 파일(예: 'req.json')을 만듭니다.
단일 TPU를 요청하려면 HTTP 요청 본문에 다음 텍스트를 사용합니다.
{ tpu: { node_spec: { parent: 'projects/your-project-number/locations/us-central2-b', node_id: 'your-node-id', node: { accelerator_type: 'v3-8', runtime_version: 'tpu-vm-tf-2.11.0' } } } }
시작 스크립트가 포함된 단일 TPU를 요청하려면 HTTP 요청 본문에 다음 텍스트를 사용합니다.
{ tpu: { node_spec: { parent: 'projects/your-project-number/locations/us-central2-b', node_id: 'your-node-id', node: { accelerator_type: 'v2-8', runtime_version: 'tpu-vm-tf-2.11.0', metadata: { "startup-script": "#! /bin/bash\npwd > /tmp/out.txt\nwhoami >> /tmp/out.txt" } } } } }
다음 명령어는 curl을 사용하여 HTTP 요청을 수행하는 방법을 보여줍니다.
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" -d @req.json \ $ENDPOINT/$PARENT/queuedResources\?queued_resource_id\=${QUEUED_RESOURCE_ID}
명령어에 대한 응답은 다음과 유사합니다.
{ "name": "projects/your-project-number/locations/us-central1-a/operations/operation-abc..", "metadata": { "@type": "type.googleapis.com/google.cloud.common.OperationMetadata", "createTime": "2022-02-02T22:06:27.402528581Z", "target": "projects/1234/locations/us-central1-a/queuedResources/my-queued-resource", "verb": "create", "cancelRequested": false, "apiVersion": "v2alpha1" }, "done": false }
curl을 사용하여 요청의 진행 상황을 확인할 수 있습니다.
export ENDPOINT="https://tpu.googleapis.com/v2alpha1" export OPERATION_NAME="projects/your-project-id/locations/us-central2-b/operations/operation-abc.." curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" $ENDPOINT/${OPERATION_NAME}
curl을 사용하여 프로젝트에서 큐에 추가된 모든 리소스 요청의 상태를 확인할 수 있습니다.
export ENDPOINT="https://tpu.googleapis.com/v2alpha1" export PARENT="projects/your-project-id/locations/us-central2-b" curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" $ENDPOINT/$PARENT/queuedResources