Salta al contingut

AVX-512

Referència d'arquitecturaFeex

AVX-512 és una família d'extensions vectorials x86 amb registres opmask i suport per a operacions de 512 bits. La seva base i els subconjunts individuals s'han de comprovar per separat; una sola etiqueta AVX-512 no és una especificació de compatibilitat completa.

El que cal saber

AVX-512 és una família d'extensions vectorials x86 amb registres opmask i suport per a operacions de 512 bits. La seva base i els subconjunts individuals s'han de comprovar per separat; una sola etiqueta AVX-512 no és una especificació de compatibilitat completa.

Com funciona

L'arquitectura afegeix l'estat vectorial ZMM i registres de màscara d'operació k. Les operacions emmascarades poden seleccionar carrils individuals, amb un comportament de fusió o de posada a zero que depèn de la instrucció. AVX512F és la base; AVX512BW, DQ, CD i VL cobreixen capacitats addicionals diferents. AVX512VL permet operacions rellevants en vectors més estrets, de manera que el codi AVX-512 no necessàriament processa 512 bits a cada instrucció.

On és útil

Un bucle numèric emmascarat pot gestionar el seu vector parcial final sense una cua escalar separada quan les instruccions seleccionades admeten la semàntica d'emmascarament necessària. Una aplicació que utilitzi operacions de bytes, detecció de conflictes o un format aritmètic concret ha de sol·licitar exactament aquests subconjunts. AVX-512 VNNI i AVX-VNNI utilitzen codificacions i una enumeració diferents.

Com comprovar el suport i l'habilitació

Després de les comprovacions d'AVX, verifiqueu els bits de característiques específics de la fulla 7 de CPUID requerits pel programa. Per a l'estat AVX-512, XCR0 ha d'habilitar l'estat XMM, YMM, opmask, ZMM superior i ZMM alt: bits 1, 2, 5, 6 i 7. La màscara utilitzada habitualment és E6H. Comproveu OSXSAVE abans de XGETBV i utilitzeu un distribuïdor que comprovi cada subconjunt necessari.

El programa tant ha de contenir una implementació adequada com seleccionar-la en temps d'execució. L'enumeració de maquinari, l'estat dels registres habilitat pel SO i la línia de base compilada del binari són comprovacions separades. Una màquina virtual pot exposar deliberadament menys característiques que el seu amfitrió, i un contenidor no afegeix instruccions a la CPU amfitriona.

El que la característica no estableix

No deduïu tots els subconjunts d'AVX-512 a partir d'AVX512F, del nom d'una generació de CPU o de x86-64-v4. La freqüència, el consum d'energia i el rendiment d'execució varien segons la implementació i la càrrega de treball. Una etiqueta de base de dades per si sola no pot establir si el microprogramari, la política de nuclis híbrids o un hipervisor exposen una característica utilitzable per al procés actual.

Compatibilitat i rendiment a la pràctica

Meseu la càrrega de treball completa amb dades representatives. Uns vectors més amples poden reduir el nombre d'instruccions alhora que deixen sense canvis el trànsit de memòria, la sincronització o els costos de conversió. La latència de les instruccions, el rendiment i el comportament energètic depenen de la microarquitectura exacta i de les condicions d'operació.

Una llista de verificació pràctica

  1. Enregistreu el model exacte de processador o de plataforma i les versions d'aplicació, SO i entorn d'execució implicades. Conserveu la redacció de l'error o del requisit real.
  2. Comproveu la referència del fabricant per a aquest model exacte, i després inspeccioneu la capacitat efectiva i l'estat habilitat en l'entorn on s'executa el programa.
  3. Compareu cada requisit del binari o dorsal seleccionat. Una característica amb un nom similar, un àlies o una etiqueta de tecnologia àmplia no és suficient.
  4. Confirmeu que l'aplicació ha seleccionat la implementació prevista. Utilitzeu els seus diagnòstics documentats i una alternativa compatible quan no es compleixin els requisits.
  5. Feu un únic canvi admès a la vegada i repetiu la mateixa càrrega de treball. Manteniu disponibles la configuració original i la via de recuperació.

Si la característica apareix a la llista però el programari no la pot utilitzar

Comenceu pel component exacte que falla. Una base de dades de maquinari descriu la capacitat registrada; el sistema operatiu o l'hipervisor poden exposar un entorn efectiu diferent. Un error d'instrucció il·legal també requereix investigar la instrucció defectuosa real i la compilació del binari, perquè una corrupció o una instrucció no admesa no relacionada poden produir un símptoma similar.

Instal·leu la versió d'aplicació, controlador o entorn d'execució admesa per a la plataforma exacta, i utilitzeu la compilació base o alternativa documentada pel fabricant si cal. Una actualització de programari no pot crear una instrucció que li manqui al processador. Els canvis de microprogramari i de polítiques de seguretat han de seguir el procediment del fabricant del sistema i un pla de recuperació en lloc d'una recepta genèrica d'optimització.

Fonts i abast d'aquesta explicació

Intel 64 and IA-32 Architectures Software Developer's Manual · Linux kernel: using XSTATE features in user space · x86-64 psABI: nivells d'arquitectura i microarquitectura del processador

Aquestes referències estableixen el comportament arquitectònic i els requisits de programari. No verifiquen de manera independent cada valor de característica en una pàgina de model de maquinari enllaçada. Per al suport de models, utilitzeu l'evidència del fabricant d'aquesta pàgina i comproveu la configuració efectiva del sistema. Aquest article no proporciona cap data de prova de referència, certificació o revisió independent.

Fonts i verificació

Propietat editorial: Feex. No s'ha registrat cap data de revisió independent. Com investiguem.

Ha estat útil aquest article?

Un sí o un no és suficient. Trieu un motiu si voleu, o afegiu una breu nota.

Ha estat útil aquest article?