Configura GPUs para trabajos de Cloud Run

En esta página, se describe la configuración de GPU para tus trabajos de Cloud Run. Las GPUs funcionan bien para las cargas de trabajo de IA, como el entrenamiento de modelos de lenguaje grandes (LLM) con tus frameworks preferidos, la realización de inferencias por lotes o sin conexión en LLM y el manejo de otras tareas con gran demanda de procesamiento, como el procesamiento de videos y la renderización de gráficos como trabajos en segundo plano. Google proporciona GPU NVIDIA L4 con 24 GB de memoria de GPU (VRAM) y GPU NVIDIA RTX PRO 6000 Blackwell (versión preliminar) con 96 GB de memoria de GPU (VRAM), que es independiente de la memoria de la instancia.

La GPU en Cloud Run está completamente administrada, sin necesidad de controladores ni bibliotecas adicionales. La función de GPU ofrece disponibilidad a pedido sin necesidad de reservas, similar a la forma en que funcionan la CPU y la memoria a pedido en Cloud Run.

Las instancias de Cloud Run con una GPU L4 o NVIDIA RTX PRO 6000 Blackwell conectada con controladores preinstalados comienzan en aproximadamente 5 segundos, momento en los que los procesos que se ejecutan en tu contenedor pueden comenzar a usar la GPU.

Puedes configurar una GPU por instancia de Cloud Run. Si usas contenedores secundarios, ten en cuenta que la GPU solo se puede conectar a un contenedor.

Tipos de GPU compatibles

Cloud Run admite dos tipos de GPUs:

  • GPU L4 con la versión actual del controlador NVIDIA: 535.x.x (12.2) En el caso de las GPU L4, debes usar un mínimo de 4 CPU y 16 GiB de memoria.
  • GPU NVIDIA RTX PRO 6000 Blackwell con la versión actual del controlador NVIDIA: 580.x.x (13.0) (versión preliminar). Para la GPU NVIDIA RTX PRO 6000 Blackwell, debes usar un mínimo de 20 CPU y 80 GiB de memoria.

Regiones admitidas

La GPU L4 admite las siguientes regiones:

  • asia-southeast1 (Singapur)
  • asia-south1 (Bombay) . Esta región solo está disponible por invitación. Si te interesa esta región, comunícate con tu equipo de Cuentas de Google.
  • europe-west1 (Bélgica) ícono de hoja Bajo nivel de CO2
  • europe-west4 (Países Bajos) ícono de hoja Bajo nivel de CO2
  • us-central1 (Iowa) ícono de hoja Bajo nivel de CO2 . Esta región solo está disponible por invitación. Si te interesa esta región, comunícate con tu equipo de Cuentas de Google.
  • us-east4 (Virginia del Norte)

La GPU NVIDIA RTX PRO 6000 Blackwell (versión preliminar) admite las siguientes regiones:

  • asia-southeast1 (Singapur).
  • asia-south2 (Delhi, India). Esta región solo está disponible por invitación. Si te interesa esta región, comunícate con tu equipo de Cuentas de Google.
  • europe-west4 (Países Bajos) ícono de hoja Bajo nivel de CO2
  • us-central1 (Iowa) ícono de hoja Bajo nivel de CO2

Impacto en los precios

Consulta los precios de Cloud Run para obtener detalles sobre los precios de las GPU. Ten en cuenta los siguientes requisitos y consideraciones:

  • Las GPU para trabajos siguen los precios sin redundancia zonal.
  • Son las configuraciones de CPU y memoria de tu recurso.
  • La GPU se factura por la duración completa del ciclo de vida de la instancia.

Redundancia no zonal de GPU

La función de trabajos de Cloud Run solo proporciona compatibilidad con la redundancia no zonal para las instancias habilitadas para GPU. Con la redundancia no zonal habilitada, Cloud Run intenta realizar una conmutación por error para los trabajos habilitados para GPU según el criterio del mejor esfuerzo. Cloud Run enruta las ejecuciones de trabajos a otras zonas solo si hay capacidad de GPU suficiente en ese momento. Esta opción no garantiza la capacidad reservada para situaciones de conmutación por error, pero genera un costo más bajo por segundo de GPU.

