Passa ô cuntinutu

FMA and FMA3

Rifirimentu d'archititturaFeex

Chiamatu puru FMA, FMA3

FMA cunta na murtipricazzioni e n'addizzioni a virgula mòbbili cu n'ùnicu arritunnamentu finali. FMA3 si rifirisci â famigghia d'astruzzioni fused multiply-add a tri upiranni x86; è annumirata siparatamenti d'AVX2.

Chiḍḍu ca t'hà sapiri

FMA cunta na murtipricazzioni e n'addizzioni a virgula mòbbili cu n'ùnicu arritunnamentu finali. FMA3 si rifirisci â famigghia d'astruzzioni fused multiply-add a tri upiranni x86; è annumirata siparatamenti d'AVX2.

Comu funziona

N'upirazzioni fused vàluta nu prudottu e na summa comu n'ùnica upirazzioni aritmètica prima d'arritunnari ô furmatu di distinazzioni. Chistu pò sarvari nu cuntributu ca si pirdissi si la murtipricazzioni fussi arritunnata prima. Li formi d'astruzzioni 132, 213 e 231 scègghinu quali upiranni furnìscinu lu prudottu, l'addennu e la distinazzioni suvrascritta. Li formi scalari e packed hannu cumpurtamenti di corsia diffirenti.

Unni e' ùtili

Valutazzioni di pulinomi, murtipricazzioni di matrici e filtri diggitali ponnu usari FMA pi jùnciri upirazzioni aritmètichi. Lu risurtatu fused pò èssiri diffirenti d'un prugramma ca usa a posta dui upirazzioni siparati. Li mpustazzioni di cuntrazzioni dû cumpilaturi e li requisiti di ripruducibbilitati nummèrica còntanu pirciò assai, nzèmmula â dispunibbilitati di l'astruzzioni.

Comu cuntrollari lu supportu e l'abbilitazzioni

Pî formi d'astruzzioni VEX FMA3, cuntrolla CPUID.01H:ECX bit 12 nzèmmula a tutti li cuntrolli dû statu OS pi AVX. Si s'ùsanu formi EVEX, cuntrolla l'àutri suttanzemi AVX-512 e lu statu addumannatu di sti formi. Spizziona li flag dû cumpilaturi quannu li risurtati nummèrici càncianu doppu na ricumpilazzioni.

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

FMA nun signìfica ca ogni sprissioni a virgula mòbbili veni valutata cu pricisioni cchiù àuta, e nun garantisci risurtati idèntici tra mpustazzioni diffirenti dû cumpilaturi. FMA4 è na famigghia d'astruzzioni diffirenti. Nè AVX nè AVX2 sulu pruvàvanu lu supportu pi FMA3.

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

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.

  • Intel 64 and IA-32 Architectures Software Developer's Manual · Li Vulumi 1 e 2 discrìvinu li famigghi di struzzioni muntuati e CPUID; lu Vulumi 3 discrivi statu, pagginazzioni, VMX e cuntrolli di prutizzioni. La ducumintazzioni d'architittura nun stabbilisci lu supportu pi un mudellu particulari.
  • Linux kernel: using XSTATE features in user space · Statu vitturiali abbilitatu dû SO, statu dî tile abbilitatu dinamicamenti, requisiti dû signal stack e flussu di pirmissu AMX. Lu cumpurtamentu spicìficu di Linux nun e' na prumissa supra n'àutru SO.

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?