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 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 Comienza 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 a través de 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 la opción de consumo
- Instala los controladores de GPU
- Define recursos de VM compatibles
Paso 1: Selecciona el tipo de máquina de GPU y la opción de consumo
Los requisitos de un trabajo varían según el tipo de máquina con GPU y la opción de consumo que prefieras, y las opciones de cada uno pueden ser interdependientes.
Para seleccionar el tipo de máquina de GPU y la opción de consumo para tu trabajo, completa los siguientes pasos:
Identifica y selecciona tu prioridad:
- Si deseas priorizar el rendimiento y los precios básicos, consulta la sección Selecciona el tipo de máquina con GPU en este documento.
- Si deseas priorizar la disponibilidad de recursos o los descuentos, consulta la sección Selecciona la opción de consumo en este documento.
Realiza la selección restante según lo que sea compatible con tu primera selección.
Para identificar las opciones compatibles con tu primera selección, consulta Disponibilidad de opciones de consumo por tipo de máquina en la documentación de Compute Engine.
Consulta la sección restante para Selecciona la opción de consumo o Selecciona el tipo de máquina con GPU, respectivamente.
Selecciona el tipo de máquina de GPU
Para seleccionar el tipo de máquina con GPU para un trabajo y comprender sus requisitos, completa los siguientes pasos:
Selecciona un tipo de máquina con GPU: Para revisar los tipos de máquinas con GPU disponibles (las combinaciones válidas de tipo de GPU, cantidad de GPU y tipo de máquina [CPU virtuales y memoria]) y sus casos de uso recomendados, consulta Tipos de máquinas con GPU y Familia de máquinas optimizadas para aceleradores en la documentación de Compute Engine.
Comprende los requisitos del trabajo para tu tipo de máquina con GPU: 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 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 si especificas o no esos valores además del tipo de máquina optimizada 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.
GPUs para VMs N1: Estas GPUs 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 virtuales y memoria para las VMs de 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 la opción de consumo
En esta sección, se resume cómo seleccionar la opción de consumo para un trabajo y los requisitos del trabajo para cada opción.
En la siguiente tabla, se explican las opciones de consumo disponibles para Batch y sus requisitos, y se enumeran según sus casos de uso, desde la disponibilidad de recursos más alta hasta la más baja.
En resumen, recomendamos que la mayoría de los usuarios seleccionen la opción de consumo para un trabajo de la siguiente manera:
- A menos que se cumpla alguna de las otras condiciones, usa VMs de inicio flexible (versión preliminar) (preferidas si cumplen con tus requisitos) o a pedido.
- Si tu trabajo requiere una garantía muy alta de disponibilidad de recursos o si tienes reservas sin usar que no puedes borrar, usa reservas en modo de calendario (versión preliminar) (preferidas si cumplen con tus requisitos) o reservas.
- (Opcional) Si tu carga de trabajo es muy tolerante a errores, es posible que puedas reducir los costos si intentas usar VMs Spot.
| Opciones de consumo y sus requisitos de trabajo | |
|---|---|
Reservas
|
Batch usa reservas para los trabajos que pueden consumir VMs reservadas no utilizadas. Para obtener más información sobre los requisitos del trabajo para consumir reservas, consulta la página Garantiza la disponibilidad de recursos con VM VMs. |
Reservas en modo de calendario (versión preliminar)
|
Batch usa reservas en modo de calendario para los trabajos que cumplen con todos los siguientes requisitos:
|
VMs de inicio flexible (vista previa)
|
Batch usa VMs de inicio flexible para los trabajos que cumplen con todos los siguientes requisitos:
|
A pedido
|
De forma predeterminada, Batch usa el modo a pedido para la mayoría de los demás trabajos. Si quieres asegurarte de que un trabajo use la opción a pedido, haz lo siguiente:1
1Excepción: Para los trabajos que usan la serie de máquinas A3, el comportamiento predeterminado es único, y te recomendamos que no uses la opción a pedido y que no dejes el campo |
VMs Spot
|
Batch usa VMs Spot para los trabajos que cumplen con todos los siguientes requisitos:
|
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
installGpuDriversdel 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 algún ejecutable 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
installGpuDriversdel 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 aceleradores 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 las tareas 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(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 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 opción de consumo. Específicamente, los trabajos de ejemplo usan las opciones recomendadas: todos instalan automáticamente los controladores de GPU y todos definen directamente los recursos de VM.
| Opción de consumo | Ejemplo de instrucciones de trabajo |
|---|---|
| Reservas o reservas en modo de calendario (vista previa) | |
| VMs de inicio flexible (vista previa) | |
| VMs a pedido o Spot |
Selecciona una de las siguientes opciones según el tipo de máquina de GPU: |
Usa GPUs y VMs de inicio flexible
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 con GPU que admita VMs de inicio flexible, bloquee reservas y se ejecute en una ubicación que admita el tipo de máquina con GPU.
Por ejemplo, para crear un trabajo de secuencia de comandos básico que use VMs de inicio flexible y 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": { "provisioningModel":"FLEX_START", "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 campopolicydesde 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 con GPU que admite VMs de inicio flexible. Para obtener más información, consulta Disponibilidad de opciones de consumo por tipo de máquina en la documentación de Compute Engine.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-central1permite 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 alpha batch jobs submit:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILEReemplaza 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 del trabajo.
API
Realiza una solicitud POST al método jobs.create de v1alpha que instale controladores de GPU, especifique un tipo de máquina con GPU que admita VMs de inicio flexible, bloquee reservas y se ejecute en una ubicación que admita el tipo de máquina con GPU.
Por ejemplo, para crear un trabajo de secuencia de comandos básico que use VMs de inicio flexible y GPUs para VMs optimizadas para aceleradores, realiza la siguiente solicitud:
POST https://batch.googleapis.com/v1alpha/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": {
"provisioningModel":"FLEX_START",
"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 campopolicydesde 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 con GPU que admite VMs de inicio flexible. Para obtener más información, consulta Disponibilidad de opciones de consumo por tipo de máquina en la documentación de Compute Engine.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-central1permite 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 laGoogle 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.
En la sección Modelo de aprovisionamiento de VM, selecciona una de las siguientes opciones para la opción de consumo de las VMs de este trabajo:
Si tu trabajo puede tolerar la interrupción y deseas VMs Spot con descuento, selecciona Spot.
De lo contrario, para usar VMs a pedido, selecciona Estándar (predeterminado).
Selecciona la ubicación para este trabajo.
En el campo Región, selecciona una.
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 para 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": { "provisioningModel": "PROVISIONING_MODEL", "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 campopolicydesde 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.PROVISIONING_MODEL: Es el modelo de aprovisionamiento de tu opción de consumo: puede serSTANDARDpara las VMs a pedido oSPOTpara las VMs Spot.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-central1permite 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_FILEReemplaza 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 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": {
"provisioningModel": "PROVISIONING_MODEL",
"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 campopolicydesde 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.PROVISIONING_MODEL: Es el modelo de aprovisionamiento de tu opción de consumo:STANDARDpara las VMs a pedido oSPOTpara las VMs Spot.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-central1permite 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.
En la sección Modelo de aprovisionamiento de VM, selecciona una de las siguientes opciones para la opción de consumo de las VMs de este trabajo:
Si tu trabajo puede tolerar la interrupción y deseas VMs Spot con descuento, selecciona Spot.
De lo contrario, para usar VMs a pedido, selecciona Estándar (predeterminado).
Selecciona la ubicación para este trabajo.
En el campo Región, selecciona una.
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 para 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
typeycountdel 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": { "provisioningModel": "PROVISIONING_MODEL", "reservation": "NO_RESERVATION", "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 campopolicydesde 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.PROVISIONING_MODEL: Es el modelo de aprovisionamiento de tu opción de consumo: puede serSTANDARDpara las VMs a pedido oSPOTpara las VMs Spot.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-central1permite 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_FILEReemplaza 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 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": {
"provisioningModel": "PROVISIONING_MODEL",
"reservation": "NO_RESERVATION",
"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 campopolicydesde 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.PROVISIONING_MODEL: Es el modelo de aprovisionamiento de tu opción de consumo:STANDARDpara las VMs a pedido oSPOTpara las VMs Spot.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-central1permite 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.