En este documento, se explica cómo crear y ejecutar una tarea que use una unidad de procesamiento de gráficos (GPU). Para obtener más información sobre las funciones y las restricciones de las GPUs, consulta Acerca de las GPUs 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 las tareas que usan GPUs incluyen el procesamiento intensivo de datos y las cargas de trabajo de inteligencia artificial (IA), como el aprendizaje automático (AA).
Antes de comenzar
- Si nunca usaste Batch, consulta 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 la 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 de un trabajo que use GPUs.
- Crea un trabajo con los requisitos y métodos que identificaste. Para ver ejemplos de cómo crear un trabajo con las opciones recomendadas, consulta Cómo crear un trabajo de ejemplo que use GPUs en este documento.
Planifica los requisitos de un trabajo que use 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 los 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 de GPU y el método de aprovisionamiento que prefieras, y las opciones de cada uno pueden ser interdependientes. Según tus requisitos y prioridades, puedes seleccionar primero el tipo de máquina de GPU o el método de aprovisionamiento. En general, el tipo de máquina de GPU afecta principalmente el rendimiento y los precios 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 de GPU disponibles (las combinaciones válidas de tipo de GPU, cantidad de GPUs y tipo de máquina [CPUs virtuales y memoria]) y sus casos de uso se enumeran en la página Tipos de máquinas de GPU de la documentación de Compute Engine.
Los campos necesarios para que un trabajo especifique un tipo de máquina de GPU varían según las categorías de la siguiente tabla:
Tipos de máquinas de 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 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 una cantidad específicos de GPUs, por lo que es funcionalmente equivalente, ya sea que especifiques esos valores o no, además del tipo de máquina optimizada para aceleradores. Específicamente, Batch también admite especificar solo el tipo y la cantidad de GPUs para las VMs optimizadas para aceleradores, pero las opciones de CPU virtual y memoria resultantes suelen ser muy limitadas. Como resultado, te recomendamos que verifiques que las opciones de vCPU 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 conectará a cada VM, y deben conectarse a VMs con un tipo de máquina de la serie de máquinas N1. |
Para usar GPUs en VMs 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 de GPUs específicas 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 la tarea. |
Selecciona el método de aprovisionamiento
Batch usa diferentes métodos para aprovisionar los recursos de la VM para 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, que se enumeran según sus casos de uso: de la disponibilidad de recursos más alta a la más baja.
En resumen, recomendamos que la mayoría de los usuarios hagan lo siguiente:
Cuando quieras usar tipos de máquinas de GPU A3 sin una reserva, usa el programador dinámico de cargas de trabajo para lotes (versión preliminar).
Para todos los demás tipos de máquinas de GPU, usa el método de aprovisionamiento predeterminado. El método de aprovisionamiento predeterminado suele ser on demand. Una excepción es si tu proyecto tiene reservas sin usar que la tarea puede consumir automáticamente.
Métodos de aprovisionamiento y sus requisitos de trabajo | |
---|---|
Reservas
|
Por lotes, se usan reservas para trabajos que pueden consumir reservas sin usar. Para obtener más información sobre las reservas y sus requisitos, consulta la página Cómo garantizar la disponibilidad de recursos con reservas de VM. |
Programador de cargas de trabajo dinámico para por lotes (Versión preliminar)
|
Por lotes, usa el programador dinámico de cargas de trabajo para los trabajos que realizan lo siguiente:
|
A pedido
|
Batch usa el modo bajo demanda para todos los demás trabajos. |
VMs Spot
|
Batch usa VMs Spot para los trabajos que establecen 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 los controladores de GPU automáticamente (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:
- Una tarea usa ejecutables de secuencia de comandos y contenedor, y no tiene acceso a Internet. Para obtener más información sobre el acceso que tiene un trabajo, consulta Descripción general de las redes de lotes.
- Un trabajo usa una imagen de VM personalizada. Para obtener más información sobre las imágenes de SO de VM y las que puedes usar, consulta Descripción general del entorno del 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 controladores de GPU, ejecuta una secuencia de comandos de instalación según el SO que desees usar:
Si tu trabajo tiene algún elemento ejecutable de contenedor y no usa el sistema operativo optimizado para contenedores, también debes instalar el kit de herramientas de contenedores 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 establece el campo
installGpuDrivers
del trabajo enfalse
(configuración predeterminada).
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 todo lo siguiente cuando definas los recursos de VM para un trabajo que use GPUs:
Asegúrate de que el tipo de máquina de GPU esté disponible en la ubicación de las VMs de tu trabajo.
Para obtener información sobre 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 y memoria para los requisitos de la tarea del trabajo. Especificar el tipo de máquina del trabajo es obligatorio cuando creas un trabajo con la consola de Google Cloud y se recomienda cuando creas un trabajo que usa 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
(recomendado 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 obligatorio para instalar controladores de GPU de forma manual a través de una imagen personalizada. Para obtener más información, consulta Define los recursos de trabajo con una plantilla de instancia 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 de GPU con las opciones recomendadas. Específicamente, todos los trabajos de ejemplo instalan los controladores de GPU automáticamente, definen directamente los recursos de la 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 (versión preliminar)
- Usa GPUs para VMs optimizadas para aceleradores
- Cómo usar GPUs para VMs N1
Usa GPUs para VMs A3 a través del programador dinámico de cargas de trabajo para por lotes (versión preliminar)
Puedes crear un trabajo que use GPUs para VMs A3 a través del programador de cargas de trabajo dinámico con la CLI de gcloud 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 de GPU.
Por ejemplo, para crear una tarea de secuencia de comandos básica que use GPUs para VMs A3 a través del programador de cargas de trabajo dinámico, 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 estableces este campo enfalse
(configuración predeterminada), debes instalar los controladores de GPU de forma manual para usar cualquier GPU en este trabajo.MACHINE_TYPE
: 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 las VMs de tu trabajo pueden ejecutarse. Por ejemplo,regions/us-central1
permite todas las zonas de la regiónus-central1
. Asegúrate de especificar las ubicaciones que ofrecen el tipo de máquina de 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 de GPU.
Para crear y ejecutar la tarea, 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
: Es la ubicación del trabajo.JSON_CONFIGURATION_FILE
: Es la ruta de acceso a un archivo JSON con los detalles de configuración de la tarea.
API
Realiza una solicitud POST
al método jobs.create
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 de 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
: Es 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 estableces este campo enfalse
(configuración predeterminada), debes instalar los controladores de GPU de forma manual para usar cualquier GPU en este trabajo.MACHINE_TYPE
: 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 las VMs de tu trabajo pueden ejecutarse. Por ejemplo,regions/us-central1
permite todas las zonas de la regiónus-central1
. Asegúrate de especificar las ubicaciones que ofrecen el tipo de máquina de 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 de GPU.
Usa GPUs para VMs optimizadas para aceleradores
Puedes crear un trabajo que use GPUs para VMs optimizadas para aceleradores con la consola de Google Cloud, gcloud CLI, la API de Batch, Java, Node.js o Python.
Console
Para crear un trabajo que use GPUs con la consola de Google Cloud, sigue estos pasos:
En la consola de Google Cloud, ve a la página Lista de trabajos.
Haz clic en
Crear. Se abrirá la página Create batch job. 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 esta tarea.
Por ejemplo, para crear un trabajo de secuencia de comandos básico, haz lo siguiente:
Selecciona la casilla de verificación Secuencia de comandos. 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 Task count, 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 VMs, selecciona una de las siguientes opciones para el modelo de aprovisionamiento de las VMs de esta tarea:
Si tu trabajo puede soportar la preempción y deseas obtener VMs con descuento, selecciona Spot.
De lo contrario, selecciona Estándar (predeterminada).
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 esta tarea para que se ejecute solo en una zona específica, selecciona una.
De lo contrario, selecciona cualquiera (predeterminado).
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 acelerador, 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 GPUs que seleccionaste.
Para instalar automáticamente los controladores de 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 Núcleos, ingresa la cantidad de CPU virtuales 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 para este trabajo.
Opcional: Para revisar la configuración del trabajo, haz clic en Obtener vista previa en el panel izquierdo.
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 una tarea de secuencia de comandos básica 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 estableces este campo enfalse
(configuración predeterminada), 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 las VMs de tu trabajo pueden ejecutarse. Por ejemplo,regions/us-central1
permite todas las zonas de la regiónus-central1
. Asegúrate de especificar las ubicaciones que ofrecen el tipo de máquina de 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 de GPU.
Para crear y ejecutar la tarea, 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
: Es la ubicación del trabajo.JSON_CONFIGURATION_FILE
: Es la ruta de acceso a un archivo JSON con los detalles de configuración de la tarea.
API
Realiza una solicitud POST
al método jobs.create
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, 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
: Es 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 estableces este campo enfalse
(configuración predeterminada), 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 las VMs de tu trabajo pueden ejecutarse. Por ejemplo,regions/us-central1
permite todas las zonas de la regiónus-central1
. Asegúrate de especificar las ubicaciones que ofrecen el tipo de máquina de 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 de GPU.
Java
Node.js
Python
Usa GPUs para VMs N1
Puedes crear un trabajo que use GPUs para VMs N1 con la consola de Google Cloud, gcloud CLI, la API de Batch, Java, Node.js o Python.
Console
Para crear un trabajo que use GPUs con la consola de Google Cloud, sigue estos pasos:
En la consola de Google Cloud, ve a la página Lista de trabajos.
Haz clic en
Crear. Se abrirá la página Create batch job. 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 esta tarea.
Por ejemplo, para crear un trabajo de secuencia de comandos básico, haz lo siguiente:
Selecciona la casilla de verificación Secuencia de comandos. 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 Task count, 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 VMs, selecciona una de las siguientes opciones para el modelo de aprovisionamiento de las VMs de esta tarea:
Si tu trabajo puede soportar la preempción y deseas obtener VMs con descuento, selecciona Spot.
De lo contrario, selecciona Estándar (predeterminada).
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 esta tarea para que se ejecute solo en una zona específica, selecciona una.
De lo contrario, selecciona cualquiera (predeterminado).
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 GPUs 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 de controladores 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 CPU virtuales 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 para este trabajo.
Opcional: Para revisar la configuración del trabajo, haz clic en Obtener vista previa en el panel izquierdo.
Haz clic en Crear.
En la página Detalles del trabajo, se muestra el trabajo que creaste.
gcloud
Crea un archivo JSON que instale los 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 una tarea de secuencia de comandos básica 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" } }
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 estableces este campo enfalse
(configuración predeterminada), 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
. Usa este campo solo 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 los tipos de máquinas de GPU para la serie de máquinas N1. Usa este campo solo 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 las VMs de tu trabajo pueden ejecutarse. Por ejemplo,regions/us-central1
permite todas las zonas de la regiónus-central1
. Asegúrate de especificar las ubicaciones que ofrecen el tipo de máquina de 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 de GPU.
Para crear y ejecutar la tarea, 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
: Es la ubicación del trabajo.JSON_CONFIGURATION_FILE
: Es la ruta de acceso a un archivo JSON con los detalles de configuración de la tarea.
API
Realiza una solicitud POST
al método jobs.create
que instale los controladores de GPU, defina los subcampos type
y count
del campo accelerators[]
y use 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, 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
: Es 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 estableces este campo enfalse
(configuración predeterminada), 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
. Usa este campo solo 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 de GPU para la serie de máquinas N1. Usa este campo solo 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 las VMs de tu trabajo pueden ejecutarse. Por ejemplo,regions/us-central1
permite todas las zonas de la regiónus-central1
. Asegúrate de especificar las ubicaciones que ofrecen el tipo de máquina de 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 de GPU.
Java
Node.js
Python
¿Qué sigue?
- Si tienes problemas para crear o ejecutar una tarea, consulta Solución de problemas.
- Ver trabajos y tareas.
- Obtén más información sobre las opciones de creación de trabajos.