Este documento explica como criar e executar uma tarefa que usa uma unidade de processamento de gráficos (GPU). Para saber mais acerca das funcionalidades e das restrições das GPUs, consulte o artigo Acerca das GPUs na documentação do Compute Engine.
Quando cria um trabalho em lote, pode usar opcionalmente GPUs para acelerar cargas de trabalho específicas. Os exemplos de utilização comuns para tarefas que usam GPUs incluem o tratamento de dados intensivo e cargas de trabalho de inteligência artificial (IA), como aprendizagem automática (AA).
Antes de começar
- Se nunca usou o Batch, reveja o artigo Comece a usar o Batch e ative o Batch concluindo os pré-requisitos para projetos e utilizadores.
-
Para receber as autorizações de que precisa para criar uma tarefa, peça ao seu administrador para lhe conceder as seguintes funções de IAM:
-
Editor de tarefas em lote (
roles/batch.jobsEditor
) no projeto -
Utilizador da conta de serviço (
roles/iam.serviceAccountUser
) na conta de serviço da tarefa, que, por predefinição, é a conta de serviço predefinida do Compute Engine
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
-
Editor de tarefas em lote (
Crie uma tarefa que use GPUs
Para criar uma tarefa que use GPUs, faça o seguinte:
- Planeie os requisitos para uma tarefa que usa GPUs.
- Crie uma tarefa com os requisitos e os métodos que identificou. Para ver exemplos de como criar uma tarefa com as opções recomendadas, consulte o artigo Crie uma tarefa de exemplo que use GPUs neste documento.
Planeie os requisitos para uma tarefa que usa GPUs
Antes de criar uma tarefa que use GPUs, planeie os requisitos da tarefa, conforme explicado nas secções seguintes:
- Selecione o tipo de máquina com GPU e o método de aprovisionamento
- Instale os controladores da GPU
- Defina recursos de VM compatíveis
Passo 1: selecione o tipo de máquina com GPU e o método de aprovisionamento
Os requisitos de uma tarefa variam com base no tipo de máquina de GPU e no método de aprovisionamento preferenciais, e as opções para cada um podem ser interdependentes. Com base nos seus requisitos e prioridades, pode selecionar primeiro o tipo de máquina de GPU ou selecionar primeiro o método de aprovisionamento. Geralmente, o tipo de máquina de GPU afeta principalmente o desempenho e o preço base, e o método de aprovisionamento afeta principalmente a disponibilidade de recursos e os custos ou descontos adicionais.
Selecione o tipo de máquina com GPU
Os tipos de máquinas com 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 respetivos exemplos de utilização estão listados na página Tipos de máquinas com GPU na documentação do Compute Engine.
Os campos necessários para que uma tarefa especifique um tipo de máquina de GPU variam consoante as categorias na tabela seguinte:
Tipos de máquinas com GPU e os respetivos requisitos de tarefas | |
---|---|
GPUs para VMs otimizadas para aceleradores: as VMs com um tipo de máquina da família de máquinas otimizadas para aceleradores têm um tipo e um número específicos destas GPUs anexados automaticamente. |
Para usar GPUs para VMs otimizadas para aceleradores, recomendamos que especifique o tipo de máquina. Cada tipo de máquina otimizado para aceleradores suporta apenas um tipo e um número específicos de GPUs, pelo que é funcionalmente equivalente especificar ou não esses valores, além do tipo de máquina otimizado para aceleradores. Especificamente, o Batch também suporta a especificação apenas do tipo e do número de GPUs para VMs otimizadas para aceleradores, mas as opções de vCPU e memória resultantes são frequentemente muito limitadas. Como tal, recomendamos que verifique se as opções de vCPU e memória disponíveis são compatíveis com os requisitos das tarefas do trabalho. |
GPUs para VMs N1: estas GPUs requerem que especifique o tipo e a quantidade a anexar a cada VM e têm de ser anexadas a VMs com um tipo de máquina da série de máquinas N1. |
Para usar GPUs para VMs N1, recomendamos que especifique, pelo menos, o tipo de GPUs e o número de GPUs. Certifique-se de que a combinação de valores corresponde a uma das opções de GPU válidas para os tipos de máquinas N1. As opções de vCPU e memória para VMs N1 que usam qualquer tipo específico e número de GPUs são bastante flexíveis. A menos que crie a tarefa através da Google Cloud consola, pode permitir que o Batch selecione automaticamente um tipo de máquina que cumpra os requisitos da tarefa. |
Selecione o método de aprovisionamento
O Batch usa métodos diferentes para aprovisionar os recursos de VMs para tarefas que usam GPUs com base no tipo de recursos que a sua tarefa pede. Os métodos de aprovisionamento disponíveis e os respetivos requisitos são explicados na tabela seguinte, que os apresenta com base nos respetivos exemplos de utilização: da disponibilidade de recursos mais alta para a mais baixa.
Em resumo, recomendamos que a maioria dos utilizadores faça o seguinte:
Quando pretender usar tipos de máquinas de GPU A3 sem uma reserva, use o Dynamic Workload Scheduler para processamento em lote (Pré-visualização).
Para todos os outros tipos de máquinas com GPU, use o método de aprovisionamento predefinido. Normalmente, o método de aprovisionamento predefinido é a pedido, exceto se o seu projeto tiver reservas não usadas que a tarefa possa consumir automaticamente.
Métodos de aprovisionamento e os respetivos requisitos de trabalho | |
---|---|
Reservas
|
O Batch usa reservas para tarefas que podem consumir reservas não usadas. Para mais informações sobre as reservas e os respetivos requisitos, consulte a página Garanta a disponibilidade dos recursos através de reservas de VMs. |
Dynamic Workload Scheduler para o processamento em lote (pré-visualização)
|
O Batch usa o Dynamic Workload Scheduler para tarefas que cumprem todos os seguintes requisitos:
|
A pedido
|
Os trabalhos em lote usam a opção a pedido para todos os outros trabalhos. |
VMs do Spot
|
O Batch usa VMs do Spot para tarefas que definem o campo |
Passo 2: instale os controladores da GPU
Para usar GPUs num trabalho, tem de instalar os controladores de GPU. Para instalar controladores de GPU, selecione um dos seguintes métodos:
Instale automaticamente os controladores da GPU (recomendado, se possível): conforme mostrado nos exemplos, para permitir que o Batch obtenha os controladores da GPU necessários a partir de uma localização de terceiros e os instale em seu nome, defina o campo
installGpuDrivers
para a tarefa comotrue
. Este método é recomendado se o seu trabalho não exigir que instale controladores manualmente.Opcionalmente, se precisar de especificar que versão do controlador da GPU o Batch instala, também defina o campo
driverVersion
.Instale os controladores da GPU manualmente: este método é necessário se alguma das seguintes afirmações for verdadeira:
- Uma tarefa usa scripts e executáveis de contentores e não tem acesso à Internet. Para mais informações sobre o acesso que uma tarefa tem, consulte o artigo Vista geral da rede em lote.
- Uma tarefa usa uma imagem de VM personalizada. Para saber mais sobre as imagens do SO de MV e que imagens do SO de MV pode usar, consulte a vista geral do ambiente do SO de MV.
Para instalar manualmente os controladores da GPU necessários, recomendamos o seguinte método:
Crie uma imagem de VM personalizada que inclua os controladores de GPU.
Para instalar controladores de GPU, execute um script de instalação com base no SO que quer usar:
Se a sua tarefa tiver executáveis de contentores e não usar o SO otimizado para contentores, também tem de instalar o NVIDIA Container Toolkit
Quando cria e envia uma tarefa que usa GPUs, especifique a imagem de VM personalizada que inclui os controladores da GPU e defina o campo
installGpuDrivers
para a tarefa comofalse
(predefinição).
Passo 3: defina recursos de VM compatíveis
Para saber mais sobre os requisitos e as opções para definir os recursos de VM para uma tarefa, consulte o artigo Recursos de tarefas.
Em resumo, tem de fazer o seguinte quando definir os recursos de VM para uma tarefa que usa GPUs:
Certifique-se de que o tipo de máquina de GPU está disponível na localização das VMs da sua tarefa.
Para saber onde os tipos de máquinas com GPU estão disponíveis, consulte o artigo Disponibilidade de GPUs por regiões e zonas na documentação do Compute Engine.
Se especificar o tipo de máquina do trabalho, certifique-se de que esse tipo de máquina tem vCPUs e memória suficientes para os requisitos das tarefas do trabalho. A especificação do tipo de máquina da tarefa é obrigatória sempre que cria uma tarefa através da Google Cloud consola e é recomendada sempre que cria uma tarefa que usa GPUs para VMs otimizadas para aceleradores.
Certifique-se de que define os recursos da VM para uma tarefa através de um método válido:
- Defina os recursos de VM diretamente através do campo
instances[].policy
(recomendado, se possível). Este método é apresentado nos exemplos. - Defina os recursos de VM através de um modelo com o campo
instances[].instanceTemplate
. Este método é necessário para instalar manualmente controladores de GPU através de uma imagem personalizada. Para mais informações, consulte o artigo Defina recursos de tarefas com um modelo de instância de VM.
- Defina os recursos de VM diretamente através do campo
Crie um exemplo de tarefa que use GPUs
As secções seguintes explicam como criar um exemplo de tarefa para cada tipo de máquina de GPU usando as opções recomendadas. Especificamente, todas as tarefas de exemplo instalam automaticamente os controladores de GPU, definem diretamente os recursos de VM e especificam o método de aprovisionamento ou usam o método de aprovisionamento predefinido.
- Use GPUs para VMs A3 através do Dynamic Workload Scheduler (pré-visualização)
- Use GPUs para VMs otimizadas pelo acelerador
- Use GPUs para VMs N1
Use GPUs para VMs A3 através do programador de cargas de trabalho dinâmico para o processamento em lote (pré-visualização)
Pode criar uma tarefa que use GPUs para VMs A3 através do programador de cargas de trabalho dinâmicas com a CLI gcloud ou a API Batch.
gcloud
Crie um ficheiro JSON que instale controladores de GPU, especifique um tipo de máquina da série de máquinas A3, bloqueie reservas e seja executado numa localização que tenha o tipo de máquina de GPU.
Por exemplo, para criar uma tarefa de script básica que use GPUs para VMs A3 através do Dynamic Workload Scheduler, crie um ficheiro 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 o seguinte:
INSTALL_GPU_DRIVERS
: quando definido comotrue
, o comando Batch obtém os controladores necessários para o tipo de GPU especificado no campopolicy
de uma localização de terceiros e instala-os em seu nome. Se definir este campo comofalse
(predefinição), tem de instalar manualmente os controladores da GPU para usar GPUs para esta tarefa.MACHINE_TYPE
: um tipo de máquina da série de máquinas A3.ALLOWED_LOCATIONS
: opcionalmente, pode usar o campoallowedLocations[]
para especificar uma região ou zonas específicas numa região onde as VMs para a sua tarefa podem ser executadas. Por exemplo,regions/us-central1
permite todas as zonas na regiãous-central1
. Certifique-se de que especifica localizações que oferecem o tipo de máquina com GPU que quer para esta tarefa. Caso contrário, se omitir este campo, certifique-se de que a localização do trabalho oferece o tipo de máquina de GPU.
Para criar e executar a tarefa, use o comando
gcloud batch jobs submit
:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Substitua o seguinte:
JOB_NAME
: o nome da tarefa.LOCATION
: a localização do trabalho.JSON_CONFIGURATION_FILE
: o caminho para um ficheiro JSON com os detalhes de configuração da tarefa.
API
Faça um pedido POST
ao método jobs.create
que instala controladores de GPU, especifica um tipo de máquina da série de máquinas A3, bloqueia reservas e é executado numa localização que tem o tipo de máquina de GPU.
Por exemplo, para criar uma tarefa de script básica que use GPUs para VMs A3 através do Dynamic Workload Scheduler, faça o seguinte pedido:
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 o seguinte:
PROJECT_ID
: o ID do projeto do seu projeto.LOCATION
: a localização do trabalho.JOB_NAME
: o nome da tarefa.INSTALL_GPU_DRIVERS
: quando definido comotrue
, o comando Batch obtém os controladores necessários para o tipo de GPU especificado no campopolicy
de uma localização de terceiros e instala-os em seu nome. Se definir este campo comofalse
(predefinição), tem de instalar manualmente os controladores da GPU para usar GPUs para esta tarefa.MACHINE_TYPE
: um tipo de máquina da série de máquinas A3.ALLOWED_LOCATIONS
: opcionalmente, pode usar o campoallowedLocations[]
para especificar uma região ou zonas específicas numa região onde as VMs para a sua tarefa podem ser executadas. Por exemplo,regions/us-central1
permite todas as zonas na regiãous-central1
. Certifique-se de que especifica localizações que oferecem o tipo de máquina com GPU que quer para esta tarefa. Caso contrário, se omitir este campo, certifique-se de que a localização do trabalho oferece o tipo de máquina de GPU.
Use GPUs para VMs otimizadas pelo acelerador
Pode criar uma tarefa que use GPUs para VMs otimizadas para aceleradores através da Google Cloud consola, da CLI gcloud, da API Batch, do Java, do Node.js ou do Python.
Consola
Para criar uma tarefa que use GPUs através da Google Cloud consola, faça o seguinte:
Na Google Cloud consola, aceda à página Lista de tarefas.
Clique em
Criar. É apresentada a página Criar tarefa em lote. No painel do lado esquerdo, a página Detalhes da tarefa está selecionada.Configure a página Detalhes da tarefa:
Opcional: no campo Nome da tarefa, personalize o nome da tarefa.
Por exemplo, introduza
example-gpu-job
.Configure a secção Detalhes da tarefa:
Na janela Novo executável, adicione, pelo menos, um script ou um contentor para que esta tarefa seja executada.
Por exemplo, para criar uma tarefa de script básica, faça o seguinte:
Selecione a caixa de verificação Script. É apresentado um campo.
No campo, introduza o seguinte script:
echo Hello world from task ${BATCH_TASK_INDEX}.
Clique em Concluído.
No campo Número de tarefas, introduza o número de tarefas para este trabalho.
Por exemplo, introduza
3
.Opcional: no campo Paralelismo, introduza o número de tarefas a executar em simultâneo.
Por exemplo, introduza
1
(predefinição).
Configure a página Especificações de recursos:
No painel esquerdo, clique em Especificações de recursos. É apresentada a página Especificações dos recursos.
Opcional: na secção Modelo de aprovisionamento de VMs, selecione uma das seguintes opções para o modelo de aprovisionamento das VMs desta tarefa:
Se a sua tarefa puder suportar a preempção e quiser VMs com desconto, selecione Spot.
Caso contrário, selecione Padrão (predefinição).
Selecione a localização para este trabalho.
No campo Região, selecione uma região.
No campo Zona, faça uma das seguintes ações:
Se quiser restringir a execução desta tarefa apenas a uma zona específica, selecione uma zona.
Caso contrário, selecione qualquer (predefinição).
Selecione o tipo de máquina de GPU para as VMs deste trabalho:
Nas opções de família de máquinas, clique em GPUs.
No campo Tipo de GPU, selecione o tipo de GPUs. Em seguida, no campo Número de GPUs, selecione o número de GPUs para cada VM.
Se selecionou um dos tipos de GPU para VMs otimizadas para aceleradores, o campo Tipo de máquina só permite uma opção para o tipo de máquina com base no tipo e no número de GPUs que selecionou.
Para instalar automaticamente os controladores da GPU, selecione Instalação do controlador da GPU (predefinição).
Configure a quantidade de recursos de VM necessários para cada tarefa:
No campo Núcleos, introduza a quantidade de vCPUs por tarefa.
Por exemplo, introduza
1
(predefinição).No campo Memória, introduza a quantidade de RAM em GB por tarefa.
Por exemplo, introduza
0.5
(predefinição).
Clique em Concluído.
Opcional: configure os outros campos desta tarefa.
Opcional: para rever a configuração da tarefa, no painel esquerdo, clique em Pré-visualizar.
Clique em Criar.
A página Detalhes do trabalho apresenta o trabalho que criou.
gcloud
Crie um ficheiro JSON que instale controladores de GPU, especifique um tipo de máquina da família de máquinas otimizadas para aceleradores e seja executado numa localização que tenha o tipo de máquina de GPU.
Por exemplo, para criar uma tarefa de script básica que use GPUs para VMs otimizadas para aceleradores, crie um ficheiro 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 o seguinte:
INSTALL_GPU_DRIVERS
: quando definido comotrue
, o comando Batch obtém os controladores necessários para o tipo de GPU especificado no campopolicy
de uma localização de terceiros e instala-os em seu nome. Se definir este campo comofalse
(predefinição), tem de instalar manualmente os controladores da GPU para usar GPUs para esta tarefa.MACHINE_TYPE
: um tipo de máquina da família de máquinas otimizadas para aceleradores.ALLOWED_LOCATIONS
: opcionalmente, pode usar o campoallowedLocations[]
para especificar uma região ou zonas específicas numa região onde as VMs para a sua tarefa podem ser executadas. Por exemplo,regions/us-central1
permite todas as zonas na regiãous-central1
. Certifique-se de que especifica localizações que oferecem o tipo de máquina com GPU que quer para esta tarefa. Caso contrário, se omitir este campo, certifique-se de que a localização do trabalho oferece o tipo de máquina de GPU.
Para criar e executar a tarefa, use o comando
gcloud batch jobs submit
:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Substitua o seguinte:
JOB_NAME
: o nome da tarefa.LOCATION
: a localização do trabalho.JSON_CONFIGURATION_FILE
: o caminho para um ficheiro JSON com os detalhes de configuração da tarefa.
API
Faça um pedido POST
ao método jobs.create
que instala controladores de GPU, especifica um tipo de máquina da família de máquinas otimizadas para aceleradores e é executado numa localização que tem o tipo de máquina de GPU.
Por exemplo, para criar uma tarefa de script básica que use GPUs para VMs otimizadas para aceleradores, faça o seguinte pedido:
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 o seguinte:
PROJECT_ID
: o ID do projeto do seu projeto.LOCATION
: a localização do trabalho.JOB_NAME
: o nome da tarefa.INSTALL_GPU_DRIVERS
: quando definido comotrue
, o comando Batch obtém os controladores necessários para o tipo de GPU especificado no campopolicy
de uma localização de terceiros e instala-os em seu nome. Se definir este campo comofalse
(predefinição), tem de instalar manualmente os controladores da GPU para usar GPUs para esta tarefa.MACHINE_TYPE
: um tipo de máquina da família de máquinas otimizadas para aceleradores.ALLOWED_LOCATIONS
: opcionalmente, pode usar o campoallowedLocations[]
para especificar uma região ou zonas específicas numa região onde as VMs para a sua tarefa podem ser executadas. Por exemplo,regions/us-central1
permite todas as zonas na regiãous-central1
. Certifique-se de que especifica localizações que oferecem o tipo de máquina com GPU que quer para esta tarefa. Caso contrário, se omitir este campo, certifique-se de que a localização do trabalho oferece o tipo de máquina de GPU.
Java
Node.js
Python
Use GPUs para VMs N1
Pode criar uma tarefa que use GPUs para VMs N1 através da Google Cloud consola, da CLI gcloud, da API Batch, do Java, do Node.js ou do Python.
Consola
Para criar uma tarefa que use GPUs através da Google Cloud consola, faça o seguinte:
Na Google Cloud consola, aceda à página Lista de tarefas.
Clique em
Criar. É apresentada a página Criar tarefa em lote. No painel do lado esquerdo, a página Detalhes da tarefa está selecionada.Configure a página Detalhes da tarefa:
Opcional: no campo Nome da tarefa, personalize o nome da tarefa.
Por exemplo, introduza
example-gpu-job
.Configure a secção Detalhes da tarefa:
Na janela Novo executável, adicione, pelo menos, um script ou um contentor para que esta tarefa seja executada.
Por exemplo, para criar uma tarefa de script básica, faça o seguinte:
Selecione a caixa de verificação Script. É apresentado um campo.
No campo, introduza o seguinte script:
echo Hello world from task ${BATCH_TASK_INDEX}.
Clique em Concluído.
No campo Número de tarefas, introduza o número de tarefas para este trabalho.
Por exemplo, introduza
3
.Opcional: no campo Paralelismo, introduza o número de tarefas a executar em simultâneo.
Por exemplo, introduza
1
(predefinição).
Configure a página Especificações de recursos:
No painel esquerdo, clique em Especificações de recursos. É apresentada a página Especificações dos recursos.
Opcional: na secção Modelo de aprovisionamento de VMs, selecione uma das seguintes opções para o modelo de aprovisionamento das VMs desta tarefa:
Se a sua tarefa puder suportar a preempção e quiser VMs com desconto, selecione Spot.
Caso contrário, selecione Padrão (predefinição).
Selecione a localização para este trabalho.
No campo Região, selecione uma região.
No campo Zona, faça uma das seguintes ações:
Se quiser restringir a execução desta tarefa apenas a uma zona específica, selecione uma zona.
Caso contrário, selecione qualquer (predefinição).
Selecione o tipo de máquina de GPU para as VMs deste trabalho:
Nas opções de família de máquinas, clique em GPUs.
No campo Tipo de GPU, selecione o tipo de GPUs.
Se 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 controladores da GPU, selecione Instalação do controlador da GPU (predefinição).
Configure a quantidade de recursos de VM necessários para cada tarefa:
No campo Núcleos, introduza a quantidade de vCPUs por tarefa.
Por exemplo, introduza
1
(predefinição).No campo Memória, introduza a quantidade de RAM em GB por tarefa.
Por exemplo, introduza
0.5
(predefinição).
Clique em Concluído.
Opcional: configure os outros campos desta tarefa.
Opcional: para rever a configuração da tarefa, no painel esquerdo, clique em Pré-visualizar.
Clique em Criar.
A página Detalhes do trabalho apresenta o trabalho que criou.
gcloud
Crie um ficheiro JSON que instale controladores de GPU, defina os subcampos
type
ecount
do campoaccelerators[]
e seja executado numa localização que tenha o tipo de máquina de GPU.Por exemplo, para criar uma tarefa de script básica que use GPUs para VMs N1 e permita que o Batch selecione o tipo de máquina N1 exato, crie um ficheiro 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 o seguinte:
INSTALL_GPU_DRIVERS
: quando definido comotrue
, o comando Batch obtém os controladores necessários para o tipo de GPU especificado no campopolicy
de uma localização de terceiros e instala-os em seu nome. Se definir este campo comofalse
(predefinição), tem de instalar manualmente os controladores da GPU para usar GPUs para esta tarefa.GPU_TYPE
: o tipo de GPU. Pode ver uma lista dos tipos de GPU disponíveis através do comandogcloud compute accelerator-types list
. Use este campo apenas para GPUs para 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 com GPU para a série de máquinas N1. Use este campo apenas para GPUs para VMs N1.ALLOWED_LOCATIONS
: opcionalmente, pode usar o campoallowedLocations[]
para especificar uma região ou zonas específicas numa região onde as VMs para a sua tarefa podem ser executadas. Por exemplo,regions/us-central1
permite todas as zonas na regiãous-central1
. Certifique-se de que especifica localizações que oferecem o tipo de máquina com GPU que quer para esta tarefa. Caso contrário, se omitir este campo, certifique-se de que a localização do trabalho oferece o tipo de máquina de GPU.
Para criar e executar a tarefa, use o comando
gcloud batch jobs submit
:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Substitua o seguinte:
JOB_NAME
: o nome da tarefa.LOCATION
: a localização do trabalho.JSON_CONFIGURATION_FILE
: o caminho para um ficheiro JSON com os detalhes de configuração da tarefa.
API
Faça um pedido POST
ao
método jobs.create
que instala controladores de GPU, define os subcampos type
e count
do campo accelerators[]
e usa uma localização que tem o tipo de máquina de GPU.
Por exemplo, para criar uma tarefa de script básica que use GPUs para VMs N1 e permita que o Batch selecione o tipo de máquina N1 exato, faça o seguinte pedido:
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 o seguinte:
PROJECT_ID
: o ID do projeto do seu projeto.LOCATION
: a localização do trabalho.JOB_NAME
: o nome da tarefa.INSTALL_GPU_DRIVERS
: quando definido comotrue
, o comando Batch obtém os controladores necessários para o tipo de GPU especificado no campopolicy
de uma localização de terceiros e instala-os em seu nome. Se definir este campo comofalse
(predefinição), tem de instalar manualmente os controladores da GPU para usar GPUs para esta tarefa.GPU_TYPE
: o tipo de GPU. Pode ver uma lista dos tipos de GPU disponíveis através do comandogcloud compute accelerator-types list
. Use este campo apenas para GPUs para 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 com GPU para a série de máquinas N1. Use este campo apenas para GPUs para VMs N1.ALLOWED_LOCATIONS
: opcionalmente, pode usar o campoallowedLocations[]
para especificar uma região ou zonas específicas numa região onde as VMs para a sua tarefa podem ser executadas. Por exemplo,regions/us-central1
permite todas as zonas na regiãous-central1
. Certifique-se de que especifica localizações que oferecem o tipo de máquina com GPU que quer para esta tarefa. Caso contrário, se omitir este campo, certifique-se de que a localização do trabalho oferece o tipo de máquina de GPU.
Java
Node.js
Python
O que se segue?
- Se tiver problemas ao criar ou executar uma tarefa, consulte a secção Resolução de problemas.
- Ver empregos e tarefas.
- Saiba mais sobre as opções de criação de tarefas.