El uso de GPU en los trabajos de Dataflow te permite acelerar algunas tareas de procesamiento de datos. Las GPU pueden realizar ciertos cálculos más rápido que las CPU. Estos cálculos suelen ser de álgebra numérica o lineal, como los de procesamiento de imágenes y casos prácticos de aprendizaje automático. La extensión de la mejora del rendimiento varía según el caso práctico, el tipo de procesamiento y la cantidad de datos procesados.
Requisitos previos para usar GPU en Dataflow
Dataflow ejecuta el código de usuario en las VM de trabajador dentro de un contenedor de Docker. Estas VM de trabajador ejecutan Container-Optimized OS. Para que los trabajos de Dataflow usen GPU, las siguientes instalaciones deben ocurrir:
- Los controladores de GPU se instalan en las VM de trabajador y son accesibles para el contenedor de Docker. Para obtener más información, lee la documentación Instala controladores de GPU.
- Las bibliotecas de GPU que requiere tu canalización, como las bibliotecas de NVIDIA CUDA-X o el kit de herramientas de CUDA de NVIDIA, se instalan en la imagen del contenedor personalizada.
Para proporcionar una imagen de contenedor personalizada, debes usar Dataflow Runner v2 y proporcionar la imagen del contenedor con la opción de canalización worker_harness_container_image
.
La versión del controlador de GPU depende de la versión de Container-Optimized OS que usa Dataflow en la actualidad.
Precios
Los trabajos que usan GPU generan cargos, como se especifica en la página de precios de Dataflow. Los recursos de GPU en Dataflow no se descuentan durante la oferta de vista previa.
Consideraciones
Especificaciones de tipos de máquinas
Las GPU son compatibles con los tipos de máquina N1, incluidos los tipos personalizados de máquinas N1.
El tipo y la cantidad de GPU definen las restricciones de límite superior para la cantidad de CPU virtuales y memoria disponibles que pueden tener los trabajadores. Consulta la sección Disponibilidad para encontrar las restricciones correspondientes.
Especificar una mayor cantidad de CPU o memoria puede requerir que especifiques una mayor cantidad de GPU.
Para obtener más detalles, lee GPU en Compute Engine.
GPU y paralelismo de trabajadores
Para las canalizaciones de Python que usan la arquitectura Runner v2, Dataflow inicia un proceso del SDK de Apache Beam por núcleo de VM. Cada proceso del SDK se ejecuta en su propio contenedor de Docker y, a su vez, genera muchos subprocesos, cada uno de los cuales procesa datos entrantes.
Debido a esta arquitectura de procesos múltiples y al hecho de que las GPU en los trabajadores de Dataflow están visibles para todos los procesos y subprocesos, a fin de evitar el exceso de suscripción de GPU, es posible que se requiera una administración deliberada de acceso de GPU. Por ejemplo, si usas TensorFlow, debes configurar cada proceso de TensorFlow para que tome solo una parte de la memoria de GPU. Todos los procesos juntos no deben exceder la suscripción de la memoria de GPU. Para obtener más información, consulta Limita el crecimiento de la memoria de la GPU.
Como alternativa, puedes usar trabajadores con una CPU virtual para limitar la cantidad de procesos simultáneos que acceden a la GPU. Ten en cuenta que puedes aumentar la cantidad de memoria para máquinas con una CPU virtual mediante un tipo de máquina personalizado.
Disponibilidad
En la tabla siguiente, se capturan los tipos de GPU disponibles y la configuración de VM de trabajador disponible para los usuarios.
Modelo de GPU | GPU | Memoria de GPU | CPU virtuales disponibles | Memoria disponible | Zonas disponibles |
---|---|---|---|---|---|
NVIDIA® Tesla® T4 | 1 GPU | 16 GB GDDR6 | 1 a 24 CPU virtuales | 1 a 156 GB |
|
2 GPU | 32 GB GDDR6 | 1 a 48 CPU virtuales | 1 a 312 GB | ||
4 GPU | 64 GB GDDR6 | 1 a 96 CPU virtuales | 1 a 624 GB | ||
NVIDIA® Tesla® P4 | 1 GPU | 8 GB GDDR5 | 1 a 24 CPU virtuales | 1 a 156 GB |
|
2 GPU | 16 GB GDDR5 | 1 a 48 CPU virtuales | 1 a 312 GB | ||
4 GPU | 32 GB GDDR5 | 1 a 96 CPU virtuales | 1 a 624 GB | ||
NVIDIA® Tesla® V100 | 1 GPU | 16 GB HBM2 | 1 a 12 CPU virtuales | 1 a 78 GB |
|
2 GPU | 32 GB HBM2 | 1 a 24 CPU virtuales | 1 a 156 GB | ||
4 GPU | 64 GB HBM2 | 1 a 48 CPU virtuales | 1 a 312 GB | ||
8 GPU | 128 GB HBM2 | 1 a 96 CPU virtuales | 1 a 624 GB | ||
NVIDIA® Tesla® P100 | 1 GPU | 16 GB HBM2 | 1 a 16 CPU virtuales | 1 a 104 GB |
|
2 GPU | 32 GB HBM2 | 1 a 32 CPU virtuales | 1 a 208 GB | ||
4 GPU | 64 GB HBM2 | 1 a 64 CPU virtuales 1 a 96 CPU virtuales |
1 a 208 GB 1 a 624 GB |
||
NVIDIA® Tesla® K80 | 1 GPU | 12 GB GDDR5 | 1 a 8 CPU virtuales | 1 a 52 GB |
|
2 GPU | 24 GB GDDR5 | 1 a 16 CPU virtuales | 1 a 104 GB | ||
4 GPU | 48 GB GDDR5 | 1 a 32 CPU virtuales | 1 a 208 GB | ||
8 GPU | 96 GB GDDR5 | 1 a 64 CPU virtuales | 1 a 416 GB 1 a 208 GB |
- Para obtener una descripción más detallada de las zonas, consulta la página sobre regiones y zonas.
- Las placas NVIDIA® K80® tienen dos GPU cada una. El precio es por cada GPU K80, no por placa.
¿Qué sigue?
- Obtén más información sobre las tareas para usar GPU.
- Trabaja con el procesamiento de imágenes satelitales de Landsat con GPU.