Définitions de tâche Amazon ECS pour les charges de travail de transcodage vidéo
Pour utiliser des charges de travail de transcodage vidéo sur Amazon ECS, enregistrez des instances Amazon EC2 VT1
Note
Pour obtenir des instructions sur l'exécution de charges de travail de transcodage vidéo dans des conteneurs autres qu'Amazon ECS, consultez la documentation Xilinx
Considérations
Avant de commencer à déployer VT1 sur Amazon ECS, prenez en compte ce qui suit :
-
Vos clusters peuvent contenir une combinaison d'instances VT1 et non VT1.
-
Vous avez besoin d'une application Linux qui utilise des cartes de transcodage multimédia Xilinx U30 avec des codecs AVC (H.264) et HEVC (H.265) accélérés.
Important
Les applications qui utilisent d'autres codecs peuvent ne pas avoir de performances améliorées sur les instances VT1.
-
Une seule tâche de transcodage peut être exécutée sur une carte U30. Chaque carte est associée à deux appareils. Vous pouvez exécuter autant de tâches de transcodage que de cartes pour chacune de vos instances VT1.
-
Lorsque vous exécutez une tâche autonome ou créez un service, vous pouvez utiliser des attributs de type d'instance lors de la configuration des contraintes de placement des tâches. Cela garantit que la tâche est lancée sur l'instance de conteneur que vous spécifiez. Cela permet de vous assurer que vous utilisez efficacement vos ressources et que vos tâches pour vos charges de travail de transcodage vidéo se trouvent sur vos instances VT1. Pour de plus amples informations, consultez How Amazon ECS places tasks on container instances.
Dans l'exemple suivant, une tâche est exécutée sur une instance
vt1.3xlargede votre clusterdefault.aws ecs run-task \ --cluster default \ --task-definitionvt1-3xlarge-xffmpeg-processor\ --placement-constraints type=memberOf,expression="attribute:ecs.instance-type == vt1.3xlarge" -
Vous configurez un conteneur pour utiliser une carte U30 spécifique disponible sur l'instance de conteneur hôte. Vous pouvez effectuer cette opération en utilisant le paramètre
linuxParameterset en spécifiant les détails de l'appareil. Pour de plus amples informations, consultez Exigences relatives à la définition de tâche.
Utilisation d'une AMI VT1
Vous avez deux options pour exécuter une AMI sur des instances de conteneur Amazon EC2 pour Amazon ECS. La première option consiste à utiliser l'AMI officielle Xilinx sur AWS Marketplace. La deuxième option consiste à créer votre propre AMI à partir de l'exemple du référentiel.
-
Amazon ECS fournit un exemple de référentiel que vous pouvez utiliser pour créer une AMI pour les charges de travail de transcodage vidéo. Cette AMI est fournie avec les pilotes Xilinx U30. Vous pouvez trouver le référentiel qui contient des scripts Packer sur Github
. Pour plus d'informations sur Packer, consultez la documentation Packer .
Exigences relatives à la définition de tâche
Pour exécuter des conteneurs de transcodage vidéo sur Amazon ECS, votre définition de tâche doit contenir une application de transcodage vidéo utilisant les codecs H.264/AVC et H.265/HEVC accélérés. Vous pouvez créer une image de conteneur en suivant les étapes de Xilinx Github
La définition de tâche doit être spécifique au type d'instance. Les types d'instance sont 3xlarge, 6xlarge et 24xlarge. Vous devez configurer un conteneur pour utiliser des appareils Xilinx U30 spécifiques disponibles sur l'instance de conteneur hôte. Vous pouvez effectuer cette opération à l'aide du paramètre linuxParameters. Le tableau suivant détaille les cartes et les SoC de périphériques spécifiques à chaque type d'instance.
| Type d'instance | vCPU | RAM (Gio) | Cartes accélératrices U30 | Appareils SoC XCU30 adressables | Chemins de l'appareil |
|---|---|---|---|---|---|
| vt1.3xlarge | 12 | 24 | 1 | 2 | /dev/dri/renderD128,/dev/dri/renderD129 |
| vt1.6xlarge | 24 | 48 | 2 | 4 | /dev/dri/renderD128,/dev/dri/renderD129,/dev/dri/renderD130,/dev/dri/renderD131 |
| vt1.24xlarge | 96 | 182 | 8 | 16 | /dev/dri/renderD128,/dev/dri/renderD129,/dev/dri/renderD130,/dev/dri/renderD131,/dev/dri/renderD132,/dev/dri/renderD133,/dev/dri/renderD134,/dev/dri/renderD135,/dev/dri/renderD136,/dev/dri/renderD137,/dev/dri/renderD138,/dev/dri/renderD139,/dev/dri/renderD140,/dev/dri/renderD141,/dev/dri/renderD142,/dev/dri/renderD143 |
Important
Si la définition de tâche répertorie les périphériques dont l'instance EC2 ne dispose pas, la tâche ne s'exécute pas. Lorsque la tâche échoue, le message d'erreur suivant s'affiche dans stoppedReason : CannotStartContainerError: Error response from
daemon: error gathering device information while adding custom device
"/dev/dri/renderD.130": no such file or
directory