En este documento se explica cómo crear y ejecutar un trabajo que utilice una unidad de procesamiento de gráficos (GPU). Para obtener más información sobre las funciones y las restricciones de las GPUs, consulta el artículo Acerca de las GPUs en la documentación de Compute Engine.
Cuando creas un trabajo de Batch, puedes usar GPUs para acelerar cargas de trabajo específicas. Entre los casos prácticos habituales de las tareas que usan GPUs se incluyen el procesamiento de datos intensivo y las cargas de trabajo de inteligencia artificial (IA), como el aprendizaje automático.
Antes de empezar
- Si no has usado Batch antes, consulta el artículo Empezar a usar Batch y habilita Batch completando los requisitos previos para proyectos y usuarios.
-
Para obtener los permisos que necesitas para crear un trabajo, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:
-
Editor de trabajos por lotes (
roles/batch.jobsEditor
) en el proyecto -
Usuario de cuenta de servicio (
roles/iam.serviceAccountUser
) en la cuenta de servicio del trabajo, que de forma predeterminada es la cuenta de servicio predeterminada de Compute Engine
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
-
Editor de trabajos por lotes (
Crear un trabajo que use GPUs
Para crear un trabajo que use GPUs, sigue estos pasos:
- Planifica los requisitos de un trabajo que use GPUs.
- Crea una tarea con los requisitos y los métodos que hayas identificado. Para ver ejemplos de cómo crear un trabajo con las opciones recomendadas, consulta Crear un trabajo de ejemplo que use GPUs en este documento.
Planificar los requisitos de un trabajo que use GPUs
Antes de crear un trabajo que use GPUs, planifica los requisitos del trabajo tal como se explica en las siguientes secciones:
- Selecciona el tipo de máquina con GPU y el método de aprovisionamiento
- Instalar los controladores de la GPU
- Definir recursos de VM compatibles
Paso 1: Selecciona el tipo de máquina con GPU y el método de aprovisionamiento
Los requisitos de un trabajo varían en función del tipo de máquina con GPU y del método de aprovisionamiento que prefieras, y las opciones de cada uno pueden ser interdependientes. En función de tus requisitos y prioridades, puedes seleccionar primero el tipo de máquina con GPU o el método de aprovisionamiento. Por lo general, el tipo de máquina de GPU afecta principalmente al rendimiento y al precio base, mientras que el método de aprovisionamiento influye sobre todo en la disponibilidad de recursos y en los costes o descuentos adicionales.
Selecciona el tipo de máquina con GPU
Los tipos de máquinas con GPU disponibles (las combinaciones válidas de tipo de GPU, número de GPUs y tipo de máquina [vCPUs y memoria]) y sus casos de uso se indican en la página Tipos de máquinas con GPU de la documentación de Compute Engine.
Los campos necesarios para que un trabajo especifique un tipo de máquina con GPU varían en función de las categorías de la siguiente tabla:
Tipos de máquinas con GPU y sus requisitos de trabajo | |
---|---|
GPUs para VMs optimizadas para aceleradores: las VMs con un tipo de máquina de la familia de máquinas optimizadas para aceleradores tienen un tipo y un número específicos de estas GPUs conectadas automáticamente. |
Para usar GPUs en VMs optimizadas para aceleradores, te recomendamos que especifiques el tipo de máquina. Cada tipo de máquina optimizada para aceleradores solo admite un tipo y un número específicos de GPUs, por lo que es funcionalmente equivalente tanto si especificas esos valores como si no, además del tipo de máquina optimizada para aceleradores. En concreto, Batch también permite especificar solo el tipo y el número de GPUs de las VMs optimizadas para aceleradores, pero las opciones de vCPU y memoria resultantes suelen ser muy limitadas. Por lo tanto, te recomendamos que verifiques que las opciones de vCPU y memoria disponibles sean compatibles con los requisitos de las tareas del trabajo. |
GPUs para máquinas virtuales N1: para usar estas GPUs, debes especificar el tipo y la cantidad que quieres conectar a cada máquina virtual. Además, deben conectarse a máquinas virtuales con un tipo de máquina de la serie N1. |
Para usar GPUs en máquinas virtuales N1, te recomendamos que especifiques al menos el tipo y el número de GPUs. Asegúrate de que la combinación de valores coincida con una de las opciones de GPU válidas para los tipos de máquinas N1. Las opciones de vCPU y memoria de las VMs N1 que usan cualquier tipo y número de GPUs son bastante flexibles. A menos que crees el trabajo con la Google Cloud consola, puedes dejar que Batch seleccione automáticamente un tipo de máquina que cumpla los requisitos de las tareas del trabajo. |
Selecciona el método de aprovisionamiento
Batch usa diferentes métodos para aprovisionar los recursos de las VMs de las tareas que usan GPUs en función del tipo de recursos que solicite tu tarea. En la siguiente tabla se explican los métodos de aprovisionamiento disponibles y sus requisitos. Se enumeran en función de sus casos prácticos, de mayor a menor disponibilidad de recursos.
En resumen, recomendamos que la mayoría de los usuarios hagan lo siguiente:
Si quieres usar tipos de máquinas con GPU A3 sin reserva, usa Dynamic Workload Scheduler para Batch (vista previa).
En el resto de los tipos de máquinas con GPU, usa el método de aprovisionamiento predeterminado. El método de aprovisionamiento predeterminado suele ser bajo demanda, excepto si tu proyecto tiene reservas sin usar que el trabajo puede consumir automáticamente.
Métodos de aprovisionamiento y sus requisitos de trabajo | |
---|---|
Reservas
|
Batch usa reservas para las tareas que pueden consumir reservas no utilizadas. Para obtener más información sobre las reservas y sus requisitos, consulta la página Asegurar la disponibilidad de recursos mediante reservas de VMs. |
Dynamic Workload Scheduler para lotes (vista previa)
|
Batch usa Dynamic Workload Scheduler para las tareas que cumplen todos los requisitos siguientes:
|
Bajo demanda
|
Batch usa el modo bajo demanda para el resto de los trabajos. |
Máquinas virtuales de acceso puntual
|
Batch usa Spot VMs para las tareas que definen el campo |
Paso 2: Instala los controladores de la GPU
Para usar las GPUs en un trabajo, debes instalar los controladores de GPU. Para instalar los controladores de GPU, selecciona uno de los siguientes métodos:
Instalar automáticamente los controladores de la GPU (recomendado si es posible): como se muestra en los ejemplos, para permitir que Batch obtenga los controladores de la GPU necesarios de una ubicación de terceros y los instale en tu nombre, asigna el valor
true
al campoinstallGpuDrivers
del trabajo. Te recomendamos este método si no tienes que instalar controladores manualmente.Si quieres especificar qué versión del controlador de la GPU se instala por lotes, también puedes definir el campo
driverVersion
.Instalar controladores de GPU manualmente: este método es necesario si se cumple alguna de las siguientes condiciones:
- Un trabajo usa tanto secuencias de comandos como elementos ejecutables de contenedor y no tiene acceso a Internet. Para obtener más información sobre el acceso que tiene un trabajo, consulta la información general sobre la creación de redes por lotes.
- Un trabajo usa una imagen de VM personalizada. Para obtener más información sobre las imágenes de SO de las VMs y las que puedes usar, consulta la descripción general del entorno del SO de las VMs.
Para instalar manualmente los controladores de GPU necesarios, se recomienda el siguiente método:
Crea una imagen de VM personalizada que incluya los controladores de GPU.
Para instalar los controladores de GPU, ejecuta una secuencia de comandos de instalación basada en el SO que quieras usar:
Si tu trabajo tiene algún elemento ejecutable de contenedor y no usa Container-Optimized OS, también debes instalar el kit de herramientas de contenedor de NVIDIA.
Cuando crees y envíes un trabajo que use GPUs, especifica la imagen de VM personalizada que incluya los controladores de GPU y define el campo
installGpuDrivers
del trabajo comofalse
(valor predeterminado).
Paso 3: Define los recursos de VM compatibles
Para obtener información sobre los requisitos y las opciones para definir los recursos de VM de un trabajo, consulta Recursos de trabajo.
En resumen, debes hacer lo siguiente al definir los recursos de la VM para un trabajo que utilice GPUs:
Asegúrate de que el tipo de máquina con GPU esté disponible en la ubicación de las VMs de tu trabajo.
Para saber dónde están disponibles los tipos de máquina con GPU, consulta la sección Disponibilidad de las GPU por regiones y zonas de la documentación de Compute Engine.
Si especificas el tipo de máquina del trabajo, asegúrate de que tenga suficientes vCPUs y memoria para los requisitos de las tareas del trabajo. Es obligatorio especificar el tipo de máquina del trabajo cuando creas un trabajo con la consola de Google Cloud y se recomienda hacerlo cuando creas un trabajo que usa GPUs para máquinas virtuales optimizadas para aceleradores.
Asegúrate de definir los recursos de la VM de un trabajo mediante un método válido:
- Define los recursos de la VM directamente mediante el campo
instances[].policy
(recomendado si es posible). Este método se muestra en los ejemplos. - Define los recursos de la VM mediante una plantilla con el campo
instances[].instanceTemplate
. Este método es necesario para instalar manualmente los controladores de la GPU a través de una imagen personalizada. Para obtener más información, consulta Definir recursos de trabajos con una plantilla de instancia de VM.
- Define los recursos de la VM directamente mediante el campo
Crear un trabajo de ejemplo que use GPUs
En las siguientes secciones se explica cómo crear un trabajo de ejemplo para cada tipo de máquina con GPU mediante las opciones recomendadas. En concreto, todas las tareas de ejemplo instalan automáticamente los controladores de GPU, definen directamente los recursos de la VM y especifican el método de aprovisionamiento o usan el método de aprovisionamiento predeterminado.
- Usar GPUs para máquinas virtuales A3 a través de Dynamic Workload Scheduler (versión preliminar)
- Usar GPUs en máquinas virtuales optimizadas para aceleradores
- Usar GPUs en máquinas virtuales N1
Usar GPUs para máquinas virtuales A3 a través de Dynamic Workload Scheduler para Batch (vista previa)
Puedes crear un trabajo que use GPUs para máquinas virtuales A3 a través de Dynamic Workload Scheduler con la CLI de gcloud o la API Batch.
gcloud
Crea un archivo JSON que instale controladores de GPU, especifique un tipo de máquina de la serie A3, bloquee las reservas y se ejecute en una ubicación que tenga el tipo de máquina de GPU.
Por ejemplo, para crear un trabajo de secuencia de comandos básico que use GPUs para máquinas virtuales A3 a través de Dynamic Workload Scheduler, crea un archivo JSON con el siguiente contenido:
{ "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" } }
Haz los cambios siguientes:
INSTALL_GPU_DRIVERS
: si se le asigna el valortrue
, Batch obtiene los controladores necesarios para el tipo de GPU que especifiques en el campopolicy
de una ubicación de terceros y los instala en tu nombre. Si asignas el valorfalse
(predeterminado) a este campo, tendrás que instalar los controladores de GPU manualmente para usar cualquier GPU en este trabajo.MACHINE_TYPE
: un tipo de máquina de la serie de máquinas A3.ALLOWED_LOCATIONS
: También puedes usar el campoallowedLocations[]
para especificar una región o zonas concretas de una región en las que se puedan ejecutar las VMs de tu trabajo. Por ejemplo,regions/us-central1
permite todas las zonas de la regiónus-central1
. Asegúrate de especificar ubicaciones que ofrezcan el tipo de máquina con GPU que quieras usar en este trabajo. De lo contrario, si omite este campo, asegúrese de que la ubicación del trabajo ofrezca el tipo de máquina con GPU.
Para crear y ejecutar el trabajo, usa el comando
gcloud batch jobs submit
:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Haz los cambios siguientes:
JOB_NAME
: el nombre del puesto.LOCATION
: la ubicación del puesto.JSON_CONFIGURATION_FILE
: la ruta de un archivo JSON con los detalles de configuración del trabajo.
API
Haz una solicitud POST
al método jobs.create
que instale los controladores de GPU, especifique un tipo de máquina de la serie de máquinas A3, bloquee las reservas y se ejecute en una ubicación que tenga el tipo de máquina con GPU.
Por ejemplo, para crear un trabajo de script básico que use GPUs para máquinas virtuales A3 a través de Dynamic Workload Scheduler, haz la siguiente solicitud:
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"
}
}
Haz los cambios siguientes:
PROJECT_ID
: el ID de proyecto de tu proyecto.LOCATION
: la ubicación del puesto.JOB_NAME
: el nombre del puesto.INSTALL_GPU_DRIVERS
: si se le asigna el valortrue
, Batch obtiene los controladores necesarios para el tipo de GPU que especifiques en el campopolicy
de una ubicación de terceros y los instala en tu nombre. Si asignas el valorfalse
(predeterminado) a este campo, tendrás que instalar los controladores de GPU manualmente para usar cualquier GPU en este trabajo.MACHINE_TYPE
: un tipo de máquina de la serie de máquinas A3.ALLOWED_LOCATIONS
: También puedes usar el campoallowedLocations[]
para especificar una región o zonas concretas de una región en las que se puedan ejecutar las VMs de tu trabajo. Por ejemplo,regions/us-central1
permite todas las zonas de la regiónus-central1
. Asegúrate de especificar ubicaciones que ofrezcan el tipo de máquina con GPU que quieras usar en este trabajo. De lo contrario, si omite este campo, asegúrese de que la ubicación del trabajo ofrezca el tipo de máquina con GPU.
Usar GPUs en máquinas virtuales optimizadas para aceleradores
Puedes crear una tarea que use GPUs para máquinas virtuales optimizadas para aceleradores mediante laGoogle Cloud consola, la CLI de gcloud, la API Batch, Java, Node.js o Python.
Consola
Para crear un trabajo que use GPUs con la consola de Google Cloud , haz lo siguiente:
En la Google Cloud consola, ve a la página Lista de tareas.
Haz clic en
Crear. Se abrirá la página Crear tarea por lotes. En el panel de la izquierda, se selecciona la página Detalles de la tarea.Configura la página Detalles del empleo:
Opcional: En el campo Nombre del trabajo, personaliza el nombre del trabajo.
Por ejemplo, escribe
example-gpu-job
.Configura la sección Detalles de la tarea:
En la ventana Nuevo ejecutable, añade al menos una secuencia de comandos o un contenedor para que se ejecute este trabajo.
Por ejemplo, para crear un trabajo de script básico, haz lo siguiente:
Seleccione la casilla Secuencia de comandos. Aparecerá un campo.
En el campo, introduce la siguiente secuencia de comandos:
echo Hello world from task ${BATCH_TASK_INDEX}.
Haz clic en Listo.
En el campo Número de tareas, introduce el número de tareas de este trabajo.
Por ejemplo, escribe
3
.Opcional: En el campo Paralelismo, introduce el número de tareas que se van a ejecutar simultáneamente.
Por ejemplo, introduce
1
(valor predeterminado).
Configura la página Especificaciones de recursos:
En el panel de la izquierda, haga clic en Especificaciones de recursos. Se abrirá la página Especificaciones de los recursos.
Opcional: En la sección Modelo de aprovisionamiento de VMs, selecciona una de las siguientes opciones para el modelo de aprovisionamiento de las VMs de este trabajo:
Si tu tarea puede tolerar la interrupción temporal y quieres máquinas virtuales con descuento, selecciona Spot.
De lo contrario, selecciona Estándar (opción predeterminada).
Selecciona la ubicación de este trabajo.
En el campo Región, selecciona una región.
En el campo Zona, haz una de las siguientes acciones:
Si quieres que esta tarea se ejecute solo en una zona específica, selecciona una zona.
De lo contrario, selecciona cualquiera (opción predeterminada).
Selecciona el tipo de máquina con GPU para las VMs de este trabajo:
En las opciones de familia de máquinas, haz clic en GPUs.
En el campo Tipo de GPU, selecciona el tipo de GPU. A continuación, en el campo Número de GPUs, selecciona el número de GPUs de cada VM.
Si has seleccionado uno de los tipos de GPU para las VMs optimizadas para aceleradores, el campo Tipo de máquina solo permite una opción para el tipo de máquina en función del tipo y el número de GPUs que hayas seleccionado.
Para instalar automáticamente los controladores de la GPU, selecciona Instalación de controladores de GPU (opción predeterminada).
Configura la cantidad de recursos de VM necesarios para cada tarea:
En el campo Cores (Núcleos), introduce la cantidad de vCPUs por tarea.
Por ejemplo, introduce
1
(valor predeterminado).En el campo Memoria, introduce la cantidad de RAM en GB por tarea.
Por ejemplo, introduce
0.5
(valor predeterminado).
Haz clic en Listo.
Opcional: Configura los otros campos de este trabajo.
Opcional: Para revisar la configuración del trabajo, en el panel de la izquierda, haz clic en Vista previa.
Haz clic en Crear.
En la página Detalles de la tarea se muestra la tarea que has creado.
gcloud
Crea un archivo JSON que instale los controladores de la GPU, especifique un tipo de máquina de la familia de máquinas optimizadas para aceleradores y se ejecute en una ubicación que tenga el tipo de máquina de la GPU.
Por ejemplo, para crear un trabajo de secuencia de comandos básico que use GPUs para máquinas virtuales optimizadas para aceleradores, crea un archivo JSON con el siguiente contenido:
{ "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" } }
Haz los cambios siguientes:
INSTALL_GPU_DRIVERS
: si se le asigna el valortrue
, Batch obtiene los controladores necesarios para el tipo de GPU que especifiques en el campopolicy
de una ubicación de terceros y los instala en tu nombre. Si asignas el valorfalse
(predeterminado) a este campo, tendrás que instalar los controladores de GPU manualmente para usar cualquier GPU en este trabajo.MACHINE_TYPE
: un tipo de máquina de la familia de máquinas optimizadas para aceleradores.ALLOWED_LOCATIONS
: También puedes usar el campoallowedLocations[]
para especificar una región o zonas concretas de una región en las que se puedan ejecutar las VMs de tu trabajo. Por ejemplo,regions/us-central1
permite todas las zonas de la regiónus-central1
. Asegúrate de especificar ubicaciones que ofrezcan el tipo de máquina con GPU que quieras usar en este trabajo. De lo contrario, si omite este campo, asegúrese de que la ubicación del trabajo ofrezca el tipo de máquina con GPU.
Para crear y ejecutar el trabajo, usa el comando
gcloud batch jobs submit
:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Haz los cambios siguientes:
JOB_NAME
: el nombre del puesto.LOCATION
: la ubicación del puesto.JSON_CONFIGURATION_FILE
: la ruta de un archivo JSON con los detalles de configuración del trabajo.
API
Haz una solicitud POST
al método jobs.create
que instale los controladores de GPU, especifique un tipo de máquina de la familia de máquinas optimizadas para aceleradores y se ejecute en una ubicación que tenga el tipo de máquina con GPU.
Por ejemplo, para crear un trabajo de secuencia de comandos básico que use GPUs para máquinas virtuales optimizadas para aceleradores, haz la siguiente solicitud:
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"
}
}
Haz los cambios siguientes:
PROJECT_ID
: el ID de proyecto de tu proyecto.LOCATION
: la ubicación del puesto.JOB_NAME
: el nombre del puesto.INSTALL_GPU_DRIVERS
: si se le asigna el valortrue
, Batch obtiene los controladores necesarios para el tipo de GPU que especifiques en el campopolicy
de una ubicación de terceros y los instala en tu nombre. Si asignas el valorfalse
(predeterminado) a este campo, tendrás que instalar los controladores de GPU manualmente para usar cualquier GPU en este trabajo.MACHINE_TYPE
: un tipo de máquina de la familia de máquinas optimizadas para aceleradores.ALLOWED_LOCATIONS
: También puedes usar el campoallowedLocations[]
para especificar una región o zonas concretas de una región en las que se puedan ejecutar las VMs de tu trabajo. Por ejemplo,regions/us-central1
permite todas las zonas de la regiónus-central1
. Asegúrate de especificar ubicaciones que ofrezcan el tipo de máquina con GPU que quieras usar en este trabajo. De lo contrario, si omite este campo, asegúrese de que la ubicación del trabajo ofrezca el tipo de máquina con GPU.
Java
Node.js
Python
Usar GPUs en máquinas virtuales N1
Puedes crear una tarea que use GPUs para máquinas virtuales N1 mediante la Google Cloud consola, la CLI de gcloud, la API Batch, Java, Node.js o Python.
Consola
Para crear un trabajo que use GPUs con la consola de Google Cloud , haz lo siguiente:
En la Google Cloud consola, ve a la página Lista de tareas.
Haz clic en
Crear. Se abrirá la página Crear tarea por lotes. En el panel de la izquierda, se selecciona la página Detalles de la tarea.Configura la página Detalles del empleo:
Opcional: En el campo Nombre del trabajo, personaliza el nombre del trabajo.
Por ejemplo, escribe
example-gpu-job
.Configura la sección Detalles de la tarea:
En la ventana Nuevo ejecutable, añade al menos una secuencia de comandos o un contenedor para que se ejecute este trabajo.
Por ejemplo, para crear un trabajo de script básico, haz lo siguiente:
Seleccione la casilla Secuencia de comandos. Aparecerá un campo.
En el campo, introduce la siguiente secuencia de comandos:
echo Hello world from task ${BATCH_TASK_INDEX}.
Haz clic en Listo.
En el campo Número de tareas, introduce el número de tareas de este trabajo.
Por ejemplo, escribe
3
.Opcional: En el campo Paralelismo, introduce el número de tareas que se van a ejecutar simultáneamente.
Por ejemplo, introduce
1
(valor predeterminado).
Configura la página Especificaciones de recursos:
En el panel de la izquierda, haga clic en Especificaciones de recursos. Se abrirá la página Especificaciones de los recursos.
Opcional: En la sección Modelo de aprovisionamiento de VMs, selecciona una de las siguientes opciones para el modelo de aprovisionamiento de las VMs de este trabajo:
Si tu tarea puede tolerar la interrupción temporal y quieres máquinas virtuales con descuento, selecciona Spot.
De lo contrario, selecciona Estándar (opción predeterminada).
Selecciona la ubicación de este trabajo.
En el campo Región, selecciona una región.
En el campo Zona, haz una de las siguientes acciones:
Si quieres que esta tarea se ejecute solo en una zona específica, selecciona una zona.
De lo contrario, selecciona cualquiera (opción predeterminada).
Selecciona el tipo de máquina con GPU para las VMs de este trabajo:
En las opciones de familia de máquinas, haz clic en GPUs.
En el campo Tipo de GPU, selecciona el tipo de GPU.
Si has seleccionado uno de los tipos de GPU para máquinas virtuales N1, el campo Serie se define como N1.
En el campo Número de GPUs, selecciona el número de GPUs de cada VM.
En el campo Tipo de máquina, selecciona el tipo de máquina.
Para instalar automáticamente los controladores de la GPU, selecciona Instalación de controladores de GPU (opción predeterminada).
Configura la cantidad de recursos de VM necesarios para cada tarea:
En el campo Cores (Núcleos), introduce la cantidad de vCPUs por tarea.
Por ejemplo, introduce
1
(valor predeterminado).En el campo Memoria, introduce la cantidad de RAM en GB por tarea.
Por ejemplo, introduce
0.5
(valor predeterminado).
Haz clic en Listo.
Opcional: Configura los otros campos de este trabajo.
Opcional: Para revisar la configuración del trabajo, en el panel de la izquierda, haz clic en Vista previa.
Haz clic en Crear.
En la página Detalles de la tarea se muestra la tarea que has creado.
gcloud
Crea un archivo JSON que instale controladores de GPU, defina los subcampos
type
ycount
del campoaccelerators[]
y se ejecute en una ubicación que tenga el tipo de máquina de GPU.Por ejemplo, para crear un trabajo de secuencia de comandos básico que use GPUs para VMs N1 y permita que Batch seleccione el tipo de máquina N1 exacto, crea un archivo JSON con el siguiente contenido:
{ "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" } }
Haz los cambios siguientes:
INSTALL_GPU_DRIVERS
: si se le asigna el valortrue
, Batch obtiene los controladores necesarios para el tipo de GPU que especifiques en el campopolicy
de una ubicación de terceros y los instala en tu nombre. Si asignas el valorfalse
(predeterminado) a este campo, tendrás que instalar los controladores de GPU manualmente para usar cualquier GPU en este trabajo.GPU_TYPE
: el tipo de GPU. Para ver una lista de los tipos de GPU disponibles, usa el comandogcloud compute accelerator-types list
. Solo se debe usar este campo para las GPUs de las VMs N1.GPU_COUNT
: número de GPUs del tipo especificado. Para obtener más información sobre las opciones válidas, consulta los tipos de máquinas con GPU de la serie de máquinas N1. Solo se debe usar este campo para las GPUs de las VMs N1.ALLOWED_LOCATIONS
: También puedes usar el campoallowedLocations[]
para especificar una región o zonas concretas de una región en las que se puedan ejecutar las VMs de tu trabajo. Por ejemplo,regions/us-central1
permite todas las zonas de la regiónus-central1
. Asegúrate de especificar ubicaciones que ofrezcan el tipo de máquina con GPU que quieras usar en este trabajo. De lo contrario, si omite este campo, asegúrese de que la ubicación del trabajo ofrezca el tipo de máquina con GPU.
Para crear y ejecutar el trabajo, usa el comando
gcloud batch jobs submit
:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Haz los cambios siguientes:
JOB_NAME
: el nombre del puesto.LOCATION
: la ubicación del puesto.JSON_CONFIGURATION_FILE
: la ruta de un archivo JSON con los detalles de configuración del trabajo.
API
Haz una solicitud POST
al método jobs.create
que instala los controladores de GPU, define los
subcampos type
y count
del campo accelerators[]
y usa una ubicación que tenga el tipo de máquina de GPU.
Por ejemplo, para crear una tarea de script básica que use GPUs para máquinas virtuales N1 y permita que Batch seleccione el tipo de máquina N1 exacto, haz la siguiente solicitud:
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"
}
}
Haz los cambios siguientes:
PROJECT_ID
: el ID de proyecto de tu proyecto.LOCATION
: la ubicación del puesto.JOB_NAME
: el nombre del puesto.INSTALL_GPU_DRIVERS
: si se le asigna el valortrue
, Batch obtiene los controladores necesarios para el tipo de GPU que especifiques en el campopolicy
de una ubicación de terceros y los instala en tu nombre. Si asignas el valorfalse
(predeterminado) a este campo, tendrás que instalar los controladores de GPU manualmente para usar cualquier GPU en este trabajo.GPU_TYPE
: el tipo de GPU. Para ver una lista de los tipos de GPU disponibles, usa el comandogcloud compute accelerator-types list
. Solo se debe usar este campo para las GPUs de las VMs N1.GPU_COUNT
: número de GPUs del tipo especificado. Para obtener más información sobre las opciones válidas, consulta Tipos de máquinas con GPU para la serie de máquinas N1. Solo se debe usar este campo para las GPUs de las VMs N1.ALLOWED_LOCATIONS
: También puedes usar el campoallowedLocations[]
para especificar una región o zonas concretas de una región en las que se puedan ejecutar las VMs de tu trabajo. Por ejemplo,regions/us-central1
permite todas las zonas de la regiónus-central1
. Asegúrate de especificar ubicaciones que ofrezcan el tipo de máquina con GPU que quieras usar en este trabajo. De lo contrario, si omite este campo, asegúrese de que la ubicación del trabajo ofrezca el tipo de máquina con GPU.
Java
Node.js
Python
Siguientes pasos
- Si tienes problemas para crear o ejecutar un trabajo, consulta la sección Solución de problemas.
- Ver trabajos y tareas.
- Consulta más información sobre las opciones de creación de trabajos.