Uso de GPU en Amazon ECS - Amazon Elastic Container Service

Si proporcionásemos una traducción de la versión en inglés de la guía, prevalecerá la versión en inglés de la guía si hubiese algún conflicto. La traducción se proporciona mediante traducción automática.

Uso de GPU en Amazon ECS

Amazon ECS admite cargas de trabajo que aprovechan las GPU al permitirle crear Clústeres de con instancias de contenedor habilitadas para GPU. Amazon EC2 Instancias de contenedor basadas en GPU que utilizan Los tipos de instancias p2, p3, g3 y g4 proporcionan acceso a las GPU de NVIDIA. Para más información información, consulte de Linux Instancias de computación acelerada en el Guía del usuario de Amazon EC2 para instancias de Linux.

Amazon ECS proporciona una solución optimizada para GPU AMI que viene preparado con NVIDIA preconfigurado y un tiempo de ejecución de GPU de Docker. Para obtener más información, consulte Amazon ECS-optimized AMIs.

Puede designar una serie de GPU en la definición de tarea para la ubicación de tareas en un contenedor de nivel. Amazon ECS programará en la GPU disponible de instancias de contenedor de y fije las GPU físicas a los contenedores adecuados para obtener un rendimiento óptimo.

Lo siguiente Amazon EC2 Los tipos de instancias basadas en GPU son compatibles con. Para obtener más información, consulte Amazon EC2 Instancias P2, Amazon EC2 Instancias P3, Amazon EC2 Instancias G3, y Amazon EC2 [EMPTY] Instancias.

importante

La familia de tipos de instancias g4 es compatible con la versión 20190913 y más tarde de la Amazon ECS Optimizado para GPU AMI. Para obtener más información, consulte de Linux Amazon ECS-optimizado AMIs versiones. Es no se admite actualmente en el flujo de trabajo Create Cluster (Crear clúster) en el Amazon ECS consola de. Para utilizar estos tipos de instancias, debe utilizar el Amazon EC2 consola, AWS CLI, o API y registre manualmente las instancias en el clúster de.

Tipo de instancia

Unidades de procesamiento de datos (GPU)

Memoria de GPU (GiB)

CPU virtuales

Memoria (GiB)

más grande

1

12 años

4

[EMPTY]

2,8 veces más grande

8

[EMPTY]

[EMPTY]

[EMPTY]

p2.16xgrande

[EMPTY]

[EMPTY]

64 años

[EMPTY]

más grande

1

[EMPTY]

8

[EMPTY]

mayor tamaño de p3.8

4

64 años

[EMPTY]

[EMPTY]

más grande

8

[EMPTY]

64 años

[EMPTY]

sión p3dn.24xlarge

8

256 años

[EMPTY]

[EMPTY]

g3s.extensión

1

8

4

30,5 años

3,4 ggrande

1

8

[EMPTY]

[EMPTY]

3,8 ggrande

2

[EMPTY]

[EMPTY]

[EMPTY]

3,16 ggrande

4

[EMPTY]

64 años

[EMPTY]

[EMPTY]

1

[EMPTY]

4

[EMPTY]

x4dn.2xgrande

1

[EMPTY]

8

[EMPTY]

g4dn.4xgrande

1

[EMPTY]

[EMPTY]

64 años

g4dn.8xgrande

1

[EMPTY]

[EMPTY]

[EMPTY]

x4dn.12xgrande

4

64 años

48 años

[EMPTY]

x4dn. x 16grande

1

[EMPTY]

64 años

256 años

Considerations

Antes de comenzar a trabajar con GPU en Amazon ECS, tenga en cuenta lo siguiente consideraciones:

  • Los clústeres pueden contener una mezcla de instancias de contenedor de GPU y de no GPU.

  • Al ejecutar una tarea o crear un servicio, puede utilizar el tipo de instancia al configurar restricciones de ubicación de tareas para garantizar cuál de las instancias de contenedor en las que se lanza la tarea. Esto le permitirá utilice de forma eficaz sus recursos de. Para obtener más información, consulte Amazon ECS colocación de tareas.

    The following example launches a task on a p2.xlarge instancia de contenedor en su clúster predeterminado.

    aws ecs run-task --cluster default --task-definition ecs-gpu-task-def \ --placement-constraints type=memberOf,expression="attribute:ecs.instance-type == p2.xlarge" --region us-east-2
  • Para cada contenedor que tenga un requisito de recurso de GPU especificado en el definición de contenedor, Amazon ECS establece el tiempo de ejecución del contenedor para que sea el NVIDIA tiempo de ejecución del contenedor.

  • El tiempo de ejecución del contenedor NVIDIA requiere que se configuren algunas variables de entorno en el contenedor para que funcione. Para obtener una lista de estos entornos variables, consulte nvidia-contenedor-tiempo-funcionamiento. Amazon ECS establece el NVIDIA_VISIBLE_DEVICES valor de variable de entorno para ser un de los ID de dispositivo de GPU que Amazon ECS asigna al contenedor. Para el otras variables de entorno necesarias, Amazon ECS no los establece y usted debería asegúrese de que la imagen del contenedor las establece o deben establecerse en la Definición de contenedor de.

Especificación de GPU en la definición de tareas

Para aprovechar las GPU de una instancia de contenedor y el tiempo de ejecución de la GPU de Docker, asegurarse de que designa el número de GPU que su contenedor requiere en la tarea definición. A medida que se colocan los contenedores habilitados para GPU, el Amazon ECS el agente de contenedor anclará el número deseado de GPU físicas en el contenedor adecuado. El número de GPU reservado para todos los contenedores de una tarea no debe superar el número de GPU disponibles en la instancia de contenedor, la tarea se lanza en. Para obtener más información, consulte Creación de una definición de tarea.

importante

Si los requisitos de la GPU no se especifican en la definición de tarea, la tarea utilizará el tiempo de ejecución de Docker predeterminado.

A continuación se muestra el formato JSON para los requisitos de GPU en una tarea definición:

{ "containerDefinitions": [ { ... "resourceRequirements" : [ { "type" : "GPU", "value" : "2" } ], }, ... }

El siguiente ejemplo muestra la sintaxis de un contenedor de Docker que especifica un requisito de GPU. Este contenedor utiliza 2 GPU, ejecuta el nvidia-smi y, a continuación, sale de.

{ "containerDefinitions": [ { "memory": 80, "essential": true, "name": "gpu", "image": "nvidia/cuda:9.0-base", "resourceRequirements": [ { "type":"GPU", "value": "2" } ], "command": [ "sh", "-c", "nvidia-smi" ], "cpu": 100 } ], "family": "example-ecs-gpu" }