FFmpeg constate une augmentation de performance de 94x avec du code AVX-512 écrit à la main
Les développeurs de FFmpeg ont mis en œuvre un chemin de code assembleur AVX-512 écrit à la main, entraînant un gain de performance significatif allant jusqu'à 94 fois pour certaines fonctions de la bibliothèque de traitement multimédia.
Cette optimisation exploite les capacités de traitement parallèle de l'AVX-512, permettant un traitement plus rapide de grandes quantités de données, particulièrement bénéfique pour le traitement vidéo et d'image.
Bien que cette évolution soit avantageuse pour les utilisateurs disposant de matériel compatible AVX-512, il convient de noter que Intel a désactivé le support AVX-512 sur ses récents processeurs Core.
Heureusement, les utilisateurs d'AMD ont de la chance. Les processeurs Ryzen série 9000 d'AMD disposent d'une FPU AVX-512 entièrement activée, ce qui permet à ces utilisateurs de bénéficier de l'amélioration FFmpeg.
Cette réussite montre le potentiel du code assembleur optimisé à la main pour améliorer les performances, en particulier dans les applications sensibles aux performances.
Le code assembleur manuscrit offre un énorme gain de performance pour FFmpeg
Les développeurs de FFmpeg ont réalisé une amélioration des performances remarquable allant jusqu'à 94 fois en implémentant du code assembleur AVX-512 écrit à la main.
Une amélioration de la vitesse de 94x démontrée en utilisant de l'assembleur écrit à la main pic.twitter.com/FI28GOONQA
Alors que les langages de programmation de haut niveau et les compilateurs simplifient le développement logiciel, ils échouent parfois à exploiter pleinement les capacités du matériel moderne. Les développeurs de FFmpeg ont abordé ce problème en utilisant directement le jeu d'instructions AVX-512, une fonctionnalité souvent négligée même par les programmeurs expérimentés.
AVX-512 permet le traitement parallèle de grandes quantités de données en utilisant des registres de 512 bits. Cela le rend particulièrement adapté aux tâches nécessitant beaucoup de calcul, comme le traitement vidéo et d'image. Les résultats de leurs efforts ont été stupéfiants, le nouveau chemin de code surpassant les implémentations standard d'un facteur de 3 à 94.
Cette optimisation est particulièrement bénéfique pour les utilisateurs disposant de matériel compatible AVX-512, comme les processeurs Ryzen 9000 séries d'AMD. Malheureusement, Intel a désactivé le support AVX-512 dans ses récentes générations de processeurs Core.
Cependant, la complexité de l'AVX-512 signifie que de telles optimisations sont généralement limitées à des applications spécifiques et nécessitent des connaissances spécialisées en programmation de bas niveau.