Násobení-sčítání

Ve výpočetní technice, zejména v digitálním zpracování signálu, je multiply -accumulate běžnou operací, ve které se dvě čísla násobí a sčítají pomocí akumulátoru .

Když se operace provádí na číslech s plovoucí desetinnou čárkou , může být zaokrouhlena dvakrát (typické pro DSP ) nebo jednou zaokrouhlena (sčítání nastává s přesnějším vnitřním znázorněním součinu). Zaoblená verze se také nazývá fused multiply-add (FMA) nebo fused multiply-accumulate (FMAC).

Schůzka

Tato instrukce vám umožní efektivněji implementovat operace dělení a extrakce druhé odmocniny (při absenci hardwarové implementace), násobení vektorů a matic , výpočet polynomů podle Hornerova schématu .

Implementace v procesorech

Operace je zahrnuta ve standardu IEEE 754-2008 . Standard pro programovací jazyk C z roku 1999 zahrnuje podporu pro operaci FMA (funkce fma() z math.h ).

Moderní počítače mohou mít specializované násobení-sčítací jednotka nebo MAC (multiply-accumulate), sestávající z násobiče, který implementuje kombinační logiku , a sčítačky , stejně jako akumulátoru , ve kterém je uložen výsledek. Výstup z akumulátoru je přiveden na jeden ze vstupů sčítačky, a tak je v každém cyklu výsledek z násobiče přičten k akumulátoru. Implementace MAC vyžaduje další logiku na čipu, ale výpočty jsou rychlejší než použití metody shift-and-add , typické pro starší počítače. FMA také pracuje s vyšší přesností [1]

Operace (FMA) se objevuje na signálových procesorech a je zahrnuta v instrukčních systémech procesorů: IBM POWER1 ( anglicky , 1990), Fujitsu SPARC64 (1995), HP PA-8000 (1996), Sony Emotion Engine (1999), Intel Itanium (2001), IBM Cell (2005), Ambric (2006).

Také operace FMA je implementována v procesorech AMD s podporou FMA4 ( Bulldozer ) a FMA3 ( Trinity ) [2] . Intel implementoval FMA3 do procesorů založených na jádře Haswell . [3]

Tato technologie je přítomna v GPU řady NVIDIA GeForce 200 (GTX 200), GeForce 300 a NVIDIA Tesla GPGPU C1060 & C2050 / C2070 . [4] AMD přidalo FMA do řady Radeon s řadou HD 5000 . [5]

Instrukce FMA implementované v procesorech Intel Sandy Bridge :

Poznámky

  1. http://www.pgroup.com/lit/articles/insider/v3n3a4.htm "proveďte operaci multiply-add v jednom kroku, čímž se vyhnete zaokrouhlování mezistupně prováděného dřívějšími procesory. ... Instrukce FMA4 mohou urychlit a zlepšit přesnost mnoha výpočtů“
  2. Podrobnosti o AMD Trinity a Piledriver před uvedením na trh . Získáno 2. května 2012. Archivováno z originálu dne 5. května 2012.
  3. http://www.reghardware.co.uk/2008/08/19/idf_intel_architecture_roadmap/ Archivováno 17. února 2012 na Wayback Machine – Intel oznámil 22nm osmijádrový „Haswell“, The Register
  4. http://www.nvidia.com/content/PDF/fermi_white_papers/NVIDIAFermiComputeArchitectureWhitepaper.pdf Archivováno 7. října 2009 na Wayback Machine Nvidia Fermi Whitepaper
  5. http://www.bit-tech.net/hardware/graphics/2009/09/30/ati-radeon-hd-5870-architecture-analysis/8 Archivováno 16. dubna 2010 na Wayback Machine - ATI Radeon HD Architecture 5870, Bit-Tech.net