Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Guia do usuário de recursos na fila

Os recursos na fila permitem solicitar recursos do Cloud TPU de maneira filada. Quando você solicita recursos na fila, a solicitação é adicionada a uma fila mantida pelo serviço da Cloud TPU. Quando o recurso solicitado fica disponível, ele é atribuído ao seu projeto do Google Cloud para uso exclusivo imediato. Ele permanecerá atribuído ao projeto, a menos que você o exclua ou tenha uma interrupção forçada. Somente TPUs preemptivas estão qualificadas para preempção.

É possível especificar um horário de início e/ou de término em uma solicitação de recurso na fila. O horário de início especifica o primeiro horário em que a solicitação será atendida. Se uma solicitação não tiver sido preenchida pelo horário de término especificado, a solicitação expirará. A solicitação permanece na fila após expirar.

As solicitações de recursos na fila podem estar em um dos seguintes estados:

ACCEPTED
A solicitação foi adicionada à fila.
ACTIVE
A solicitação foi alocada.
FAILED
Não foi possível concluir a solicitação.
SUSPENDED
Os recursos especificados na solicitação foram excluídos.

Quando uma solicitação de recurso na fila é adicionada à fila, o estado dela é definido como ACCEPTED. Ela permanece nesse estado até ser alocada ou até que o intervalo de alocação decorra.

Quando a solicitação é alocada, o estado dela é definido como ACTIVE. Quando um intervalo de alocação de uma solicitação termina, o estado dele permanece no estado ACCEPTED, mas não está mais qualificado para alocação. As solicitações de recursos na fila permanecem na fila até serem excluídas explicitamente.

Quando os recursos especificados em uma solicitação são excluídos, a solicitação passa para o estado SUSPENDED. Quando uma solicitação está no estado SUSPENDED, ela não está mais qualificada para mais alocações.

Se houver um problema com uma solicitação ou os recursos solicitados não estiverem disponíveis, a solicitação será transferida para o estado FAILED.

É possível visualizar o status do recurso na fila usando os comandos gcloud alpha compute tpus queued-resources describe ou gcloud alpha compute tpus queued-resources list.

Quando as solicitações de recursos na fila estão no estado ACTIVE, é possível gerenciar suas VMs de TPU seguindo o guia do usuário da VM do Cloud TPU".

Pré-requisitos:

Antes de ler este guia, faça o seguinte:

Solicitar uma solicitação de recurso com fila usando a cota reservada

É possível solicitar um recurso na fila usando a cota reservada especificando a sinalização --reserved no comando gcloud ou guaranteed.reserved=true na solicitação curl.

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

Descrições dos parâmetros de comando

queued-resource-id
O ID atribuído pelo usuário da solicitação de recurso na fila.
node-id
O ID atribuído pelo usuário da TPU que é criado quando a solicitação de recurso na fila é alocada.
project
Seu projeto do Google Cloud.
zone
A zona em que você planeja criar a Cloud TPU.
accelerator-type
O tipo da Cloud TPU a ser criada.
runtime-version
A versão do software do Cloud TPU.
reserved
Use essa sinalização ao solicitar recursos na fila como parte de uma reserva do Cloud TPU.

Solicitar um recurso na fila sob demanda

É possível solicitar um recurso em fila sob demanda omitindo a sinalização --reserved no comando gcloud CLI ou guaranteed.reserved na solicitação curl. Exemplo:

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

Descrições dos parâmetros de comando

queued-resource-id
O ID atribuído pelo usuário da solicitação de recurso na fila.
node-id
O ID atribuído pelo usuário da TPU que é criado quando a solicitação de recurso na fila é alocada.
project
Seu projeto do Google Cloud.
zone
A zona em que você planeja criar a Cloud TPU.
accelerator-type
O tipo da Cloud TPU a ser criada.
runtime-version
A versão do software do Cloud TPU.

Solicitar um recurso na fila que expire após uma duração especificada

É possível especificar por quanto tempo uma solicitação de recurso na fila permanece válida usando a sinalização --valid-until-duration. O exemplo a seguir solicita uma v4-32 que expira se não for preenchida em seis horas. Após a duração especificada, a solicitação permanecerá na fila, mas não estará mais qualificada para alocação.

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

