Interested Article - Умножение-сложение

В вычислительной технике, особенно в цифровой обработке сигналов совмещённое умножение-сложение (multiply-accumulate) — распространённая операция, при которой умножаются два числа и складываются с аккумулятором .

Когда операция выполняется над числами с плавающей запятой , то может выполняться двойное округление (типично для DSP ) или однократное (сложение происходит с более точным внутренним представлением произведения). Версия с однократным округлением также называется fused multiply-add (FMA) или fused multiply-accumulate (FMAC).

Назначение

Данная инструкция позволяет более эффективно реализовать операции деления и извлечения квадратного корня (при отсутствии аппаратной реализации), умножение векторов и матриц , вычисление полиномов по схеме Горнера .

Реализация в процессорах

Операция включена в стандарт IEEE 754-2008 . В стандарт 1999 года на язык программирования Си включена поддержка операции FMA (функция fma() из math.h ).

Современные компьютеры могут иметь специализированный блок умножения-сложения или MAC (multiply-accumulate), состоящий из умножителя, реализующего комбинационную логику , и сумматора , а также аккумулятора , в котором сохраняется результат. Выход аккумулятора подаётся на один из входов сумматора, и таким образом каждый такт результат из умножителя складывается с аккумулятором. Реализация MAC требует дополнительной логики на кристалле, но вычисления происходят быстрее, чем при использовании метода сдвигов и сложений , типичного для первых компьютеров. FMA также работает с более высокой точностью

Появившись на сигнальных процессорах, операция (FMA) включена в системы команд процессоров: IBM ( , 1990), Fujitsu SPARC64 (1995), HP (1996), Sony Emotion Engine (1999), Intel Itanium (2001), IBM Cell (2005), Ambric (2006).

Также операция FMA реализована в процессорах AMD с поддержкой FMA4 ( Bulldozer ) и FMA3 ( Trinity ) . Intel реализовала FMA3 в процессорах на ядре Haswell .

Технология присутствует в NVIDIA GPU серий GeForce 200 (GTX 200), и NVIDIA Tesla GPGPU C1060 & C2050 / C2070. AMD добавила FMA в линию Radeon с серии .

Инструкции FMA, реализованные в процессорах Intel Haswell :

  • VFMADD
  • VFMSUB
  • VFNMADD
  • VFNMSUB
  • VFMADDSUB
  • VFMSUBADD

Примечания

  1. «perform the multiply-add operation in one step thus avoiding the intermediate stage rounding done by earlier processors. … The FMA4 instructions can speed up and improve the accuracy of many computations»
  2. . Дата обращения: 2 мая 2012. 5 мая 2012 года.
  3. от 17 февраля 2012 на Wayback Machine — Intel анонсировал 22nm восьмиядерный 'Haswell', The Register
  4. от 7 октября 2009 на Wayback Machine Nvidia Fermi Whitepaper
  5. от 16 апреля 2010 на Wayback Machine — Архитектура ATI Radeon HD 5870 , Bit-Tech.net
Источник —

Same as Умножение-сложение