Compatibilidad de Dataflow para GPU

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:

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

Si deseas obtener información sobre los tipos de GPU disponibles y la configuración de VM de trabajador, consulta las ubicaciones de Dataflow.

¿Qué sigue?