Este documento explica como criar e executar um job que usa uma unidade de processamento gráfico (GPU). Para saber mais sobre os recursos e as restrições de GPUs, consulte Sobre GPUs na documentação do Compute Engine.
Ao criar um job em lote, você pode usar GPUs para acelerar cargas de trabalho específicas. Os casos de uso comuns para jobs que usam GPUs incluem processamento de dados intensivo e cargas de trabalho de inteligência artificial (IA), como machine learning (ML).
Antes de começar
- Se você nunca usou o Batch, consulte Começar a usar o Batch e ative o Batch concluindo os pré-requisitos para projetos e usuários.
-
Para receber as permissões necessárias para criar um job, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Editor de jobs em lote (
roles/batch.jobsEditor
) no projeto -
Usuário da conta de serviço (
roles/iam.serviceAccountUser
) na conta de serviço do job, que é a conta de serviço padrão do Compute Engine
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
-
Editor de jobs em lote (
Criar um job que usa GPUs
Para criar um job que usa GPUs, faça o seguinte:
- Planeje os requisitos para um job que usa GPUs.
- Crie uma vaga com os requisitos e métodos que você identificou. Para conferir exemplos de como criar um job usando as opções recomendadas, consulte Criar um job de exemplo que usa GPUs neste documento.
Planejar os requisitos de um job que usa GPUs
Antes de criar um job que usa GPUs, planeje os requisitos do job conforme explicado nas seções a seguir:
- Selecionar o tipo de máquina de GPU e o método de provisionamento
- Instalar os drivers da GPU
- Definir recursos de VM compatíveis
Etapa 1: selecionar o tipo de máquina de GPU e o método de provisionamento
Os requisitos de um job variam de acordo com o tipo de máquina de GPU e o método de provisionamento preferidos, e as opções de cada um podem ser interdependentes. Com base nos requisitos e prioridades, você pode selecionar o tipo de máquina de GPU primeiro ou o método de provisionamento. Geralmente, o tipo de máquina GPU afeta principalmente o desempenho e o preço base, e o método de provisionamento afeta principalmente a disponibilidade de recursos e custos ou descontos adicionais.
Selecionar o tipo de máquina de GPU
Os tipos de máquina de GPU disponíveis (as combinações válidas de tipo de GPU, número de GPUs e tipo de máquina (vCPUs e memória)) e os respectivos casos de uso estão listados na página Tipos de máquina de GPU na documentação do Compute Engine.
Os campos necessários para que um job especifique um tipo de máquina de GPU variam com base nas categorias da tabela a seguir:
Tipos de máquina de GPU e os requisitos do job | |
---|---|
GPUs para VMs com otimização de acelerador: as VMs com um tipo de máquina da família de máquinas com otimização de acelerador têm um tipo e um número específico de GPUs anexadas automaticamente. |
Para usar GPUs em VMs otimizadas para aceleradores, recomendamos especificar o tipo de máquina. Cada tipo de máquina com otimização de acelerador oferece suporte apenas a um tipo e número específicos de GPUs. Portanto, ele é funcionalmente equivalente, independentemente de você especificar ou não esses valores, além do tipo de máquina com otimização de acelerador. Especificamente, o lote também oferece suporte à especificação apenas do tipo e do número de GPUs para VMs otimizadas para acelerador, mas as opções de vCPU e memória resultantes geralmente são muito limitadas. Por isso, recomendamos verificar se as opções de vCPU e memória disponíveis são compatíveis com os requisitos da tarefa. |
GPUs para VMs N1: essas GPUs exigem que você especifique o tipo e a quantidade a serem anexados a cada VM e precisam ser anexadas a VMs com um tipo de máquina da série de máquinas N1. |
Para usar GPUs em VMs N1, recomendamos especificar pelo menos o tipo e o número de GPUs. Verifique se a combinação de valores corresponde a uma das opções de GPU válidas para os tipos de máquina N1. As opções de vCPU e memória para VMs N1 que usam qualquer tipo e número de GPUs específicos são bastante flexíveis. A menos que você crie o job usando o console do Google Cloud , é possível permitir que o Batch selecione automaticamente um tipo de máquina que atenda aos requisitos da tarefa. |
Selecionar o método de provisionamento
O lote usa métodos diferentes para provisionar os recursos da VM para jobs que usam GPUs com base no tipo de recursos solicitados. Os métodos de provisionamento disponíveis e os requisitos deles são explicados na tabela a seguir, que os lista com base nos casos de uso: da maior para a menor disponibilidade de recursos.
Em resumo, recomendamos que a maioria dos usuários faça o seguinte:
Quando você pretende usar tipos de máquina de GPU A3 sem uma reserva, use o Dynamic Workload Scheduler para lote (pré-lançamento).
Para todos os outros tipos de máquina de GPU, use o método de provisionamento padrão. O método de provisionamento padrão geralmente é sob demanda. Uma exceção é se o projeto tiver reservas não utilizadas que a job possa consumir automaticamente.
Métodos de provisionamento e os requisitos de trabalho | |
---|---|
Reservas
|
O lote usa reservas para jobs que podem consumir reservas não utilizadas. Para mais informações sobre reservas e os requisitos delas, consulte a página Garantir a disponibilidade de recursos usando reservas de VM. |
Programador dinâmico de cargas de trabalho para lote (Visualização)
|
O lote usa o Dynamic Workload Scheduler para jobs que fazem o seguinte:
|
Sob demanda
|
O lote usa sob demanda para todos os outros jobs. |
Spot VMs
|
O lote usa VMs spot para jobs que definem
o campo |
Etapa 2: instalar os drivers da GPU
Para usar GPUs em um job, é necessário instalar os drivers da GPU. Para instalar os drivers da GPU, selecione um dos seguintes métodos:
Instalar drivers de GPU automaticamente (recomendado, se possível): como mostrado nos exemplos, para permitir que o lote busque os drivers de GPU necessários de um local de terceiros e os instale em seu nome, defina o campo
installGpuDrivers
do job comotrue
. Esse método é recomendado se o trabalho não exigir a instalação manual de drivers.Opcionalmente, se você precisar especificar qual versão do driver da GPU será instalada em lote, defina também o campo
driverVersion
.Instalar drivers de GPU manualmente:esse método é necessário se uma das seguintes condições for verdadeira:
- Um job usa executáveis de script e contêiner e não tem acesso à Internet. Para mais informações sobre o acesso de um job, consulte Visão geral da rede em lote.
- Um job usa uma imagem de VM personalizada. Para saber mais sobre as imagens do SO da VM e quais você pode usar, consulte Visão geral do ambiente do SO da VM.
Para instalar manualmente os drivers de GPU necessários, recomendamos o seguinte método:
Crie uma imagem de VM personalizada que inclua os drivers de GPU.
Para instalar drivers de GPU, execute um script de instalação com base no SO que você quer usar:
Se o job tiver contêineres executáveis e não usar o Container-Optimized OS, também será necessário instalar o NVIDIA Container Toolkit.
Ao criar e enviar um job que usa GPUs, especifique a imagem da VM personalizada que inclui os drivers da GPU e defina o campo
installGpuDrivers
do job comofalse
(padrão).
Etapa 3: definir recursos de VM compatíveis
Para saber mais sobre os requisitos e as opções para definir os recursos de VM de um job, consulte Recursos de job.
Em resumo, você precisa fazer o seguinte ao definir os recursos da VM para um job que usa GPUs:
Verifique se o tipo de máquina da GPU está disponível no local das VMs do job.
Para saber onde os tipos de máquina de GPU estão disponíveis, consulte Disponibilidade de GPU por região e zona na documentação do Compute Engine.
Se você especificar o tipo de máquina do job, verifique se ele tem vCPUs e memória suficientes para os requisitos da tarefa. Especificar o tipo de máquina do job é necessário sempre que você cria um job usando o console do Google Cloud . É recomendável criar um job que usa GPUs para VMs otimizadas para aceleradores.
Defina os recursos da VM para um job usando um método válido:
- Defina os recursos da VM diretamente usando o campo
instances[].policy
(recomendado se possível). Esse método é mostrado nos exemplos. - Defina os recursos da VM usando um modelo com o campo
instances[].instanceTemplate
. Esse método é necessário para instalar manualmente os drivers da GPU usando uma imagem personalizada. Para mais informações, consulte Definir recursos de job usando um modelo de instância de VM.
- Defina os recursos da VM diretamente usando o campo
Criar um job de exemplo que usa GPUs
As seções a seguir explicam como criar um job de exemplo para cada tipo de máquina de GPU usando as opções recomendadas. Especificamente, os jobs de exemplo instalam drivers de GPU automaticamente, definem recursos de VM diretamente e especificam o método de provisionamento ou usam o método de provisionamento padrão.
- Usar GPUs para VMs A3 com o Dynamic Workload Scheduler (pré-lançamento)
- Usar GPUs para VMs otimizadas para aceleradores
- Usar GPUs para VMs N1
Usar GPUs para VMs A3 com o Dynamic Workload Scheduler para lote (pré-lançamento)
É possível criar um job que usa GPUs para VMs A3 pelo Dynamic Workload Scheduler usando a CLI gcloud ou a API Batch.
gcloud
Crie um arquivo JSON que instale drivers de GPU, especifique um tipo de máquina da série A3, bloqueie reservas e seja executado em um local com o tipo de máquina GPU.
Por exemplo, para criar um job de script básico que usa GPUs para VMs A3 pelo Dynamic Workload Scheduler, crie um arquivo JSON com o seguinte conteúdo:
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}." } } ] }, "taskCount": 3, "parallelism": 1 } ], "allocationPolicy": { "instances": [ { "installGpuDrivers": INSTALL_GPU_DRIVERS, "policy": { "machineType": "MACHINE_TYPE", "reservation": "NO_RESERVATION" } } ], "location": { "allowedLocations": [ "ALLOWED_LOCATIONS" ] } }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }
Substitua:
INSTALL_GPU_DRIVERS
: quando definido comotrue
, o lote busca os drivers necessários para o tipo de GPU especificado no campopolicy
de um local de terceiros e os instala em seu nome. Se você definir esse campo comofalse
(padrão), será necessário instalar os drivers de GPU manualmente para usar GPUs nesse job.MACHINE_TYPE
: um tipo de máquina da série de máquinas A3.ALLOWED_LOCATIONS
: é possível usar o campoallowedLocations[]
para especificar uma região ou zonas específicas em uma região em que as VMs do seu job podem ser executadas. Por exemplo,regions/us-central1
permite todas as zonas na regiãous-central1
. Especifique os locais que oferecem o tipo de máquina de GPU que você quer para esse job. Caso contrário, se você omitir esse campo, verifique se o local do job oferece o tipo de máquina de GPU.
Para criar e executar o job, use o comando
gcloud batch jobs submit
:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Substitua:
JOB_NAME
: o nome do job.LOCATION
: o local do job.JSON_CONFIGURATION_FILE
: o caminho de um arquivo JSON com os detalhes de configuração do job.
API
Faça uma solicitação POST
para o
método jobs.create
que instala drivers de GPU, especifica um tipo de máquina da série A3,
bloqueia reservas e é executado em um local que tenha o tipo de máquina
GPU.
Por exemplo, para criar um job de script básico que usa GPUs para VMs A3 pelo Dynamic Workload Scheduler, faça a seguinte solicitação:
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world from task ${BATCH_TASK_INDEX}."
}
}
]
},
"taskCount": 3,
"parallelism": 1
}
],
"allocationPolicy": {
"instances": [
{
"installGpuDrivers": INSTALL_GPU_DRIVERS,
"policy": {
"machineType": "MACHINE_TYPE",
"reservation": "NO_RESERVATION"
}
}
],
"location": {
"allowedLocations": [
"ALLOWED_LOCATIONS"
]
}
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Substitua:
PROJECT_ID
: o ID do projeto do seu projeto.LOCATION
: o local do job.JOB_NAME
: o nome do job.INSTALL_GPU_DRIVERS
: quando definido comotrue
, o lote busca os drivers necessários para o tipo de GPU especificado no campopolicy
de um local de terceiros e os instala em seu nome. Se você definir esse campo comofalse
(padrão), será necessário instalar os drivers de GPU manualmente para usar GPUs nesse job.MACHINE_TYPE
: um tipo de máquina da série de máquinas A3.ALLOWED_LOCATIONS
: é possível usar o campoallowedLocations[]
para especificar uma região ou zonas específicas em uma região em que as VMs do seu job podem ser executadas. Por exemplo,regions/us-central1
permite todas as zonas na regiãous-central1
. Especifique os locais que oferecem o tipo de máquina de GPU que você quer para esse job. Caso contrário, se você omitir esse campo, verifique se o local do job oferece o tipo de máquina de GPU.
Usar GPUs para VMs otimizadas para aceleradores
É possível criar um job que usa GPUs para VMs otimizadas para aceleradores usando o console do Google Cloud , a CLI gcloud, a API Batch, Java, Node.js ou Python.
Console
Para criar um job que usa GPUs usando o console do Google Cloud , faça o seguinte:
No console do Google Cloud , acesse a página Lista de jobs.
Clique em
Criar. A página Criar job em lote é aberta. No painel à esquerda, a página Detalhes do job está selecionada.Configure a página Detalhes do job:
Opcional: no campo Nome do job, personalize o nome do job.
Por exemplo, insira
example-gpu-job
.Configure a seção Detalhes da tarefa:
Na janela New runnable, adicione pelo menos um script ou contêiner para que o job seja executado.
Por exemplo, para criar um job de script básico, faça o seguinte:
Marque a caixa de seleção Script. Um campo vai aparecer.
No campo, insira o seguinte script:
echo Hello world from task ${BATCH_TASK_INDEX}.
Clique em Concluído.
No campo Contagem de tarefas, insira o número de tarefas para este job.
Por exemplo, insira
3
.Opcional: no campo Paralelismo, insira o número de tarefas a serem executadas simultaneamente.
Por exemplo, insira
1
(padrão).
Configure a página Especificações do recurso:
No painel à esquerda, clique em Especificações de recursos. A página Especificações do recurso é aberta.
Opcional: na seção Modelo de provisionamento de VM, selecione uma das seguintes opções para o modelo de provisionamento das VMs desse job:
Se o job puder ser interrompido e você quiser VMs com desconto, selecione Spot.
Caso contrário, selecione Padrão (padrão).
Selecione o local do trabalho.
No campo Região, selecione uma região.
No campo Zona, faça o seguinte:
Se você quiser restringir a execução desse job apenas em uma zona específica, selecione uma zona.
Caso contrário, selecione qualquer um (padrão).
Selecione o tipo de máquina de GPU para as VMs desse job:
Nas opções de família de máquinas, clique em GPUs.
No campo Tipo de GPU, selecione o tipo de GPU. Em seguida, no campo Número de GPUs, selecione o número de GPUs para cada VM.
Se você selecionou um dos tipos de GPU para VMs otimizadas para acelerador, o campo Tipo de máquina permite apenas uma opção para o tipo de máquina com base no tipo e no número de GPUs selecionados.
Para instalar automaticamente os drivers da GPU, selecione Instalação do driver da GPU (padrão).
Configure a quantidade de recursos de VM necessários para cada tarefa:
No campo Núcleos, insira a quantidade de vCPUs por tarefa.
Por exemplo, insira
1
(padrão).No campo Memória, insira a quantidade de RAM em GB por tarefa.
Por exemplo, insira
0.5
(padrão).
Clique em Concluído.
Opcional: configure os outros campos para esse job.
Opcional: para revisar a configuração do job, no painel esquerdo, clique em Visualizar.
Clique em Criar.
A página Detalhes do job mostra o job que você criou.
gcloud
Crie um arquivo JSON que instale drivers de GPU, especifique um tipo de máquina da família de máquinas otimizadas para aceleradores e seja executado em um local com o tipo de máquina de GPU.
Por exemplo, para criar um job de script básico que usa GPUs para VMs otimizadas para acelerador, crie um arquivo JSON com o seguinte conteúdo:
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}." } } ] }, "taskCount": 3, "parallelism": 1 } ], "allocationPolicy": { "instances": [ { "installGpuDrivers": INSTALL_GPU_DRIVERS, "policy": { "machineType": "MACHINE_TYPE" } } ], "location": { "allowedLocations": [ "ALLOWED_LOCATIONS" ] } }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }
Substitua:
INSTALL_GPU_DRIVERS
: quando definido comotrue
, o lote busca os drivers necessários para o tipo de GPU especificado no campopolicy
de um local de terceiros e os instala em seu nome. Se você definir esse campo comofalse
(padrão), será necessário instalar os drivers de GPU manualmente para usar GPUs nesse job.MACHINE_TYPE
: um tipo de máquina da família de máquinas com otimização de acelerador.ALLOWED_LOCATIONS
: é possível usar o campoallowedLocations[]
para especificar uma região ou zonas específicas em uma região em que as VMs do seu job podem ser executadas. Por exemplo,regions/us-central1
permite todas as zonas na regiãous-central1
. Especifique os locais que oferecem o tipo de máquina de GPU que você quer para esse job. Caso contrário, se você omitir esse campo, verifique se o local do job oferece o tipo de máquina de GPU.
Para criar e executar o job, use o comando
gcloud batch jobs submit
:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Substitua:
JOB_NAME
: o nome do job.LOCATION
: o local do job.JSON_CONFIGURATION_FILE
: o caminho de um arquivo JSON com os detalhes de configuração do job.
API
Faça uma solicitação POST
para o
método jobs.create
que instala drivers de GPU, especifica um tipo de máquina da
família de máquinas otimizadas para aceleradores e é executado em um local com o
tipo de máquina de GPU.
Por exemplo, para criar um job de script básico que usa GPUs para VMs otimizadas para acelerador, faça a seguinte solicitação:
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world from task ${BATCH_TASK_INDEX}."
}
}
]
},
"taskCount": 3,
"parallelism": 1
}
],
"allocationPolicy": {
"instances": [
{
"installGpuDrivers": INSTALL_GPU_DRIVERS,
"policy": {
"machineType": "MACHINE_TYPE"
}
}
],
"location": {
"allowedLocations": [
"ALLOWED_LOCATIONS"
]
}
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Substitua:
PROJECT_ID
: o ID do projeto do seu projeto.LOCATION
: o local do job.JOB_NAME
: o nome do job.INSTALL_GPU_DRIVERS
: quando definido comotrue
, o lote busca os drivers necessários para o tipo de GPU especificado no campopolicy
de um local de terceiros e os instala em seu nome. Se você definir esse campo comofalse
(padrão), será necessário instalar os drivers de GPU manualmente para usar GPUs nesse job.MACHINE_TYPE
: um tipo de máquina da família de máquinas com otimização de acelerador.ALLOWED_LOCATIONS
: é possível usar o campoallowedLocations[]
para especificar uma região ou zonas específicas em uma região em que as VMs do seu job podem ser executadas. Por exemplo,regions/us-central1
permite todas as zonas na regiãous-central1
. Especifique os locais que oferecem o tipo de máquina de GPU que você quer para esse job. Caso contrário, se você omitir esse campo, verifique se o local do job oferece o tipo de máquina de GPU.
Java
Node.js
Python
Usar GPUs para VMs N1
É possível criar um job que usa GPUs para VMs N1 usando o console do Google Cloud , CLI gcloud, a API Batch, Java, Node.js ou Python.
Console
Para criar um job que usa GPUs usando o console do Google Cloud , faça o seguinte:
No console do Google Cloud , acesse a página Lista de jobs.
Clique em
Criar. A página Criar job em lote é aberta. No painel à esquerda, a página Detalhes do job está selecionada.Configure a página Detalhes do job:
Opcional: no campo Nome do job, personalize o nome do job.
Por exemplo, insira
example-gpu-job
.Configure a seção Detalhes da tarefa:
Na janela New runnable, adicione pelo menos um script ou contêiner para que o job seja executado.
Por exemplo, para criar um job de script básico, faça o seguinte:
Marque a caixa de seleção Script. Um campo vai aparecer.
No campo, insira o seguinte script:
echo Hello world from task ${BATCH_TASK_INDEX}.
Clique em Concluído.
No campo Contagem de tarefas, insira o número de tarefas para este job.
Por exemplo, insira
3
.Opcional: no campo Paralelismo, insira o número de tarefas a serem executadas simultaneamente.
Por exemplo, insira
1
(padrão).
Configure a página Especificações do recurso:
No painel à esquerda, clique em Especificações de recursos. A página Especificações do recurso é aberta.
Opcional: na seção Modelo de provisionamento de VM, selecione uma das seguintes opções para o modelo de provisionamento das VMs desse job:
Se o job puder ser interrompido e você quiser VMs com desconto, selecione Spot.
Caso contrário, selecione Padrão (padrão).
Selecione o local do trabalho.
No campo Região, selecione uma região.
No campo Zona, faça o seguinte:
Se você quiser restringir a execução desse job apenas em uma zona específica, selecione uma zona.
Caso contrário, selecione qualquer um (padrão).
Selecione o tipo de máquina de GPU para as VMs desse job:
Nas opções de família de máquinas, clique em GPUs.
No campo Tipo de GPU, selecione o tipo de GPU.
Se você selecionou um dos tipos de GPU para VMs N1, o campo Série é definido como N1.
No campo Número de GPUs, selecione o número de GPUs para cada VM.
No campo Tipo de máquina, selecione o tipo de máquina.
Para instalar automaticamente os drivers da GPU, selecione Instalação do driver da GPU (padrão).
Configure a quantidade de recursos de VM necessários para cada tarefa:
No campo Núcleos, insira a quantidade de vCPUs por tarefa.
Por exemplo, insira
1
(padrão).No campo Memória, insira a quantidade de RAM em GB por tarefa.
Por exemplo, insira
0.5
(padrão).
Clique em Concluído.
Opcional: configure os outros campos para esse job.
Opcional: para revisar a configuração do job, no painel esquerdo, clique em Visualizar.
Clique em Criar.
A página Detalhes do job mostra o job que você criou.
gcloud
Crie um arquivo JSON que instale drivers de GPU, defina os subcampos
type
ecount
do campoaccelerators[]
e seja executado em um local com o tipo de máquina de GPU.Por exemplo, para criar um job de script básico que usa GPUs para VMs N1 e permite que o lote selecione o tipo de máquina N1 exato, crie um arquivo JSON com o seguinte conteúdo:
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}." } } ] }, "taskCount": 3, "parallelism": 1 } ], "allocationPolicy": { "instances": [ { "installGpuDrivers": INSTALL_GPU_DRIVERS, "policy": { "accelerators": [ { "type": "GPU_TYPE", "count": GPU_COUNT } ] } } ], "location": { "allowedLocations": [ "ALLOWED_LOCATIONS" ] } }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }
Substitua:
INSTALL_GPU_DRIVERS
: quando definido comotrue
, o lote busca os drivers necessários para o tipo de GPU especificado no campopolicy
de um local de terceiros e os instala em seu nome. Se você definir esse campo comofalse
(padrão), será necessário instalar os drivers de GPU manualmente para usar GPUs nesse job.GPU_TYPE
: o tipo de GPU. Para conferir uma lista dos tipos de GPU disponíveis, use o comandogcloud compute accelerator-types list
. Use esse campo apenas para GPUs de VMs N1.GPU_COUNT
: o número de GPUs do tipo especificado. Para mais informações sobre as opções válidas, consulte os tipos de máquinas de GPU para a série de máquinas N1. Use este campo apenas para GPUs de VMs N1.ALLOWED_LOCATIONS
: é possível usar o campoallowedLocations[]
para especificar uma região ou zonas específicas em uma região em que as VMs do seu job podem ser executadas. Por exemplo,regions/us-central1
permite todas as zonas na regiãous-central1
. Especifique os locais que oferecem o tipo de máquina de GPU que você quer para esse job. Caso contrário, se você omitir esse campo, verifique se o local do job oferece o tipo de máquina de GPU.
Para criar e executar o job, use o comando
gcloud batch jobs submit
:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Substitua:
JOB_NAME
: o nome do job.LOCATION
: o local do job.JSON_CONFIGURATION_FILE
: o caminho de um arquivo JSON com os detalhes de configuração do job.
API
Faça uma solicitação POST
para o
método jobs.create
que instala drivers de GPU, define os
subcampos type
e count
do campo accelerators[]
e usa um local que tenha o tipo de máquina
de GPU.
Por exemplo, para criar um job de script básico que use GPUs para VMs N1 e permita que o lote selecione o tipo de máquina N1 exato, faça a seguinte solicitação:
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world from task ${BATCH_TASK_INDEX}."
}
}
]
},
"taskCount": 3,
"parallelism": 1
}
],
"allocationPolicy": {
"instances": [
{
"installGpuDrivers": INSTALL_GPU_DRIVERS,
"policy": {
"accelerators": [
{
"type": "GPU_TYPE",
"count": GPU_COUNT
}
]
}
}
],
"location": {
"allowedLocations": [
"ALLOWED_LOCATIONS"
]
}
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Substitua:
PROJECT_ID
: o ID do projeto do seu projeto.LOCATION
: o local do job.JOB_NAME
: o nome do job.INSTALL_GPU_DRIVERS
: quando definido comotrue
, o lote busca os drivers necessários para o tipo de GPU especificado no campopolicy
de um local de terceiros e os instala em seu nome. Se você definir esse campo comofalse
(padrão), será necessário instalar os drivers de GPU manualmente para usar GPUs nesse job.GPU_TYPE
: o tipo de GPU. Para conferir uma lista dos tipos de GPU disponíveis, use o comandogcloud compute accelerator-types list
. Use este campo apenas para GPUs de VMs N1.GPU_COUNT
: o número de GPUs do tipo especificado. Para mais informações sobre as opções válidas, consulte Tipos de máquinas de GPU para séries de máquinas N1. Use este campo apenas para GPUs de VMs N1.ALLOWED_LOCATIONS
: é possível usar o campoallowedLocations[]
para especificar uma região ou zonas específicas em uma região em que as VMs do seu job podem ser executadas. Por exemplo,regions/us-central1
permite todas as zonas na regiãous-central1
. Especifique os locais que oferecem o tipo de máquina de GPU que você quer para esse job. Caso contrário, se você omitir esse campo, verifique se o local do job oferece o tipo de máquina de GPU.
Java
Node.js
Python
A seguir
- Se você tiver problemas para criar ou executar um job, consulte Solução de problemas.
- Conferir jobs e tarefas.
- Saiba mais sobre as opções de criação de jobs.