1. [Viqui](https://feex.it/wiki/)
2. [Maquinari](https://feex.it/wiki/hardware/)
3. [Sistemes i arquitectura](https://feex.it/wiki/hardware/system/)
4. AVX

# AVX

Referència d'arquitectura: Feex

AVX, Advanced Vector Extensions, afegeix un model de programació vectorial amb registres YMM i instruccions codificades en VEX, incloent-hi operacions de coma flotant de 256 bits. Es requereixen tant el suport del processador com la gestió d'estat del sistema operatiu.

## El que cal saber

AVX, Advanced Vector Extensions, afegeix un model de programació vectorial amb registres YMM i instruccions codificades en VEX, incloent-hi operacions de coma flotant de 256 bits. Es requereixen tant el suport del processador com la gestió d'estat del sistema operatiu.

## Com funciona

AVX estén els registres vectorials a 256 bits, amb els 128 bits inferiors de cada registre YMM encavalcant-se amb el seu registre XMM corresponent. Moltes instruccions utilitzen una forma de tres operands, permetent que la destinació difereixi de les entrades. Un vector de 256 bits pot contenir 8 valors de coma flotant de precisió simple o 4 de precisió doble, però les instruccions difereixen en els tipus d'operand i en el comportament.

## On és útil

Un bucle numèric pot sumar diversos valors independents de coma flotant amb una sola instrucció vectorial. El compilador o la biblioteca han de generar aquest codi i disposar les càrregues, l'alineació, els finals de bucle i les dependències correctament. AVX no paral·lelitza automàticament un programa arbitrari entre nuclis, i les operacions amb enters a 256 bits requereixen comprovar l'extensió pertinent en lloc de suposar AVX2.

## Com comprovar el suport i l'habilitació

Comproveu CPUID.01H:ECX AVX bit 28, XSAVE bit 26 i OSXSAVE bit 27. Només després de confirmar OSXSAVE el programari pot utilitzar XGETBV amb ECX=0 i verificar que els bits 1 i 2 de XCR0 habiliten l'estat XMM i YMM. Utilitzeu un despatxador en temps d'execució mantingut en lloc d'executar AVX com un experiment de detecció.

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

El suport d'AVX per si sol no implica AVX2, FMA, F16C, AVX-VNNI o AVX-512. L'amplada del vector no indica quants cicles triga una instrucció. Una màquina virtual pot exposar un conjunt d'instruccions més petit que l'amfitrió físic.

## 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ó.

## Característiques relacionades i distincions útils

[AVX2](https://feex.it/wiki/l/ca/hardware/system/avx2/) · [AVX-512](https://feex.it/wiki/l/ca/hardware/system/avx-512/) · [FMA and FMA3](https://feex.it/wiki/l/ca/hardware/system/fma/) · [XSAVE](https://feex.it/wiki/l/ca/hardware/system/xsave/)

## Fonts i abast d'aquesta explicació

[Intel 64 and IA-32 Architectures Software Developer's Manual](https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html) · [Linux kernel: using XSTATE features in user space](https://docs.kernel.org/arch/x86/xstate.html)

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.

## Relacionat

Aquestes entitats enllacen amb aquest article. El tipus es mostra a cada enllaç.

[AVX2: Referència d'arquitectura](https://feex.it/wiki/l/ca/hardware/system/avx2/)[AVX-512: Referència d'arquitectura](https://feex.it/wiki/l/ca/hardware/system/avx-512/)[FMA and FMA3: Referència d'arquitectura](https://feex.it/wiki/l/ca/hardware/system/fma/)[XSAVE: Referència d'arquitectura](https://feex.it/wiki/l/ca/hardware/system/xsave/)

## Fonts i verificació

Propietat editorial: Feex. No s'ha registrat cap data de revisió independent. [Com investiguem](https://feex.it/wiki/research/).

- [Intel 64 and IA-32 Architectures Software Developer's Manual ](https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html)· Els volums 1 i 2 descriuen les famílies d'instruccions anomenades i CPUID; el volum 3 descriu l'estat, la paginació, VMX i els controls de protecció. La documentació d'arquitectura no estableix el suport per a un model en particular.
- [Linux kernel: using XSTATE features in user space ](https://docs.kernel.org/arch/x86/xstate.html)· Estat vectorial habilitat pel SO, estat de tessel·les habilitat dinàmicament, requisits de pila de senyals i flux de permisos AMX. El comportament específic de Linux no és una promesa sobre un altre SO.

## Ha estat útil aquest article?

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

Dades ràpides

La breu identitat d'aquesta pàgina. Les especificacions, les fonts i la història completa romanen a l'article.

---

Source: [Canonical Feex Wiki page](https://feex.it/wiki/l/ca/hardware/system/avx/)

[Developer guide](https://feex.it/wiki/developers/) | [API policy](https://feex.it/developers/api-policy/) | [Agent guidance](https://feex.it/wiki/llms.txt)
