WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

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

Когда операция выполняется над числами с плавающей запятой, то может выполняться двойное округление (типично для 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).

Также операция FMA реализована в процессорах AMD с поддержкой FMA4 (Bulldozer) и FMA3 (Trinity)[2]. Intel реализовала FMA3 в процессорах на ядре Haswell.[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
  • VFMSUB
  • VFNMADD
  • VFNMSUB
  • VFMADDSUB
  • VFMSUBADD

Примечания

  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

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2026
WikiSort.ru - проект по пересортировке и дополнению контента Википедии