Passa ô cuntinutu

AVX2

Rifirimentu d'archititturaFeex

AVX2 estenni l'elabborazzioni vitturiali x86 cu upirazzioni a nteri a 256 bit e àutri istrbuzzioni pi spustari dati. Na CPU cumpatìbbili, lu statu AVX abbilitatu e software chi silizziuna pi daveru un percorsu di còdici AVX2 sunnu tutti nicissari.

Chiḍḍu ca t'hà sapiri

AVX2 estenni l'elabborazzioni vitturiali x86 cu upirazzioni a nteri a 256 bit e àutri istrbuzzioni pi spustari dati. Na CPU cumpatìbbili, lu statu AVX abbilitatu e software chi silizziuna pi daveru un percorsu di còdici AVX2 sunnu tutti nicissari.

Comu funziona

AVX2 porta assai upirazzioni a nteri 'mpaccati a li riggistri YMM a 256 bit e junci capacitati comu gathers di nteri, spustamenti variàbbili e pimmutazzioni cchiù ampi. Un vitturi di nteri a 256 bit pò cuntèniri 32 byte, 16 word, 8 doubleword o 4 quadword; l'istrubbzioni stabbilisci la ntirpritazzioni dî corsii. Arcuni upirazzioni agìscinu 'n modu nnipinnenti dintra li mitati a 128 bit, pirciò un riggistru làricu non signìfica spustamentu senza lìmiti ntra ogni corsia.

Unni e' ùtili

Na libbrirìa d'elabborazzioni d'mmàggini pò gistiri 32 cumpunenti a byte nta un vitturi mentri un kernel di database cunfronta 8 nteri a 32 bit. Chistu ammustra la capacitati dî dati, non un guadagnu di vilucitati garantitu. Li gathers dipèndinu sempri dâ lucalitati dâ mimoria, e un ciclu pò arristari limitatu di cache miss, ramificazzioni o cunvirsioni dî dati cchiutostu ca dâ larghizza arittmètica.

Comu cuntrollari lu supportu e l'abbilitazzioni

Prima fa li cuntrolli hardware AVX e chiddi di OSXSAVE/XCR0. Poi virìfica ca CPUID supporta leaf 7 e cuntrolla CPUID.07H.00H:EBX bit 5. Fai li provi dintra l'ambienti di distribbuzzioni di guest o container riali e usa l'interfaccia di diàgnusi suppurtata di l'applicazzioni unni dispunìbbili.

Lu prugramma havi sia a cuntèniri na mplimintazzioni apprupriata sia a silizziunàrila a runtime. La nummarazzioni di l'hardware, lu statu dî riggistri abbilitatu dû SO e la basi cumpilata dû binariu sunnu cuntrolli siparati. Na màchina virtùali po ammustrari apposta menu funziunalitati dû sò host, e un container nun agghiunci struzzioni a la CPU host.

Zoccu la funziunalitati nun stabbilisci

AVX2 non ncludi FMA comu cunsiquenza architittònica automàtica. Mancu stabbilisci di sulu l'eligibbilitati pi AVX-512, hardware d'accilirazzioni AI o x86-64-v3. Na build cumpilata 'n modu glubbali pi AVX2 pò falliri prima ca curri un dispatcher di fallback si lu còdici d'inizzializzazzioni cunteni già istrbuzzioni non suppurtati.

Cumpatibbilitati e pristazzioni nnâ pràtica

Misuredda lu caricu di travagghiu cumpletu cu dati rapprisintativi. Vettura cchiù larghi ponnu arridùciri lu nùmmaru di struzzioni lassannu lu tràfficu di mimoria, la sincrunizzazzioni o i costi di cunvirsioni nun canciati. La latenza dî struzzioni, lu throughput e lu cumpurtamentu d'energìa dipènninu dâ microarchitittura esatta e dî cunnizzioni upirativi.

Na lista di virìfica pràtica

  1. Riggistra lu mudellu esattu dû prucissuri o dâ piattafurma e li virsioni di l'applicazzioni, dû SO e dû runtime cuinvorti. Manteni la formulazzioni di l'erruri o dû requisitu riali.
  2. Cuntrolla lu rifirimentu dû prudutturi pi ddu mudellu esattu, poi spizziona la capacitati effittiva e lu statu abbilitatu nta l'ambienti unni lu prugramma gira.
  3. Cunfrunta ogni requisitu dû binariu o dû backend silizziunatu. Na funziunalitati cû nomu sìmili, un pseudònimu o n'etichetta ticnulòggica ginèrica nun abbàstanu.
  4. Cunferma ca l'applicazzioni hà silizziunatu la mplimintazzioni privista. Usa la sò diagnòstica ducumintata e un fallback suppurtatu quannu li requisiti nun sunnu suddisfatti.
  5. Fai un canciamentu suppurtatu a la vota e ripeti lu stissu caricu di travagghiu. Manteni dispunìbbili la cunfigurazzioni urigginali e lu pircorsu di ricùp ситуаazzioni.

Si la funziunalitati e' ndicata ma lu software nun la po usari

Accumenza cû cumpunenti esattu ca fallisci. Un database d'hardware discrivi la capacitati riggistrata; lu sistema upirativu o l'hypervisor ponnu ammustrari n'ambienti effittivu diffirenti. N'erruri di struzzioni illigali addanna puru n'indàggini supra la struzzioni ca fallisci pi daveru e supra la build binaria, picchì la curruzzioni o na struzzioni nun currilata e nun suppurtata ponnu fari un sìntumu sìmili.

Installa la virsioni di l'applicazzioni, dû driver o dû runtime suppurtata pâ piattafurma esatta, e usa la build di basi o di fallback ducumintata dû prudutturi si n'hai bisognu. N'aggiurnamentu dû software nun po criari na struzzioni ca manca nnô prucissuri. Li canciamenti di firmware e di pulìtica di sicurizza avìssiru a sèquiri la prucidura dû prudutturi dû sistema e un pianu di ricùpiru mmeci d'un ricittariu d'uttimizzazzioni ginèricu.

Funti e scanciu di st'esplicazzioni

Intel 64 and IA-32 Architectures Software Developer's Manual · Linux kernel: using XSTATE features in user space · psABI x86-64: liveddi d'architittura e micrarchitittura dû prucissuri

Sti rifirimenti stabbilìscinu lu cumpurtamentu architittùnicu e li requisiti dû software. Nun virìficanu di manera ndipinnenti ogni valuri di funziunalitati nta na pàggina d'un mudellu hardware culligatu. Pû supportu dû mudellu, usa li provi dû prudutturi di dda pàggina e cuntrolla la cunfigurazzioni effittiva dû sistema. St'artìculu nun duna un benchmark, na cirtificazzioni o na data di rivisioni ndipinnenti.

Funti e virìfica

Titularità editoriali: Feex. Nudda data di rivisioni nnipinnenti è riggistrata. Comu facemu i ricerchi.

Fu ùtili st'artìculu?

Un sì o un no abbasta. Scegghi un mutivu si voi, o junci na nota curta.

Fu ùtili st'artìculu?