Consulta cómo configurar un trabajo de Cloud Run con GPU para obtener detalles sobre cómo habilitar la redundancia no zonal.

Solicita un aumento de la cuota

A los proyectos que usan GPUs de Cloud Run nvidia-l4 en una región por primera vez, se les otorga automáticamente una cuota de 3 GPUs (redundancia zonal desactivada) cuando se crea la primera implementación. La cuota para las GPUs de Cloud Run nvidia-rtx-pro-6000 se otorga en miliGPUs. A los proyectos que usen GPUs nvidia-rtx-pro-6000 en una región por primera vez, se les otorgará automáticamente una cuota de 3,000 miliGPUs (redundancia zonal desactivada) cuando se cree la primera implementación. Esto equivale a 3 GPUs.

Ten en cuenta que esta concesión automática de cuota está sujeta a disponibilidad según tu capacidad de CPU y memoria. Esto limita la cantidad de GPUs que pueden estar activas en todos los servicios, trabajos y grupos de trabajadores del proyecto en un momento determinado.

Si necesitas más GPUs de Cloud Run para trabajos, solicita un aumento de cuota.

Antes de comenzar

En la siguiente lista, se describen los requisitos y las limitaciones que se aplican cuando se usan GPUs en Cloud Run:

  1. Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Habilitar la API de Cloud Run

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el permiso serviceusage.services.enable. Obtén más información para otorgar roles.

    Habilitar la API

  7. Consulta Prácticas recomendadas: Trabajos de Cloud Run con GPUs para optimizar el rendimiento cuando uses trabajos de Cloud Run con GPUs.

Roles obligatorios

Para obtener los permisos que necesitas para configurar los trabajos de Cloud Run, pídele a tu administrador que te otorgue los siguientes roles de IAM en los trabajos:

  • Desarrollador de Cloud Run (roles/run.developer): El trabajo de Cloud Run
  • Usuario de cuenta de servicio (roles/iam.serviceAccountUser): Es la identidad del servicio.

Para obtener una lista de los roles y los permisos de IAM asociados con Cloud Run, consulta los roles de IAM de Cloud Run y los permisos de IAM de Cloud Run. Si tu trabajo de Cloud Run interactúa con lasGoogle Cloud APIs, como las bibliotecas cliente de Cloud, consulta la guía de configuración de identidades del servicio. Para obtener más información sobre cómo otorgar roles, consulta los permisos de implementación y cómo administrar el acceso.

Configura un trabajo de Cloud Run para usar GPUs

Puedes usar la Google Cloud consola, Google Cloud CLI o YAML para configurar la GPU.

Console

  1. En la consola de Google Cloud , ve a la página Trabajos de Cloud Run:

    Ir a Cloud Run

  2. Haz clic en Implementar contenedor para completar la página de configuración de trabajo inicial. Si quieres configurar un trabajo existente, selecciona el trabajo y, luego, haz clic en Ver y editar la configuración del trabajo.

  3. Haz clic en Contenedores, Conexiones, Seguridad para expandir la página de propiedades del trabajo.

  4. Haz clic en la pestaña Contenedor.

    imagen

    • Configura la CPU, la memoria y el sondeo de inicio según las recomendaciones que se indican en Antes de comenzar.
    • Marca la casilla de verificación GPU. Luego, selecciona el tipo de GPU en el menú Tipo de GPU y la cantidad de GPU en el menú Cantidad de GPU.
  5. Haz clic en Crear o Actualizar.

gcloud

Para habilitar la redundancia no zonal, debes especificar --no-gpu-zonal-redundancy. Esto es obligatorio para usar la GPU con los trabajos.

Para crear un trabajo con las GPUs habilitadas, usa el comando gcloud run jobs create:

    gcloud run jobs create JOB_NAME \
      --image=IMAGE \
      --gpu=1 \
      --no-gpu-zonal-redundancy

Reemplaza lo siguiente:

  • JOB_NAME por el nombre del trabajo de Cloud Run.
  • IMAGE_URL: Es una referencia a la imagen del contenedor, por ejemplo, us-docker.pkg.dev/cloudrun/container/job:latest.

