Dzisiaj jest 15 stycznia 2025 r.
Chcę dodać własny artykuł

Multiply-accumulate

MAC (Multiply-Accumulate)

MAC, czyli operacja mnożenia i dodawania, jest realizowana przez jednostkę arytmetyczno-logiczną (ALU) procesora. Polega na pomnożeniu zawartości dwóch rejestrów i dodaniu wyniku do innego rejestru, najczęściej akumulatora. Operacja ta jest wyrażona wzorem:

a leftarrow a + b times c

MAC jest kluczową operacją w procesorach sygnałowych, ponieważ odbywa się w jednym cyklu rozkazowym, co znacząco zwiększa szybkość przetwarzania w algorytmach cyfrowego przetwarzania sygnałów.

FMA (Fused Multiply-Add)

FMA, znana również jako FMAD, to operacja typu pomnóż-i-dodaj, która łączy mnożenie i dodawanie w jeden krok, wykonując tylko jedno zaokrąglenie. Oznacza to, że w instrukcji a = b + c*d mnożenie i dodawanie są realizowane dokładnie, a zaokrąglenie dotyczy jedynie wyniku dodawania.

FMA przyspiesza i zwiększa dokładność wielu algorytmów numerycznych, w tym:

  • Iloczyn skalarny
  • Mnożenie macierzy
  • Obliczanie wartości wielomianów
  • Obliczanie wartości całek
  • Obliczanie pierwiastków funkcji metodą Newtona

Dzięki implementacji FMA możliwe jest zastosowanie efektywnych algorytmów do obliczania ilorazów i pierwiastków kwadratowych, co ułatwia konstrukcję mikroprocesorów.

Operacja FMA została opisana w standardzie IEEE 754-2008 i włączona do biblioteki standardowej języka C (standard C99) jako funkcja fma.