Descrições dos parâmetros de comando

queued-resource-request-id
O ID atribuído pelo usuário da solicitação de recurso na fila.
node-id
O ID definido pelo usuário da TPU criado em resposta à solicitação.
project
O projeto do Google Cloud em que o recurso na fila está alocado.
zone
A zona em que você planeja criar a Cloud TPU.
accelerator-type
O tipo da Cloud TPU a ser criada.
runtime-version
A versão do software do Cloud TPU.
valid-until-duration
Por quanto tempo a solicitação é válida. Para mais informações sobre os formatos de duração, consulte Data e hora do tópico do Google Cloud CLI

Solicitar um recurso na fila após um período especificado

É possível especificar um período após o qual um recurso será alocado usando a sinalização --valid-after-time.

O comando a seguir solicita que uma TPU v4-4096 com a versão de ambiente de execução tpu-vm-tf-2.11.0 seja alocada após as 9h em 14 de dezembro de 2022.

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

Descrições dos parâmetros de comando

queued-resource-request-id
O ID atribuído pelo usuário da solicitação de recurso na fila.
node-id
O ID definido pelo usuário da TPU criado em resposta à solicitação.
project
O projeto do Google Cloud em que o recurso na fila está alocado.
zone
A zona em que você planeja criar a Cloud TPU.
accelerator-type
O tipo da Cloud TPU a ser criada.
runtime-version
A versão do software do Cloud TPU.
valid-after-time
Após esse período, o recurso deve ser alocado. Para mais informações sobre formatos de duração, consulte Data/hora do tópico da Google Cloud CLI.

Solicitar um recurso na fila antes de um período especificado

É possível especificar um horário antes da alocação do recurso usando a sinalização --valid-until-time. Se uma TPU não tiver sido alocada nesse momento, a solicitação permanecerá na fila, mas não estará mais qualificada para isso.

O comando a seguir solicita que um nó de TPU v4-4096 com a versão de ambiente de execução tpu-vm-tf-2.10.0-pod seja criado até 14 de dezembro de 2022, às 9h. Consulte Data e hora para ver uma lista de formatos de carimbo de data/hora compatíveis.

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

Descrições dos parâmetros de comando

queued-resource-request-id
O ID atribuído pelo usuário da solicitação de recurso na fila.
node-id
O ID definido pelo usuário da TPU criado em resposta à solicitação.
project
O ID do projeto em que o recurso na fila está alocado.
zone
A zona em que você planeja criar a Cloud TPU.
accelerator-type
O tipo da Cloud TPU a ser criada.
runtime-version
A versão do software do Cloud TPU.
valid-until-time
Período após o cancelamento da solicitação. Para mais informações sobre os formatos de duração, consulte Data e hora do tópico da Google Cloud CLI.

Solicitar um recurso na fila preemptiva

É possível solicitar um recurso com fila preemptiva. Um recurso preemptivo pode ser atribuído a outra carga de trabalho se recursos extras forem necessários para outras cargas de trabalho. Os recursos preemptivos custam menos e você pode ter acesso aos recursos antes de uma solicitação não preemptiva.

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

Descrições dos parâmetros de comando

queued-resource-request-id
O ID atribuído pelo usuário da solicitação de recurso na fila.
node-id
O ID definido pelo usuário da TPU criado em resposta à solicitação.
project
O ID do projeto em que o recurso na fila está alocado.
zone
A zona em que você planeja criar a Cloud TPU.
accelerator-type
O tipo da Cloud TPU a ser criada.
runtime-version
A versão do software do Cloud TPU.
best-effort
Uma sinalização booleana especificando que o recurso na fila é preemptivo.

Solicitar um recurso na fila em um período especificado

É possível especificar por quanto tempo a solicitação permanece válida usando a sinalização --valid-until-duration. Se a solicitação não for alocada antes do término da duração, a solicitação permanecerá na fila, mas não estará mais qualificada para alocação. O exemplo a seguir solicita que uma v4-32 seja alocada nas próximas seis horas.

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

Descrições dos parâmetros de comando

