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
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 Ihremdefault-Cluster ausgeführt.aws ecs run-task \ --cluster default \ --task-definitionvt1-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.
-
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
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/renderD.130": no such file or
directory