Multiplikation-Addition

Inden for databehandling, især i digital signalbehandling, er multiplicering -akkumuler en almindelig operation, hvor to tal multipliceres og adderes med en akkumulator .

Når en operation udføres på flydende decimaltal , kan den afrundes to gange (typisk for DSP ) eller afrundes én gang (tilføjelse sker med en mere nøjagtig intern repræsentation af produktet). Den afrundede version kaldes også fused multiply-add (FMA) eller fusioned multiply-accumulate (FMAC).

Udnævnelse

Denne instruktion giver dig mulighed for mere effektivt at implementere operationerne med division og kvadratrodsudvinding (i mangel af hardwareimplementering), multiplikation af vektorer og matricer , beregning af polynomier i henhold til Horners skema .

Implementering i processorer

Handlingen er inkluderet i IEEE 754-2008 standarden . 1999-standarden for C -programmeringssproget inkluderer understøttelse af FMA-operationen (fma()-funktionen fra math.h ).

Moderne computere kan have en specialiseret multiplikations-add-enhed eller MAC (multiply-accumulate), bestående af en multiplikator, der implementerer kombinationslogik , og en adder , samt en akkumulator , hvori resultatet er gemt. Akkumulatorens output føres til en af ​​adderens indgange, og således lægges resultatet fra multiplikatoren for hver cyklus til akkumulatoren. MAC-implementeringen kræver yderligere on-chip-logik, men beregningerne er hurtigere end at bruge shift-and-add- metoden , typisk for tidlige computere. FMA fungerer også med højere nøjagtighed [1]

Optræder på signalprocessorer, operationen (FMA) er inkluderet i instruktionssystemerne for processorer: IBM POWER1 ( engelsk , 1990), Fujitsu SPARC64 (1995), HP PA-8000 (1996), Sony Emotion Engine (1999), Intel Itanium (2001), IBM Cell (2005), Ambric (2006).

FMA - operationen er også implementeret i AMD -processorer med understøttelse af FMA4 ( Bulldozer ) og FMA3 ( Trinity ) [2] . Intel har implementeret FMA3 i processorer baseret på Haswell -kernen . [3]

Teknologien er til stede i NVIDIA GeForce 200 (GTX 200), GeForce 300 og NVIDIA Tesla GPGPU C1060 & C2050/C2070 serie GPU'er . [4] AMD tilføjede FMA til Radeon -linjen med HD 5000 -serien . [5]

FMA-instruktioner implementeret i Intel Sandy Bridge-processorer :

Noter

  1. http://www.pgroup.com/lit/articles/insider/v3n3a4.htm "udfør multiplikations-tilføj-operationen i ét trin, så du undgår den mellemliggende afrunding udført af tidligere processorer. ... FMA4-instruktionerne kan fremskynde og forbedre nøjagtigheden af ​​mange beregninger"
  2. Detaljer om AMD Trinity og Piledriver forud for lanceringen . Hentet 2. maj 2012. Arkiveret fra originalen 5. maj 2012.
  3. http://www.reghardware.co.uk/2008/08/19/idf_intel_architecture_roadmap/ Arkiveret 17. februar 2012 på Wayback Machine - Intel annoncerede 22nm octa-core 'Haswell', The Register
  4. http://www.nvidia.com/content/PDF/fermi_white_papers/NVIDIAFermiComputeArchitectureWhitepaper.pdf Arkiveret 7. oktober 2009 på Wayback Machine Nvidia Fermi Whitepaper
  5. http://www.bit-tech.net/hardware/graphics/2009/09/30/ati-radeon-hd-5870-architecture-analysis/8 Arkiveret 16. april 2010 på Wayback Machine - ATI Radeon HD Architecture 5870, Bit-Tech.net