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

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

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

\ a \leftarrow a + ( b \times c )

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

Назначение

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

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

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

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

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

Также она реализована в процессорах AMD с поддержкой FMA4 (Bulldozer) и FMA3 (Trinity)[2]. Intel планирует добавить FMA3 в процессоры на ядре Haswell к 2012.[3]

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

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

  • VFMADD a=b\times c+d
  • VFMSUB a=b\times c-d
  • VFNMADD a=-b\times c+d
  • VFNMSUB a=-b\times c-d
  • VFMADDSUB Aodd =Bodd\times Codd+Dodd
  • VFMSUBADD Aeven=Beven\times Ceven+Deven

Ссылки

  1. http://www.pgroup.com/lit/articles/insider/v3n3a4.htm "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. Детали об AMD Trinity и Piledriver накануне запуска
  3. http://www.reghardware.co.uk/2008/08/19/idf_intel_architecture_roadmap/ - Intel анонсировал 22nm восьмиядерный 'Haswell', The Register
  4. http://www.nvidia.com/content/PDF/fermi_white_papers/NVIDIAFermiComputeArchitectureWhitepaper.pdf Nvidia Fermi Whitepaper
  5. http://www.bit-tech.net/hardware/graphics/2009/09/30/ati-radeon-hd-5870-architecture-analysis/8 - Архитектура ATI Radeon HD 5870 , Bit-Tech.net

Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "Умножение-сложение" в других словарях:

  • Сложение (математика) — У этого термина существуют и другие значения, см. Сложение (значения). Сложение (прибавление)  одна из основных операций (действий) в разных разделах математики, позволяющая объединить два объекта (в простейшем случае  два числа). Более …   Википедия

  • УМНОЖЕНИЕ — УМНОЖЕНИЕ, арифметическая операция, обозначаемая символом (по сути представляет собой многократное СЛОЖЕНИЕ). Например, a3в можно записать иначе как а+а+...+а , где в показывает, сколько раз повторяется операция сложения. В выражении а3в («а»… …   Научно-технический энциклопедический словарь

  • Сложение — У этого термина существуют и другие значения, см. Сложение (значения). Сложение (прибавление)  одна из основных операций (действий) в разных разделах математики, позволяющая объединить два объекта (в простейшем случае  два числа). Более …   Википедия

  • сложение — ▲ слияние ↑ однородный, величина < > вычитание сложение именованных величин операция слияния однородных величин, при которой исходные величины и результат имеют одинаковые единицы измерения. сложить. прибавить. причислить. плюсовать.… …   Идеографический словарь русского языка

  • УМНОЖЕНИЕ — чисел одна из основных арифметич. операций. У. заключается в сопоставлении двум числам а и . (называемым сомножителями) третьего числа с (называемого произведением). У. обозначается знаком или Х ; в буквенном обозначении эти знаки, как правило,… …   Математическая энциклопедия

  • Дельта-функция — У этого термина существуют и другие значения, см. Дельта (значения). Схематический график одномерной дельта функции. Дельта функция (или …   Википедия

  • Естественное преобразование — (функторный морфизм)  одно из основных понятий теории категорий. Если и   ковариантные функторы из категории в , то отображение, при котором каждому объекту категории соответствует морфизм …   Википедия

  • Килофлопс — Производительность суперкомпьютеров Название год FLOPS флопс 1941 100 килофлопс 1949 103 мегафлопс 1964 106 гигафлопс 1987 …   Википедия

  • Петафлоп — Производительность суперкомпьютеров Название год FLOPS флопс 1941 100 килофлопс 1949 103 мегафлопс 1964 106 гигафлопс 1987 …   Википедия

  • Петафлопс — Производительность суперкомпьютеров Название год FLOPS флопс 1941 100 килофлопс 1949 103 мегафлопс 1964 106 гигафлопс 1987 …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»