FMA and FMA3
Chiamato pure FMA, FMA3
FMA càrcula 'na multiplicazzione e 'n'addizzione a floating-point cu 'n'ùneco arrotondamento finale. FMA3 se riferisce â famiglia 'e 'nstruzzioni x86 fused multiply-add a tre operande; vene elencata a parte 'a AVX2.
Chello ca t'hê 'a sapé
FMA càrcula 'na multiplicazzione e 'n'addizzione a floating-point cu 'n'ùneco arrotondamento finale. FMA3 se riferisce â famiglia 'e 'nstruzzioni x86 fused multiply-add a tre operande; vene elencata a parte 'a AVX2.
Comme fonsiona
'N'operazzione fused evaluta 'nu prudotto e 'na somma comme 'n'ùneca operazzione aritmeteca primma 'e arrotondà 'o furmato 'e destinazzione. Chiesto po sarvà 'nu cuntribbuto ca s'avarria perzo si 'a multiplicazzione venesse arrotondata primma. 'E forme 'e 'nstruzzione 132, 213 e 231 scègliono quala operande furnisce 'o prudotto, ll'addendo e 'a destinazzione sovrascritta. 'E forme scalari e packed tènono cumpurtamente 'e corsìa differente.
Addò serve
Valutazzione 'e pulinomie, multiplicazzione 'e matrice e filtre deggetale ponno ausà FMA pe combinà 'e ll'operazzioni aritmetiche. 'O risurtato fused po cagnà da 'nu prugramma ca àusa pe decìsione ddoje operazzioni separate. 'E 'mpustazziune 'e cuntrazzione d''o compilatore e 'e requiseite 'e ripruducibbilità nummìreca 'mpòrtano pecciò 'mzieme â dispunibbilità d''a 'nstruzzione.
Comme se cuntrolla 'o supporto e ll'abbilitazzione
P''e 'nstruzzioni VEX FMA3, cuntrolla CPUID.01H:ECX bit 12 'nzieme ê cuntrolle cumprete d''o stato OS p'AVX. Si se àusano forme EVEX, cuntrolla 'e sotto-gruppe AVX-512 e 'o stato addizzionale addumannate da chelle forme. Cuntrolla 'e flag d''o compilatore quanno 'e risurtate nummìrece càgnano aropp'â 'na ricompilazzione.
'O prugramma adda cuntené n'implementazzione adatta e adda sciglierla a runtime. Ll'enumerazzione hardware, 'o stato d' 'e riggistre abbilitato d' 'o sistema operativo e 'a baseline compilata d' 'o binario songo cuntrolle separati. Na macchina virtuale po espònere a posta cchiù poche funzionalita d' 'host suo, e nu container nun agnongne struzzione a 'a CPU host.
Chello ca 'a funzionalita nun stabbilisce
FMA nun vo dicere ca ogne spressione floating-point vene valutata cu precisione 'e cchiù, e nun garantisce risurtate identece cu divierze 'mpustazziune d''o compilatore. FMA4 è 'n'ata famiglia 'e 'nstruzzione. Manc'AVX o AVX2 'a suli pròvano 'o supporto pe FMA3.
Cumpatibbilita e prestazziune dint' 'a prateca
Misa 'o carico 'e fatica sano cu date rapresentative. Vetturi cchiù larghi ponno calà 'o nummero 'e struzzione ma lassa 'o traffico 'e memoria, 'a sincronizzazzione o 'e coste 'e cunversione tale e quale. Latenza d' 'e struzzione, throughput e cunsumo 'e currente dipènnene d' 'a microarchitettura esatta e d' 'e ccundizziune d'uso.
Na lista 'e verifeca prateca
- Riggistra 'o mudello esatto d' 'o prucessore o d' 'a piattaforma e 'e vversione 'e ll'applicazzione, d' 'o sistema operativo e d' 'o runtime cumbulute. Mantien' 'e pparole esatte 'e ll'errore o d' 'o requisito overo.
- Cuntrolla 'o riferimento d' 'o costruttore pe chillu mudello esatto, po verifeca 'a capacita effettiva e 'o stato abbilitato dint'a ll'ambiente addò gira 'o prugramma.
- Cunfrunta ogne requisito d' 'o binario o backend sciveto. Na funzionalita cu nu nomme sumigliante, n'alias o n'etichetta tecnologgeca generale nun abbasta.
- Cunferma ca ll'applicazzione ha sciveto ll'implementazzione vuluta. Ausa 'a diagnosteca documentata soja e n'alternativa supportata quanno 'e requisite nun songo rispettate.
- Fa nu sulo cagnamento supportato a ll'avota e ripete 'o stesso carico 'e fatica. Mantien' 'a cunfigurazzione origginale e 'a via 'e recuppero a portata 'e mana.
Si 'a funzionalita sta scritta ma 'o software nun 'a po ausà
Pparti d' 'o cumponente esatto ca falla. Nu database hardware descrive 'a capacita riggistrata; 'o sistema operativo o ll'hypervisor po mustrà n'ambiente effettivo diverzo. N'errore 'e struzzione illegale addimanna pure 'e verificà 'a struzzione ca sgarra overamente e 'a build d' 'o binario, pecché na corruzzione o n'ata struzzione nun supportata po dà nu sintomo simile.
Stalla 'a vversione 'e ll'applicazzione, d' 'o driver o d' 'o runtime supportata p' 'a piattaforma esatta, e ausa 'a baseline documentata d' 'o costruttore o na build 'e fallback si serve. N'aggiurnamento software nun po crià na struzzione ca 'o prucessore nun tene. 'E cagnamiente a 'o firmware e 'e puliteche 'e sicurezza hann' 'a siguità 'a prucedura d' 'o costruttore d' 'o sistema e nu pピアノ 'e recuppero mméce 'e na ricetta generale 'e uttimizzazzione.
Funte e ambito 'e sta spiegazzione
Intel 64 and IA-32 Architectures Software Developer's Manual · Linux kernel: using XSTATE features in user space
Sti riferimente stabbilisceno 'o cumpurtamento 'e ll'architettura e 'e requisite d' 'o software. Nun verificano 'e manera 'ndipennente ogne valore 'e funzionalita ngopp'a na paggena 'e nu mudello hardware culegato. P' 'o supporto d' 'o mudello, ausa ll'evidenze d' 'o costruttore 'e chella paggena e verifeca 'a cunfigurazzione effettiva d' 'o sistema. St'articulo nun furnesce benchmark, certificazzione o data 'e revisone 'ndipennente.
Funte e verìfeca
Prupietà editoriale: Feex. Nisciuna data 'e revisizzione 'ndipennente è riggistrata. Comme facimmo 'e recerche.
- Intel 64 and IA-32 Architectures Software Developer's Manual · 'E Vulume 1 e 2 descrivono 'e ffamiglie 'e struzzione cu nomme e 'o CPUID; 'o Vulume 3 descrive 'o stato, 'a pagginazzione, VMX e 'e cuntrolle 'e prutezzione. 'A documentazzione 'e ll'architettura nun stabbilisce 'o supporto pe nu mudello particulare.
- Linux kernel: using XSTATE features in user space · Stato vetturiale abbilitato d' 'o sistema operativo, stato tile abbilitato dinamicamente, requisite 'e signal-stack e flusso 'e perzmesso AMX. 'O cumpurtamento specifeche pe Linux nun e na prumessa pe n'ato sistema operativo.
È servuto chist'articulo?
Basta nu sì o nu no. Si vuó, sciglie na mutivazzione o miett' na nota corta.
Grazie. Chisto nce dà 'na mano a fa mèglio 'sta paggena.