En este documento, se explica cómo crear y ejecutar un trabajo que usa una unidad de procesamiento de gráficos (GPU). Para obtener más información sobre las funciones y restricciones de las GPU, consulta Acerca de las GPU en la documentación de Compute Engine.
Cuando creas un trabajo por lotes, puedes usar GPUs de forma opcional para acelerar cargas de trabajo específicas. Los casos de uso comunes para los trabajos que usan GPUs incluyen el procesamiento de datos intensivo y las cargas de trabajo de inteligencia artificial (IA), como el aprendizaje automático (AA).
Antes de comenzar
- Si nunca usaste Batch, revisa Cómo comenzar a usar Batch y habilita Batch completando los requisitos previos para proyectos y usuarios.
-
Para obtener los permisos que necesitas para crear un trabajo, pídele a tu administrador que te otorgue los siguientes roles de IAM:
-
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 otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
-
Editor de trabajos por lotes (
Crea un trabajo que use GPUs
Para crear un trabajo que use GPUs, haz lo siguiente:
- Planifica los requisitos para un trabajo que usa GPUs.
- Crea un trabajo con los requisitos y los métodos que identificaste. Para ver ejemplos de cómo crear un trabajo con las opciones recomendadas, consulta Crea un trabajo de ejemplo que use GPUs en este documento.
Planifica los requisitos para un trabajo que usa GPUs
Antes de crear un trabajo que use GPUs, planifica los requisitos del trabajo como se explica en las siguientes secciones:
- Selecciona el tipo de máquina de GPU y el método de aprovisionamiento
- Instala los controladores de GPU
- Define recursos de VM compatibles
Paso 1: Selecciona el tipo de máquina de GPU y el método de aprovisionamiento
Los requisitos de un trabajo varían según el tipo de máquina con GPU y el método de aprovisionamiento que prefieras, y las opciones para cada uno pueden ser interdependientes. Según tus requisitos y prioridades, puedes seleccionar primero el tipo de máquina con GPU o el método de aprovisionamiento. En general, el tipo de máquina con GPU afecta principalmente el rendimiento y el precio base, y el método de aprovisionamiento afecta principalmente la disponibilidad de recursos y los costos o descuentos adicionales.
Selecciona el tipo de máquina de GPU
Los tipos de máquinas con GPU disponibles (las combinaciones válidas de tipo de GPU, cantidad de GPUs y tipo de máquina [CPU virtuales y memoria]) y sus casos de uso se enumeran 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 según 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 una cantidad específicos de estas GPUs conectadas automáticamente. |
Para usar GPU 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 una cantidad específicos de GPUs, por lo que es funcionalmente equivalente si especificas o no esos valores además del tipo de máquina optimizado para aceleradores. Específicamente, Batch también admite especificar solo el tipo y la cantidad de GPU para las VMs optimizadas para aceleradores, pero las opciones de CPU virtuales y memoria resultantes suelen ser muy limitadas. Por lo tanto, te recomendamos que verifiques que las opciones de CPU virtual y memoria disponibles sean compatibles con los requisitos de la tarea del trabajo. |
GPU para VMs N1: Estas GPU requieren que especifiques el tipo y la cantidad que se adjuntarán a cada VM, y deben adjuntarse a VMs con un tipo de máquina de la serie de máquinas N1. |
Para usar GPUs en VMs de N1, te recomendamos que especifiques, al menos, el tipo y la cantidad 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 CPU virtual y memoria para las VMs N1 que usan cualquier tipo y cantidad específicos de GPUs son bastante flexibles. A menos que crees el trabajo con la consola de Google Cloud , puedes permitir que Batch seleccione automáticamente un tipo de máquina que cumpla con los requisitos de las tareas del trabajo. |
Selecciona el método de aprovisionamiento
Batch usa diferentes métodos para aprovisionar los recursos de VM para los trabajos que usan GPUs según el tipo de recursos que solicita tu trabajo. En la siguiente tabla, se explican los métodos de aprovisionamiento disponibles y sus requisitos, y se enumeran según sus casos de uso, desde la mayor hasta la menor disponibilidad de recursos.
En resumen, recomendamos que la mayoría de los usuarios hagan lo siguiente:
Si planeas usar tipos de máquinas con GPU A3 sin una reserva, usa el programador dinámico de cargas de trabajo para Batch (versión preliminar).
Para todos los demás tipos de máquinas con GPU, usa el método de aprovisionamiento predeterminado. El método de aprovisionamiento predeterminado suele ser a pedido, a menos que tu proyecto tenga reservas sin usar que el trabajo pueda consumir automáticamente.
Métodos de aprovisionamiento y sus requisitos de trabajo | |
---|---|
Reservas
|
Batch usa reservas para los trabajos que pueden consumir reservas sin usar. Para obtener más información sobre las reservas y sus requisitos, consulta la página Garantiza la disponibilidad de recursos con VM VMs. |
Programador dinámico de cargas de trabajo para Batch (vista previa)
|
Batch usa el programador dinámico de cargas de trabajo para los trabajos que cumplen con todos los siguientes requisitos:
|
A pedido
|
Batch usa la opción bajo demanda para todos los demás trabajos. |
VMs Spot
|
Batch usa VMs Spot para los trabajos que configuran el campo |
Paso 2: Instala los controladores de GPU
Para usar GPUs en un trabajo, debes instalar los controladores de GPU. Para instalar los controladores de GPU, selecciona uno de los siguientes métodos:
Instala automáticamente los controladores de GPU (recomendado si es posible): Como se muestra en los ejemplos, para permitir que Batch recupere los controladores de GPU necesarios desde una ubicación de terceros y los instale en tu nombre, configura el campo
installGpuDrivers
del trabajo comotrue
. Se recomienda este método si tu trabajo no requiere que instales controladores de forma manual.De manera opcional, si necesitas especificar qué versión del controlador de GPU instala Batch, también configura el campo
driverVersion
.Instala los controladores de GPU de forma manual: Este método es obligatorio si se cumple alguna de las siguientes condiciones:
- Un trabajo usa ejecutables de secuencia de comandos y de contenedor, y no tiene acceso a Internet. Para obtener más información sobre el acceso que tiene un trabajo, consulta la Descripción general de las redes por lotes.
- Un trabajo usa una imagen de VM personalizada. Para obtener más información sobre las imágenes de SO de VM y cuáles puedes usar, consulta la Descripción general del entorno de SO de VM.
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 según el SO que quieras usar:
Si tu trabajo tiene ejecutables de contenedor y no usa Container-Optimized OS, también debes instalar NVIDIA Container Toolkit.
Cuando crees y envíes un trabajo que use GPUs, especifica la imagen de VM personalizada que incluye los controladores de GPU y configura el campo
installGpuDrivers
del trabajo enfalse
(valor predeterminado).
Paso 3: Define 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 del trabajo.
En resumen, debes hacer todo lo siguiente cuando definas los recursos de VM para un trabajo que use 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áquinas con GPU, consulta Disponibilidad de GPU por regiones y zonas en la documentación de Compute Engine.
Si especificas el tipo de máquina del trabajo, asegúrate de que tenga suficientes CPU virtuales y memoria para los requisitos de la tarea del trabajo. Se requiere especificar el tipo de máquina del trabajo cada vez que creas un trabajo con la Google Cloud consola, y se recomienda hacerlo siempre que crees un trabajo que use GPUs para VMs optimizadas para aceleradores.
Asegúrate de definir los recursos de la VM para un trabajo con un método válido:
- Define los recursos de la VM directamente con el campo
instances[].policy
(se recomienda si es posible). Este método se muestra en los ejemplos. - Define los recursos de la VM a través de una plantilla con el campo
instances[].instanceTemplate
. Este método es necesario para instalar manualmente los controladores de GPU a través de una imagen personalizada. Para obtener más información, consulta Cómo definir recursos de trabajo con una plantilla de instancias de VM.
- Define los recursos de la VM directamente con el campo
Crea 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 usando las opciones recomendadas. Específicamente, todos los trabajos de ejemplo instalan automáticamente los controladores de GPU, todos definen directamente los recursos de VM y especifican el método de aprovisionamiento o usan el método de aprovisionamiento predeterminado.
- Usa GPUs para VMs A3 a través del Programador dinámico de cargas de trabajo (vista previa)
- Usa GPUs para VMs optimizadas para aceleradores
- Usa GPUs para VMs N1
Usa GPUs para VMs A3 a través del programador dinámico de cargas de trabajo para Batch (vista previa)
Puedes crear un trabajo que use GPUs para VMs A3 a través del programador de cargas de trabajo dinámico con gcloud CLI o la API de Batch.
gcloud
Crea un archivo JSON que instale 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 secuencia de comandos básico que use GPUs para VMs de 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" } }
Reemplaza lo siguiente:
INSTALL_GPU_DRIVERS
: Cuando se establece entrue
, Batch recupera los controladores necesarios para el tipo de GPU que especificas en el campopolicy
desde una ubicación de terceros y los instala en tu nombre. Si configuras este campo comofalse
(valor predeterminado), debes instalar los controladores de GPU de forma manual para usar cualquier GPU en este trabajo.MACHINE_TYPE
: Es un tipo de máquina de la serie de máquinas A3.ALLOWED_LOCATIONS
: De manera opcional, puedes usar el campoallowedLocations[]
para especificar una región o zonas específicas en una región en la que se permite que se ejecuten 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 deseas para este trabajo. De lo contrario, si omites este campo, asegúrate 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
Reemplaza lo siguiente:
JOB_NAME
: Es el nombre del trabajo.LOCATION
: La ubicación del trabajo.JSON_CONFIGURATION_FILE
: Es la ruta de acceso a un archivo JSON con los detalles de configuración del trabajo.
API
Realiza una solicitud POST
al método jobs.create
que instala controladores de GPU, especifica un tipo de máquina de la serie de máquinas A3, bloquea las reservas y se ejecuta en una ubicación que tiene el tipo de máquina con GPU.
Por ejemplo, para crear un trabajo de secuencia de comandos básico que use GPUs para VMs A3 a través del programador de cargas de trabajo dinámico, realiza 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"
}
}
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID del proyecto de tu proyecto.LOCATION
: La ubicación del trabajo.JOB_NAME
: Es el nombre del trabajo.INSTALL_GPU_DRIVERS
: Cuando se establece entrue
, Batch recupera los controladores necesarios para el tipo de GPU que especificas en el campopolicy
desde una ubicación de terceros y los instala en tu nombre. Si configuras este campo comofalse
(valor predeterminado), debes instalar los controladores de GPU de forma manual para usar cualquier GPU en este trabajo.MACHINE_TYPE
: Es un tipo de máquina de la serie de máquinas A3.ALLOWED_LOCATIONS
: De manera opcional, puedes usar el campoallowedLocations[]
para especificar una región o zonas específicas en una región en la que se permite que se ejecuten 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 deseas para este trabajo. De lo contrario, si omites este campo, asegúrate de que la ubicación del trabajo ofrezca el tipo de máquina con GPU.
Usa GPUs para VMs optimizadas para aceleradores
Puedes crear un trabajo que use GPUs para VMs optimizadas para aceleradores con la consola, gcloud CLI, la API de Batch, Java, Node.js o Python.Google Cloud
Console
Para crear un trabajo que use GPUs con la Google Cloud consola, haz lo siguiente:
En la consola de Google Cloud , ve a la página Lista de trabajos.
Haz clic en
Crear. Se abrirá la página Crear trabajo por lotes. En el panel izquierdo, se selecciona la página Detalles del trabajo.Configura la página Detalles del trabajo:
Opcional: En el campo Nombre del trabajo, personaliza el nombre del trabajo.
Por ejemplo, ingresa
example-gpu-job
.Configura la sección Detalles de la tarea:
En la ventana Nuevo ejecutable, agrega al menos una secuencia de comandos o un contenedor para que se ejecute este trabajo.
Por ejemplo, para crear un trabajo de secuencia de comandos básico, haz lo siguiente:
Selecciona la casilla de verificación Script. Aparecerá un campo.
En el campo, ingresa la siguiente secuencia de comandos:
echo Hello world from task ${BATCH_TASK_INDEX}.
Haz clic en Listo.
En el campo Recuento de tareas, ingresa la cantidad de tareas para este trabajo.
Por ejemplo, ingresa
3
.Opcional: En el campo Paralelismo, ingresa la cantidad de tareas que se ejecutarán de forma simultánea.
Por ejemplo, ingresa
1
(predeterminado).
Configura la página Especificaciones de recursos:
En el panel izquierdo, haz clic en Especificaciones de recursos. Se abrirá la página Especificaciones de recursos.
Opcional: En la sección Modelo de aprovisionamiento de VM, selecciona una de las siguientes opciones para el modelo de aprovisionamiento de las VMs de este trabajo:
Si tu trabajo puede tolerar la interrupción y deseas VMs con descuento, selecciona Spot.
De lo contrario, selecciona Estándar (predeterminado).
Selecciona la ubicación para este trabajo.
En el campo Región, selecciona una región.
En el campo Zona, realiza una de las siguientes acciones:
Si deseas restringir la ejecución de este trabajo a una zona específica, selecciona una zona.
De lo contrario, selecciona cualquiera (opción predeterminada).
Selecciona el tipo de máquina de 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. Luego, en el campo Cantidad de GPU, selecciona la cantidad de GPU para cada VM.
Si seleccionaste uno de los tipos de GPU para VMs optimizadas para aceleradores, el campo Tipo de máquina solo permite una opción para el tipo de máquina según el tipo y la cantidad de GPU que seleccionaste.
Para instalar automáticamente los controladores de GPU, selecciona Instalación del controlador de GPU (opción predeterminada).
Configura la cantidad de recursos de VM necesarios para cada tarea:
En el campo Núcleos, ingresa la cantidad de vCPUs por tarea.
Por ejemplo, ingresa
1
(predeterminado).En el campo Memoria, ingresa la cantidad de RAM en GB por tarea.
Por ejemplo, ingresa
0.5
(predeterminado).
Haz clic en Listo.
Opcional: Configura los otros campos de este trabajo.
Opcional: Para revisar la configuración del trabajo, en el panel izquierdo, haz clic en Vista previa.
Haz clic en Crear.
En la página Detalles del trabajo, se muestra el trabajo que creaste.
gcloud
Crea un archivo JSON que instale 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 de GPU.
Por ejemplo, para crear un trabajo de secuencia de comandos básico que use GPUs para VMs 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" } }
Reemplaza lo siguiente:
INSTALL_GPU_DRIVERS
: Cuando se establece entrue
, Batch recupera los controladores necesarios para el tipo de GPU que especificas en el campopolicy
desde una ubicación de terceros y los instala en tu nombre. Si configuras este campo comofalse
(valor predeterminado), debes instalar los controladores de GPU de forma manual para usar cualquier GPU en este trabajo.MACHINE_TYPE
: Es un tipo de máquina de la familia de máquinas con optimización de acelerador.ALLOWED_LOCATIONS
: De manera opcional, puedes usar el campoallowedLocations[]
para especificar una región o zonas específicas en una región en la que se permite que se ejecuten 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 deseas para este trabajo. De lo contrario, si omites este campo, asegúrate 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
Reemplaza lo siguiente:
JOB_NAME
: Es el nombre del trabajo.LOCATION
: La ubicación del trabajo.JSON_CONFIGURATION_FILE
: Es la ruta de acceso a un archivo JSON con los detalles de configuración del trabajo.
API
Realiza una solicitud POST
al método jobs.create
que instala controladores de GPU, especifica un tipo de máquina de la familia de máquinas optimizadas para aceleradores y se ejecuta en una ubicación que tiene el tipo de máquina de GPU.
Por ejemplo, para crear un trabajo de secuencia de comandos básico que use GPUs para VMs optimizadas para aceleradores, realiza 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"
}
}
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID del proyecto de tu proyecto.LOCATION
: La ubicación del trabajo.JOB_NAME
: Es el nombre del trabajo.INSTALL_GPU_DRIVERS
: Cuando se establece entrue
, Batch recupera los controladores necesarios para el tipo de GPU que especificas en el campopolicy
desde una ubicación de terceros y los instala en tu nombre. Si configuras este campo comofalse
(valor predeterminado), debes instalar los controladores de GPU de forma manual para usar cualquier GPU en este trabajo.MACHINE_TYPE
: Es un tipo de máquina de la familia de máquinas con optimización de acelerador.ALLOWED_LOCATIONS
: De manera opcional, puedes usar el campoallowedLocations[]
para especificar una región o zonas específicas en una región en la que se permite que se ejecuten 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 deseas para este trabajo. De lo contrario, si omites este campo, asegúrate de que la ubicación del trabajo ofrezca el tipo de máquina con GPU.
Java
Node.js
Python
Usa GPUs para VMs N1
Puedes crear un trabajo que use GPUs para VMs N1 con la Google Cloud consola, gcloud CLI, la API de Batch, Java, Node.js o Python.
Console
Para crear un trabajo que use GPUs con la Google Cloud consola, haz lo siguiente:
En la consola de Google Cloud , ve a la página Lista de trabajos.
Haz clic en
Crear. Se abrirá la página Crear trabajo por lotes. En el panel izquierdo, se selecciona la página Detalles del trabajo.Configura la página Detalles del trabajo:
Opcional: En el campo Nombre del trabajo, personaliza el nombre del trabajo.
Por ejemplo, ingresa
example-gpu-job
.Configura la sección Detalles de la tarea:
En la ventana Nuevo ejecutable, agrega al menos una secuencia de comandos o un contenedor para que se ejecute este trabajo.
Por ejemplo, para crear un trabajo de secuencia de comandos básico, haz lo siguiente:
Selecciona la casilla de verificación Script. Aparecerá un campo.
En el campo, ingresa la siguiente secuencia de comandos:
echo Hello world from task ${BATCH_TASK_INDEX}.
Haz clic en Listo.
En el campo Recuento de tareas, ingresa la cantidad de tareas para este trabajo.
Por ejemplo, ingresa
3
.Opcional: En el campo Paralelismo, ingresa la cantidad de tareas que se ejecutarán de forma simultánea.
Por ejemplo, ingresa
1
(predeterminado).
Configura la página Especificaciones de recursos:
En el panel izquierdo, haz clic en Especificaciones de recursos. Se abrirá la página Especificaciones de recursos.
Opcional: En la sección Modelo de aprovisionamiento de VM, selecciona una de las siguientes opciones para el modelo de aprovisionamiento de las VMs de este trabajo:
Si tu trabajo puede tolerar la interrupción y deseas VMs con descuento, selecciona Spot.
De lo contrario, selecciona Estándar (predeterminado).
Selecciona la ubicación para este trabajo.
En el campo Región, selecciona una región.
En el campo Zona, realiza una de las siguientes acciones:
Si deseas restringir la ejecución de este trabajo a una zona específica, selecciona una zona.
De lo contrario, selecciona cualquiera (opción predeterminada).
Selecciona el tipo de máquina de 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 seleccionaste uno de los tipos de GPU para VMs N1, el campo Serie se establece en N1.
En el campo Cantidad de GPU, selecciona la cantidad de GPU para cada VM.
En el campo Tipo de máquina, selecciona el tipo de máquina.
Para instalar automáticamente los controladores de GPU, selecciona Instalación del controlador de GPU (opción predeterminada).
Configura la cantidad de recursos de VM necesarios para cada tarea:
En el campo Núcleos, ingresa la cantidad de vCPUs por tarea.
Por ejemplo, ingresa
1
(predeterminado).En el campo Memoria, ingresa la cantidad de RAM en GB por tarea.
Por ejemplo, ingresa
0.5
(predeterminado).
Haz clic en Listo.
Opcional: Configura los otros campos de este trabajo.
Opcional: Para revisar la configuración del trabajo, en el panel izquierdo, haz clic en Vista previa.
Haz clic en Crear.
En la página Detalles del trabajo, se muestra el trabajo que creaste.
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 de 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" } }
Reemplaza lo siguiente:
INSTALL_GPU_DRIVERS
: Cuando se establece entrue
, Batch recupera los controladores necesarios para el tipo de GPU que especificas en el campopolicy
desde una ubicación de terceros y los instala en tu nombre. Si configuras este campo comofalse
(valor predeterminado), debes instalar los controladores de GPU de forma manual para usar cualquier GPU en este trabajo.GPU_TYPE
: Es el tipo de GPU. Puedes ver una lista de los tipos de GPU disponibles con el comandogcloud compute accelerator-types list
. Solo usa este campo para las GPUs de las VMs N1.GPU_COUNT
: Es la cantidad 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 usa este campo para las GPUs de las VMs N1.ALLOWED_LOCATIONS
: De manera opcional, puedes usar el campoallowedLocations[]
para especificar una región o zonas específicas en una región en la que se permite que se ejecuten 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 deseas para este trabajo. De lo contrario, si omites este campo, asegúrate 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
Reemplaza lo siguiente:
JOB_NAME
: Es el nombre del trabajo.LOCATION
: La ubicación del trabajo.JSON_CONFIGURATION_FILE
: Es la ruta de acceso a un archivo JSON con los detalles de configuración del trabajo.
API
Realiza 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 un trabajo de secuencia de comandos básico que use GPUs para VMs de N1 y permita que Batch seleccione el tipo de máquina N1 exacto, realiza 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"
}
}
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID del proyecto de tu proyecto.LOCATION
: La ubicación del trabajo.JOB_NAME
: Es el nombre del trabajo.INSTALL_GPU_DRIVERS
: Cuando se establece entrue
, Batch recupera los controladores necesarios para el tipo de GPU que especificas en el campopolicy
desde una ubicación de terceros y los instala en tu nombre. Si configuras este campo comofalse
(valor predeterminado), debes instalar los controladores de GPU de forma manual para usar cualquier GPU en este trabajo.GPU_TYPE
: Es el tipo de GPU. Puedes ver una lista de los tipos de GPU disponibles con el comandogcloud compute accelerator-types list
. Solo usa este campo para las GPUs de las VMs N1.GPU_COUNT
: Es la cantidad 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 usa este campo para las GPUs de las VMs N1.ALLOWED_LOCATIONS
: De manera opcional, puedes usar el campoallowedLocations[]
para especificar una región o zonas específicas en una región en la que se permite que se ejecuten 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 deseas para este trabajo. De lo contrario, si omites este campo, asegúrate de que la ubicación del trabajo ofrezca el tipo de máquina con GPU.
Java
Node.js
Python
¿Qué sigue?
- Si tienes problemas para crear o ejecutar un trabajo, consulta Solución de problemas.
- Ver trabajos y tareas
- Obtén más información sobre las opciones de creación de trabajos.