queued-resource-request-id
O ID atribuído pelo usuário da solicitação de recurso na fila.
node-id
O ID definido pelo usuário da TPU criado em resposta à solicitação.
project
O ID do projeto em que o recurso na fila está alocado.
zone
A zona em que você planeja criar a Cloud TPU.
accelerator-type
O tipo da Cloud TPU a ser criada.
runtime-version
A versão do software do Cloud TPU.
valid-until-duration
Por quanto tempo a solicitação é válida. Para mais informações sobre os formatos de duração, consulte Data e hora do tópico da Google Cloud CLI.

Solicitar a alocação de um recurso na fila em um intervalo especificado

É possível especificar um intervalo de alocação usando qualquer par de sinalizações –valid-after-time, –valid-after-duration, –valid-until-duration e –valid-until-time, desde que uma especifique o início do intervalo e a outra especifique o fim dele. Se a solicitação não tiver sido alocada na duração especificada, ela permanecerá na fila, mas não será provisionada.

O comando a seguir solicita uma v4-32 em 5 horas e 30 minutos a partir do horário atual. Consulte Data e hora para ver uma lista de formatos compatíveis de carimbo de data/hora e duração.

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

Descrições de sinalizações de comando

queued-resource-request-id
O ID atribuído pelo usuário da solicitação de recurso na fila.
node-id
O ID definido pelo usuário da TPU criado em resposta à solicitação.
project
O ID do projeto em que o recurso na fila está alocado.
zone
A zona em que você planeja criar a Cloud TPU.
accelerator-type
O tipo da Cloud TPU a ser criada.
runtime-version
A versão do software do Cloud TPU.
valid-until-timw
Período após o cancelamento da solicitação. Para mais informações sobre os formatos de duração, consulte Data e hora do tópico da Google Cloud CLI.
valid-until-duration
Por quanto tempo a solicitação é válida. Para mais informações sobre os formatos de duração, consulte Data e hora do tópico da Google Cloud CLI.

Excluir uma solicitação de recurso na fila

Para excluir uma solicitação de recurso na fila, é preciso excluir a VM da TPU primeiro. Quando você exclui a VM da TPU, a solicitação passa para o estado SUSPENDED.

Os comandos a seguir excluem a solicitação de recurso na fila chamada "my-queued-resource" no projeto "my-project" na zona "us-central2-b".

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

Descrições de sinalizações de comando

queued-resource-request-id
O ID atribuído pelo usuário da solicitação de recurso na fila.
project
O projeto do Google Cloud em que o recurso na fila está alocado.
zone
A zona em que você planeja criar a Cloud TPU.

Recuperar informações de estado e diagnósticos sobre uma solicitação de recurso na fila

Recupere as informações de estado e de diagnóstico sobre uma solicitação de recurso na fila:

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

Descrições de sinalizações de comando

queued-resource-request-id
O ID atribuído pelo usuário da solicitação de recurso na fila.
project
O ID do projeto em que o recurso na fila está alocado.
zone
A zona em que você planeja criar a Cloud TPU.

Se a solicitação falhar, a resposta conterá informações de erro. A saída de gcloud alpha compute tpus queued-resources describe vai ser semelhante à seguinte:

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

Listar as solicitações de recursos na fila no projeto

O comando a seguir lista as solicitações de recursos na fila no projeto "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

Descrições de sinalizações de comando

project
O projeto do Google Cloud em que o recurso na fila está alocado.
zone
A zona em que você planeja criar a Cloud TPU.

Gerenciar solicitações de recursos na fila usando o curl

A emissão de comandos da API Queued Resource usando HTTP exige um cabeçalho Authorization. Para recuperar o cabeçalho, execute gcloud auth print-access-token.

Crie um arquivo (por exemplo, "req.json") para armazenar o corpo da solicitação HTTP.

Para solicitar uma única TPU, use o texto a seguir no corpo da solicitação 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'
            }
        }
    }
}

Para solicitar uma única TPU com um script de inicialização, use o texto a seguir no corpo da solicitação 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"
                }
            }
        }
    }
}

O comando a seguir mostra como fazer a solicitação HTTP com curl:

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}

A resposta ao comando será semelhante a esta:

{
    "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
}

É possível verificar o progresso da sua solicitação usando 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}

Verifique o status de todas as solicitações de recursos na fila no projeto usando 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