Un développeur explique pourquoi l’AVX-512 est si bénéfique à RPCS3

Des comparaisons de performance pour un Core i9-12900K avec les jeux d’instructions SSE2, SSE4.1, AVX2/FMA et AVX-512.

En novembre dernier, les développeurs de RPCS3, un émulateur de PlayStation 3, recommandaient aux détenteurs de processeurs Alder Lake de désactiver les E-cores pour obtenir un boost des performances. Le motif de cette recommandation : profiter des bénéfices induits par les instructions AVX-512, supportées uniquement par les P-cores. Dans un article publié il y a quelques jours, Whatcookie, un des développeurs de RPCS3, revient en détail sur le sujet ; il y “explique pourquoi les nouvelles instructions et caractéristiques de la famille AVX-512 sont si utiles pour l’émulation de la PS3”.

Image 1 : Un développeur explique pourquoi l’AVX-512 est si bénéfique à RPCS3
Crédit : RPCS3

Nous ne nous attarderons pas excessivement sur les détails techniques, que vous pouvez consulter sur l’article source. Dans les grandes lignes, l’AVX-512 accroît la taille du fichier de registres, ajoute de nouvelles instructions mais également de nouveaux encodages pour les anciennes, et autorise de nouveaux registres de masques.

Par exemple, dans le premier cas, Whatcookie précise : “Le jeu d’instructions AVX-512 a un fichier de registres quatre fois plus volumineux que celui d’AVX2. La largeur des registres a doublé, passant de 256 à 512 bits, et le nombre de registres disponibles pour le programmeur a également doublé, passant de 16 à 32”.

Whatcookie résume : “AVX-512 comprend un grand nombre de nouvelles fonctionnalités qui sont très utiles pour la programmation SIMD, même à des largeurs de bits inférieures. Cependant, comme Intel a choisi de commercialiser AVX-512 sous le nom de -512, les personnes qui ne sont pas familières avec le jeu d’instructions se focalisent généralement sur l’aspect vecteur 512 bits du jeu d’instructions”.

RPCS3 : jusqu’à 50 % d’IPS en plus avec la dernière version

Comparaisons avec plusieurs jeux d’instructions

Afin de mesurer les gains offerts par l’AVX-512 sur RCPS3, Whatcookie a comparé les performances obtenues avec un processeur Intel Core i9-12900K avec différents jeux d’instructions : SSE2, SSE4.1, AVX2/FMA, et AVX-512.

Image 2 : Un développeur explique pourquoi l’AVX-512 est si bénéfique à RPCS3
De gauche à droite : SSE2, SSE4.1, AVX2/FMA et AVX-512. Crédit : Whatcookie

Les performances sous SSE2 sont très faibles. Le nombre moyen d’images par seconde avoisine les 160 IPS sous SSE4.1, passe à 190 IPS sous AVX2/FMA. Les instructions AVX-512 permettent de dépasser le 230 IPS.

Surtout bénéfique pour des processeurs moins puissants que le Core i9-12900K

Comme le fait remarquer Whatcookie, l’AVX-512 n’est pas indispensable pour un Core i9-12900K, déjà capable de délivrer 160 IPS avec le SSE4.1. L’auteur souligne en revanche que le recours à l’AVX-512 sur des puces moins haut de gamme, notamment celles qui équipent des appareils mobiles, peut s’avérer nettement plus salutaire. Il donne l’exemple des processeurs Intel Tiger Lake, ou des puces AMD Zen 4 à venir qui supporteront aussi les instructions AVX-512.

Whatcookie souligne néanmoins qu’en “dehors de RPCS3, l’AVX-512 n’est pas largement utilisé par les émulateurs, mais le recompilateur Arm dynarmic peut tirer parti de nombreuses instructions AVX-512. Dynarmic est utilisé par l’émulateur 3DS Citra, l’émulateur Nintendo Switch Yuzu ainsi que l’émulateur PS Vita Vita3K”.

Il indique ne pas avoir connaissance de “benchmark comparant les cibles AVX2 et AVX-512 pour l’un de ces émulateurs” mais “suppose que l’écart est plus faible qu’avec RPCS3, puisque les cœurs Arm supportent à la fois les instructions vectorielles et les instructions scalaires […]. Pour RPCS3, l’efficacité de ces optimisations vectorielles s’explique en grande partie par le fait que les SPU ne prennent en charge que les opérations sur les registres vectoriels”.

Par contre, il pense qu’un “émulateur qui pourrait bénéficier grandement des optimisations AVX-512 est PCSX2. Puisque les VUs de la PS2 ont inspiré une grande partie du comportement et de la conception des SPUs, beaucoup des optimisations qui s’appliquent à RPCS3 devraient également s’appliquer à PCSX2”.

Source : WhatCookie via Tom’s Hardware US