Section courante

A propos

Section administrative du site

Introduction

L'extension AVX-512, de l'abréviation de l'anglicisme «Advanced Vector Extensions 512» est une extension de 512 bits pour des calcules vectorielles pour l'architecture de la famille des 80x86. Ces instructions sont destinés aux microprocesseurs pour serveurs Xeon comme par exemple le Xeon Phi x200.

On peut détecté la présence de cette extensions avec le CPUID sous l'appellation de deux groupes d'opérations. Le premier groupe est soit octet (8 bits) et mot (16 bits) et est définit par les drapeaux «AVX512BW». Ceux-ci améliore les opérations sur des nombres naturel ou des nombres entier. Le deuxième groupe est soit 32 bits ou 64 bits est indiquer par le drapeau «AVX512DQ». Le second groupe est destiné à améliorer les opérations en nombre entier et réels.

Les instructions AVX-512

Voici la liste du jeu d'instruction AVX-512 pour les microprocesseurs de la famille des 80x86 :

Instruction Description
V4FMADDPS Cette instruction permet de multiplier des paquets de valeurs réel de simple précision d'un bloc de registre source par les valeurs 128-bits spécifié et retourne le résultat.
V4FNMADDPS Cette instruction permet de multiplier négativement des paquets de valeurs réel de simple précision d'un bloc de registre source par les valeurs 128-bits spécifié et retourne le résultat.
V4FMADDSS Cette instruction permet de multiplier des valeurs scalaires réel de simple précision d'un bloc de registre source par les valeurs 128-bits spécifié et retourne le résultat.
V4FNMADDSS Cette instruction permet de multiplier négativement des valeurs scalaires réel de simple précision d'un bloc de registre source par les valeurs 128-bits spécifié et retourne le résultat.
VP4DPWSSD Cette instruction permet de multiplier des nombres entiers d'un bloc de registre par un nombre entier en 128-bits et retourne le résultats dans un double mots.
VP4DPWSSDS Cette instruction permet de calculer 4 bloc source de registres séquentiel de deux opérandes de mot entier avec un accumulateur en double mot et une saturation de signe.
VPERMB Cette instruction permet de copier les octets d'un second opérande source (le troisième opérande) vers l'opérande de destination (le premier opérande).
VPERMI2B Cette instruction permet de permuter les valeurs d'octet dans le second opérande (le premier opérande source) et le troisième opérande (le second opérande source) en utilisant l'indice d'octet dans le premier opérande (l'opérande de destination) vers les éléments d'octet sélectionné d'un second ou troisième opérande.
VPERMT2W Cette instruction permet de permuter les valeurs 16 bits dans le premier opérande et le troisième opérande (le second opérande source) en utilisant un indice dans le second opérande (le premier opérande source) vers les éléments sélectionné du premier et troisième opérande.
VPERMT2D Cette instruction permet de permuter les valeurs 32 bits dans le premier opérande et le troisième opérande (le second opérande source) en utilisant un indice dans le second opérande (le premier opérande source) vers les éléments sélectionné du premier et troisième opérande.
VPERMT2Q Cette instruction permet de permuter les valeurs 64 bits dans le premier opérande et le troisième opérande (le second opérande source) en utilisant un indice dans le second opérande (le premier opérande source) vers les éléments sélectionné du premier et troisième opérande.
VPERMT2PS Cette instruction permet de permuter les valeurs 32 bits de réel de simple précision dans le premier opérande et le troisième opérande (le second opérande source) en utilisant un indice dans le second opérande (le premier opérande source) vers les éléments sélectionné du premier et troisième opérande.
VPERMT2PD Cette instruction permet de permuter les valeurs 64 bits de réel de double précision dans le premier opérande et le troisième opérande (le second opérande source) en utilisant un indice dans le second opérande (le premier opérande source) vers les éléments sélectionné du premier et troisième opérande.
VPMADD52LUQ Cette instruction permet de multiplier un paquet d'entiers 52 bits de chaque élément quadruple mot du premier opérande source (le seconde opérande) avec le paquet de nombre naturel 52 bits dans les éléments correspondant du second opérande source (le troisième opérande) vers le paquet de 104 bits intermédiaire.
VPMADD52HUQ Cette instruction permet de multiplier un paquet de nombre naturel 52 bits de chaque élément quadruple mot du premier opérande source (le seconde opérande) avec le paquet d'entiers 52 bits dans les éléments correspondant du second opérande source (le troisième opérande) vers le paquet de 104 bits intermédiaire.
VPMULTISHIFTQB Cette instruction permet de sélectionner 8 octets non-alignés de chaque entrée d'élément quadruple mot du second opérande source (le troisième opérande) et écrit 8 octets assemblés pour chaque élément quadruple mot dans l'opérande de destination (le premier opérande).
VPOPCNTD Cette instruction permet de compter le nombre de bits réglés sur chacun des éléments double mot de sa source et place les résultats dans le registre de destination.
VPOPCNTQ Cette instruction permet de compter le nombre de bits réglés sur chacun des éléments quadruple mot de sa source et place les résultats dans le registre de destination.


Dernière mise à jour : Vendredi, le 10 mars 2017