Amazon-ECS-Aufgabendefinitionen für Workloads zur Video-Transkodierung - Amazon Elastic Container Service

Amazon-ECS-Aufgabendefinitionen für Workloads zur Video-Transkodierung

Um Workloads zur Video-Transcodierung auf Amazon ECS zu verwenden, registrieren Sie die Amazon-EC2-VT1-Instances. Nachdem Sie diese Instances registriert haben, können Sie Live- und vorab gerenderte Video-Transcodierungs-Workloads als Aufgaben auf Amazon ECS ausführen. Amazon-EC2-VT1-Instances verwenden Xilinx U30-Medientranscodierungskarten, um Live- und vorab gerenderte Video-Transcodierungs-Workloads zu beschleunigen.

Anmerkung

Anleitungen für das Ausführen von Workloads zur Video-Transcodierung in anderen Containern als Amazon ECS finden Sie in der Xilinx-Dokumentation.

Überlegungen

Seien Sie sich der folgenden Überlegungen bewusst, bevor Sie mit der Bereitstellung von VT1 auf Amazon ECS beginnen:

  • Ihre Cluster können eine Mischung aus VT1- und Nicht-VT1-Instances enthalten.

  • Sie benötigen eine Linux-Anwendung, die Xilinx U30-Medientranscodierungskarten mit beschleunigten H.264/AVC- und H.265/HEVC-Codecs verwendet.

    Wichtig

    Anwendungen, die andere Codecs verwenden, haben möglicherweise keine verbesserte Leistung auf VT1-Instances.

  • Nur eine Transcodierungsaufgabe kann auf einer U30-Karte ausgeführt werden. Jede Karte hat zwei Geräte, die damit verbunden sind. Sie können so viele Transcodierungsaufgaben ausführen, wie es Karten für jede Ihrer VT1-Instance gibt.

  • Wenn Sie eine eigenständige Aufgabe ausführen oder einen Service erstellen, können Sie beim Konfigurieren der Aufgabenplatzierungbedingungen Attribute des Instance-Typs verwenden. Dadurch wird sichergestellt, dass die Aufgabe auf der von Ihnen angegebenen Container-Instance gestartet wird. So können Sie Ihre Ressourcen effektiv nutzen und sicherstellen, dass sich Ihre Aufgaben für Video-Transcodierungs-Workloads auf Ihren VT1-Instances befinden. Weitere Informationen finden Sie unter So platziert Amazon ECS Aufgaben in Container-Instances.

    Im folgenden Beispiel wird eine Aufgabe auf einer vt1.3xlarge-Instance auf Ihrem default-Cluster ausgeführt.

    aws ecs run-task \ --cluster default \ --task-definition vt1-3xlarge-xffmpeg-processor \ --placement-constraints type=memberOf,expression="attribute:ecs.instance-type == vt1.3xlarge"
  • Sie können einen Container so konfigurieren, dass er die spezifische U30-Karte verwendet, die auf der Host-Container-Instance verfügbar ist. Sie können dazu den linuxParameters-Parameter nutzen und die Geräteinformationen angeben. Weitere Informationen finden Sie unter Anforderungen an die Aufgabendefinition.

Verwenden eines VT1-AMI

Sie haben zwei Möglichkeiten, ein AMI auf Amazon EC2 für Amazon-ECS-Container-Instances auszuführen. Die erste Option besteht darin, das offizielle Xilinx-AMI auf AWS Marketplace zu verwenden. Die zweite Option besteht darin, Ihr eigenes AMI aus dem Beispiel-Repository zu erstellen.

  • Xilinx stellt AMIs auf AWS Marketplace bereit.

  • Amazon ECS stellt ein Beispiel-Repository bereit, mit dem Sie ein AMI für Video-Transcodierungs-Workloads erstellen können. Dieses AMI wird mit Xilinx U30-Treibern geliefert. Das Repository, das Packer-Skripte enthält, finden Sie auf Github. Weitere Informationen zu Packer finden Sie in der Packer-Dokumentation.

Anforderungen an die Aufgabendefinition

Um Video-Transcodierungscontainer auf Amazon ECS auszuführen, muss Ihre Aufgabendefinition eine Video-Transcodierungsanwendung enthalten, die die beschleunigten H.264/AVC- und H.265/HEVC-Codecs verwendet. Sie können ein Container-Image erstellen, indem Sie die Schritte auf Xilinx Github ausführen.

Die Aufgabendefinition muss für den Instance-Typ spezifisch sein. Die Instance-Typen sind 3xlarge, 6xlarge und 24xlarge. Sie müssen einen Container so konfigurieren, dass er spezifische Xilinx U30-Geräte verwendet, die auf der Host-Container-Instance verfügbar sind. Dazu können Sie den linuxParameters-Parameter verwenden. In der folgenden Tabelle sind die Karten und Geräte-SoCs aufgeführt, die für jeden Instance-Typ spezifisch sind.

Instance-Typ vCPUs RAM (GiB) U30 Accelerator-Karten Adressierbare XCU30 SoC-Geräte Gerätepfade
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
Wichtig

Wenn die Aufgabendefinition Geräte auflistet, die die EC2-Instance nicht hat, kann die Aufgabe nicht ausgeführt werden. Wenn die Aufgabe fehlschlägt, wird die folgende Fehlermeldung in stoppedReason angezeigt: CannotStartContainerError: Error response from daemon: error gathering device information while adding custom device "/dev/dri/renderD130": no such file or directory.