Un DL Boost en théorie 2 fois plus performant

Sapphire Rapids sera équipé d’AMX, une nouvelle extension x86 d’Intel

De nos jours, les processeurs de bureau utilisent le jeu d’instruction x86, ce qui signifie qu’ils sont capables de décoder un bon paquet de petits morceaux de code binaire, nommés « instructions » permettant d’assurer la rétrocompatibilité (théorique) avec les tout premiers CPU de cette famille, sortis dans la fin des années 70. Pour un petit mémo à ce sujet, nous vous avions concocté un dossier expliquant son fonctionnement il y a quelques années.

 

Or, la nouvelle du jour concerne justement une amélioration, à la fois dans le jeu d’instruction, mais aussi dans la conception des futurs processeurs de la série Sapphire Rapids. Pour cela, contextualisons encore davantage la situation : le langage x86 contient les instructions originelles de l’Intel 8086, mais a également été enrichi au fur et à mesure par des extensions du jeu d’instruction, tel le SGX pour fournir une plateforme sécurisée de calcul, le MMX pour des calculs dédiés au décodage multimédia ou encore le SSE pour effectuer plusieurs opérations simples en parallèle. Plus récemment, avec la sortie de la série Cooper Lake sur la Scalable Platform, Intel a dû revoir son implémentation des extensions VNNI (dédiées au machine learning) pour le rendre compatible avec le BFloat16, une réorganisation de la manière de représenter les nombres à virgules 16 bits afin d’offrir une étendue qui correspond mieux aux réseaux de neurones, au détriment de la précision.

 

Un DL Boost en théorie 2 fois plus performant

VNNI, DL Boost : deux termes pour une seule chose !

 

Concrètement, ce VNNI n’était pas une extension majeure, dans le sens où les opérations fournies sont exécutées grâce aux registres et aux unités de calcul dédiées à l’AVX-512 : les seuls changements ont dû être effectués au niveau du décodage de l’instruction (il faut désormais une seule instruction pour un calcul qui en nécessitait deux… mais la moulinette derrière reste identique) — ce qui retire un possible goulot d’étranglement, soyons clairs, mais ne nécessite pas de refonte profonde de l’organisation logique du CPU. En somme, les instructions VNNI ne seront efficaces que dans les cas où le processeur était limité par le décodage de ses instructions, ce qui n’inclut donc pas les situations, pourtant courantes, où le débit RAM n’est pas suffisant. De même, le BFloat16 revient à tronquer la représentation préexistante Float32 en rognant sur les bits de précision : il y a ici aussi fort à parier que les modifications du silicium ont été minimes.

 

intel server roadmap 2020 with amx

 

À l’inverse, les Xeon Sapphire Rapids, prévus pour 2021, amorceraient une nouvelle direction — alors même qu’Ice Lake régressera en abandonnant temporairement ce BFloat16, une décision qui se passe de commentaires — en rajoutant les Advanced Matrix Extensions (AMX), composées de 8 nouveaux registres capables de contenir des matrices d’une taille de 1 ko, soit 16 valeurs 64-bit (organisation ligne/colonne libre via un registre de configuration), doublant ainsi les tensors cores de NVIDIA qui bossent, eux, sur des registres ne contenant que 8 valeurs maximum, les verts en intègrent 432 sur leur dernière A100. Pour les manipuler, il faudra compter sur 12 nouvelles instructions, un nombre relativement faible étant donnée la diversité des opérations : outre les classiques chargements et rangements, le cœur de la puissance sera le produit matriciel, une opération combinant plusieurs produits scalaires vectoriels en parallèle, ô combien cruciale pour le machine learning et le calcul scientifique. Notez d’ailleurs que ces AMX pourront également opérer sur les entiers 8-bit ainsi qu’un BFloat16, tant qu’à faire, c’est cadeau !

 

Est-ce que cela sera utile pour d’autres applications (au hasard, pour les joueurs ou le grand public) ? Difficile à dire, bien qu’il soit clair que les applications proches du domaine professionnel comme la retouche photographique ou la modélisation 3D, un passe-temps pour certains, devraient en sortir accélérées — tout comme les benchmarks synthétiques se basant principalement sur des calculs matriciels. Vivement les tests indépendants ! (Source : WikiChip)

0
Would love your thoughts, please comment.x
()
x