Para actualizar la configuración de GPU de un trabajo, usa el comando gcloud run jobs update:

    gcloud run jobs update JOB_NAME \
      --image IMAGE_URL \
      --cpu CPU \
      --memory MEMORY \
      --gpu GPU_NUMBER \
      --gpu-type GPU_TYPE \
      --parallelism PARALLELISM \
      --no-gpu-zonal-redundancy

Reemplaza lo siguiente:

  • JOB_NAME por el nombre del trabajo de Cloud Run.
  • IMAGE_URL: Es una referencia a la imagen del contenedor, por ejemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
  • CPU: es la cantidad de CPU. Para la GPU L4, debes especificar al menos 4 CPU. En el caso de la GPU NVIDIA RTX PRO 6000 Blackwell, debes especificar al menos 20 CPU.
  • MEMORY: Es la cantidad de memoria. Para la GPU L4, debes especificar al menos 16Gi (16 GiB). En el caso de la GPU NVIDIA RTX PRO 6000 Blackwell, debes especificar al menos 80Gi (80 GiB).
  • GPU_NUMBER: El valor 1 (uno). Si no se especifica, pero hay un GPU_TYPE presente, el valor predeterminado es 1.
  • GPU_TYPE es el tipo de GPU. Para la GPU L4, ingresa el valor nvidia-l4 (nvidia-L4 con "L" minúscula, no el valor numérico catorce). GPU NVIDIA RTX PRO 6000 Blackwell, presiona nvidia-rtx-pro-6000.
  • PARALLELISM: Es un valor entero inferior al valor más bajo de los límites de cuota aplicables que asignaste a tu proyecto.

YAML

Debes establecer la anotación run.googleapis.com/gpu-zonal-redundancy-disabled: en "true". Esto habilita la redundancia no zonal, que se requiere para las GPUs de los trabajos.

  1. Si creas un trabajo nuevo, omite este paso. Si actualizas un trabajo existente, descarga su configuración de YAML:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Actualiza los atributos nvidia.com/gpu, annotations: run.googleapis.com/launch-stage para la etapa de lanzamiento y nodeSelector:
    run.googleapis.com/accelerator
    :

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB_NAME
      labels:
        cloud.googleapis.com/location: REGION
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/gpu-zonal-redundancy-disabled: 'true'
        spec:
          template:
            spec:
              containers:
              - image: IMAGE_URL
                limits:
                  cpu: 'CPU'
                  memory: 'MEMORY'
                  nvidia.com/gpu: 'GPU_NUMBER'
              nodeSelector:
                run.googleapis.com/accelerator: GPU_TYPE

    Reemplaza lo siguiente:

    • JOB_NAME por el nombre del trabajo de Cloud Run.
    • IMAGE_URL: Es una referencia a la imagen del contenedor, por ejemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
    • CPU: Es la cantidad de CPU. Para la GPU L4, debes especificar al menos 4 CPU. En el caso de la GPU NVIDIA RTX PRO 6000 Blackwell, debes especificar al menos 20 CPU.
    • MEMORY: Es la cantidad de memoria. Para la GPU L4, debes especificar al menos 16Gi (16 GiB). En el caso de la GPU NVIDIA RTX PRO 6000 Blackwell, debes especificar al menos 80Gi (80 GiB).
    • GPU_NUMBER: El valor 1 (uno) porque solo se admite adjuntar una GPU por instancia de Cloud Run.
    • GPU_TYPE es el tipo de GPU. Para la GPU L4, ingresa el valor nvidia-l4 (nvidia-L4 con "L" minúscula, no el valor numérico catorce). GPU NVIDIA RTX PRO 6000 Blackwell, presiona nvidia-rtx-pro-6000.
  3. Crea o actualiza el servicio con el siguiente comando:

    gcloud run jobs replace job.yaml

Visualiza la configuración de GPU

Para ver la configuración actual de la GPU de tu trabajo de Cloud Run, sigue estos pasos:

Console

  1. En la Google Cloud consola, ve a la página de trabajos de Cloud Run:

    Ir a Trabajos de Cloud Run

  2. Haz clic en el trabajo que te interesa para abrir la página Detalles del trabajo.

  3. Haz clic en Ver y editar la configuración del trabajo.

  4. Ubica la configuración de la GPU en los detalles de configuración.

