Zum Hauptinhalt Zur Navigation

AVX-512: FFmpeg mit 94-facher Leistung

Die im Allgemeinen nicht besonders beliebte Befehlssatz-Extension AVX-512 beschert FFmpeg einen gewaltigen Performancegewinn.
/ Boris Mayer
30 Kommentare News folgen (öffnet im neuen Fenster)
Das FF in FFmpeg steht für Fast Forward. Es geht jetzt 94-mal schneller voran. (Bild: Boris Mayer)
Das FF in FFmpeg steht für Fast Forward. Es geht jetzt 94-mal schneller voran. Bild: Boris Mayer

Laut einem Bericht von Tom's Hardware(öffnet im neuen Fenster) haben Entwickler des Open-Source-Projekts FFmpeg per handgeschriebenem AVX-512-Assemblercode deutliche Leistungssteigerungen erreicht. Durch einen auf die Befehlssatz-Extension optimierten Assemblercodepfad innerhalb der FFmpeg-Multimedia-Bibliothek erzielten sie Performanceverbesserungen bis zu einer 94-fachen Geschwindigkeit im Vergleich zu Standardimplementierungen.

AVX-512, eingeführt von Intel im Jahr 2013, ist eine Erweiterung des x86-Befehlssatzes, die 512 Bit breite SIMD-Operationen (Single Instruction, Multiple Data) ermöglicht, was besonders nützlich für rechenintensive Aufgaben wie Video- und Bildverarbeitung ist.

Benchmarks zeigen, dass der optimierte AVX-512-Codepfad deutlich schneller arbeitet als andere Implementierungen, einschließlich Basis-C-Code und älterer SIMD-Befehlssätze wie AVX2 und SSE3. Dies unterstreicht, dass manuell optimierter Assemblercode, speziell für AVX-512, eine erhebliche Effizienzsteigerung bieten kann.

Während moderne Programmiersprachen und Compiler die Softwareentwicklung vereinfachen, schöpfen sie die Leistung moderner Hardware oft nicht voll aus. Die Ergebnisse von FFmpeg belegen, dass speziell angepasster Assemblercode trotz höherem Aufwand massive Leistungsgewinne für bestimmte Workloads erzielen kann.

Der Hintergrund zu AVX-512

AVX-512, ursprünglich in Intels Xeon-Phi-Prozessoren eingesetzt, verbessert die Rechenleistung, indem es breitere Datenoperationen erlaubt und neue Funktionen wie Maskenregister für bedingte Verarbeitung, erweiterte Registerkapazität und zusätzliche Anweisungen für Datenmanipulation, Konvertierung und maschinelles Lernen hinzufügt.

Der Befehlssatz ist modular aufgebaut. Prozessoren können so Teile von AVX-512 implementieren, ohne das gesamte Set zu unterstützen. Allerdings führt der Einsatz von AVX-512 auf einigen CPUs zu Leistungseinbußen, da diese Anweisungen einen hohen Power-Envelope aufweisen und dadurch negative Auswirkungen auf den Takt haben. Zusammen mit der hohen Komplexität führt der Energiebedarf zu viel Kritik, trotz des Potenzials für hohe Leistung in Bereichen wie KI und Medienverarbeitung.

AVX-512 ist bisher umstritten

Die von AVX-512 durch die Drosselung der Taktrate verursachten Leistungseinbußen auf manchen CPUs, insbesondere älteren Intel-Modellen, kann erheblich sein, tritt jedoch nicht auf, wenn nur die 128- oder 256-Bit-Teile (AVX-512VL) verwendet werden. Die Compiler gcc und clang bevorzugen auf Intel-Prozessoren daher die Nutzung von 256-Bit-Befehlen statt der vollen 512-Bit-Breite von AVX-512.

Linus Torvalds kritisierte AVX-512 in der Vergangenheit scharf. Er bezeichnete es als ineffizient und "überflüssig" und wünschte sich, dass Intel mehr in zusätzliche CPU-Kerne und höhere Integer-Leistung investiert, anstatt komplexe Befehlssätze zu entwickeln, die vor allem für Benchmark-Zwecke gut aussähen.

Das Problem mit dem 94-fachen Performancegewinn

Nicht bekannt gegeben haben die Entwickler von FFmpeg, auf welchem System mit welcher CPU sie den 94-fachen Performancegewinn gemessen haben. Das ist auch deshalb ein Problem, weil Intels Prozessorgenerationen unterschiedliche Modulsets aus AVX-512 implementieren und man nicht davon ausgehen kann, dass ein in der Xeon-Linie Knights Mill von 2016 vorhandenes Modul auch in Ice Lake (2019) oder Sapphire Rapids (2023) enthalten ist.

Bei den 2021 eingeführten Alder-Lake-Prozessoren begann Intel Anfang 2022 zudem, auf den CPUs die Unterstützung für AVX-512 hart zu deaktivieren. Und solange nicht bekannt ist, auf welchem konkretem Prozessormodell die Performancegewinne erzielt wurden, lassen sie sich auch nicht gezielt replizieren.


Relevante Themen