FMA

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск

Совмещенная операция умножения-сложения (англ. Fused multiply-add, FMA) — операция микропроцессора над числами с плавающей точкой, совмещающая умножение и сложение в одной инструкции. Имеет три аргумента: <math>a, b, c</math>. Вычисляет <math>a+b*c</math>. Включена в стандарт IEEE 754-2008.

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

Быстрая инструкция FMA может ускорить и увеличить точность операций перемножения векторов, перемножения матриц, вычисления полиномов (по схеме Горнера).

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

Инструкция реализована в микропроцессорах IBM POWER1 (1990) и старше, Fujitsu SPARC64 (1995), HP PA-8000 (1996), Intel Itanium (2001), IBM Cell (2005), Loongson-2F (2008). Планируется добавить инструкции FMA3 и FMA4 в процессоры Intel и AMD примерно к 2012 году (см. также SSE5 и Intel AVX).

Инструкция FMA имеется в графических процессорах NVIDIA GeForce начиная с серии 200 (GTX 200) и NVIDIA Tesla T10 (GPGPU).


en:Multiply-accumulate#Fused multiply-add
Источник — «http://www.sbup.com/wiki/FMA»
Личные инструменты

Served in 0.050 secs.