gcloud

  1. Usa el siguiente comando:

    gcloud run jobs describe JOB_NAME
  2. Busca la configuración de GPU en la configuración mostrada.

Desconecta recursos de GPU de un trabajo

Puedes desconectar recursos de GPU de un trabajo con la consola de Google Cloud , Google Cloud CLI o YAML.

Console

  1. En la consola de Google Cloud , ve a la página Trabajos de Cloud Run:

    Ir a Cloud Run

  2. En la lista de trabajos, haz clic en uno para abrir sus detalles.

  3. Haz clic en Ver y editar la configuración del trabajo.

  4. Haz clic en Contenedores, Conexiones, Seguridad para expandir la página de propiedades del trabajo.

  5. Haz clic en la pestaña Contenedor.

    imagen

    • Desmarca la casilla de verificación GPU.
  6. Haz clic en Actualizar.

gcloud

Para separar los recursos de GPU de tu trabajo de Cloud Run, establece la cantidad de GPUs en 0 con el comando gcloud run jobs update:

  gcloud run jobs update JOB_NAME --gpu 0
  

Reemplaza JOB_NAME por el nombre de tu trabajo de Cloud Run.

YAML

  1. Si creas un trabajo nuevo, omite este paso. Si actualizas un trabajo existente, descarga su configuración de YAML:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Borra las líneas nvidia.com/gpu:, run.googleapis.com/gpu-zonal-redundancy-disabled: 'true' y nodeSelector: run.googleapis.com/accelerator: GPU_TYPE.

  3. Crea o actualiza el servicio con el siguiente comando:

    gcloud run jobs replace job.yaml

Bibliotecas de controladores

De forma predeterminada, todas las bibliotecas de controladores de GPU NVIDIA L4 y NVIDIA RTX PRO 6000 Blackwell se activan en /usr/local/nvidia/lib64. Cloud Run agrega automáticamente esta ruta de acceso a la variable de entorno LD_LIBRARY_PATH (es decir, ${LD_LIBRARY_PATH}:/usr/local/nvidia/lib64) del contenedor con la GPU. Esto permite que el vinculador dinámico encuentre las bibliotecas de controladores de NVIDIA. El vinculador busca y resuelve rutas de acceso en el orden en que las enumeras en la variable de entorno LD_LIBRARY_PATH. Todos los valores que especifiques en esta variable tendrán prioridad sobre la ruta de acceso predeterminada de las bibliotecas del controlador de Cloud Run /usr/local/nvidia/lib64.

Si quieres usar una versión de CUDA superior a 12.2, la forma más fácil es depender de una imagen base de NVIDIA más reciente con paquetes de retrocompatibilidad ya instalados. Otra opción es instalar manualmente los paquetes de retrocompatibilidad de NVIDIA y agregarlos a LD_LIBRARY_PATH. Consulta la matriz de compatibilidad de NVIDIA para determinar qué versiones de CUDA son compatibles con la versión del controlador NVIDIA proporcionada.

Acerca de las GPUs y el paralelismo

Si ejecutas tareas paralelas en la ejecución de un trabajo, determina y establece el valor de paralelismo en un valor inferior a la cuota de GPU sin redundancia zonal asignada a tu proyecto. Para solicitar un aumento de la cuota, consulta Cómo aumentar la cuota. Las tareas de GPU se inician lo más rápido posible y alcanzan un máximo que varía según la cuota de GPU que asignaste para el proyecto y la región seleccionada. Las implementaciones de Cloud Run fallan si estableces el paralelismo en un valor superior al límite de la cuota de GPU.

Para calcular la cuota de GPU que usa tu trabajo por ejecución, multiplica la cantidad de GPUs por tarea del trabajo por el valor de paralelismo. Por ejemplo, si tienes una cuota de GPU de 10 y implementas tu trabajo de Cloud Run con --gpu=1, --parallelism=10, tu trabajo consumirá toda la cuota de GPU de 10. Como alternativa, si realizas la implementación con --gpu=1, --parallelism=20, las implementaciones fallarán.

Para obtener más información, consulta Prácticas recomendadas: Trabajos de Cloud Run con GPUs.

¿Qué sigue?

Consulta Ejecuta la inferencia de IA en Cloud Run con GPUs para ver instructivos.