Fused multiply-add - de.LinkFang.org

Fused multiply-add




Die Fused-multiply-add-Operation (FMA-Operation) ist eine Variante der Multiply-Accumulate-Operation (MAC) für Gleitkommazahlen und wird auf manchen Mikroprozessoren mit Gleitkommaeinheit für optimierte Berechnungen eingesetzt. Im Gegensatz zu der gewöhnlichen, im englischen auch als Unfused-multiply-add bezeichneten Operation führt die Fused-multiply-add-Operation die Berechnung mit voller Auflösung durch und rundet das Ergebnis erst am Ende der Berechnung.

Entwickelt wurde die Technologie bereits Ende der 1980er Jahre von IBM Research,[1] fand zunächst jedoch nur geringe Verbreitung. Mit fortschreitender Integrationsdichte wurde eine einfache Implementierung der FMA-Technologie in GPUs, DSPs und CPUs möglich. Die FMA-Operation ist im Standard IEEE 754-2008 festgelegt.

Inhaltsverzeichnis

Anwendung


In numerischen Algorithmen treten häufig Operationen der Form

\({\displaystyle \ a\leftarrow a+(b\cdot c)}\)

auf. Dies ist unter anderem bei der Auswertung von Skalarprodukten, bei Matrix-Operationen und bei der numerischen Integration der Fall.

Bei der herkömmlichen Unfused-multiply-add-Operation mit N Stellen wird dabei zunächst das Produkt b·c berechnet, dieses auf N Stellen gerundet, danach die Addition von a ausgeführt und das Endergebnis nochmal auf N Stellen gerundet. Bei der fused-multiply-add-Operation entfällt das Runden nach der Multiplikation, es wird der Ausdruck a+b·c mit voller Genauigkeit berechnet und erst am Schluss einmalig auf N finale Stellen gerundet. Damit verbunden ist bei der Fused-multiply-add-Operation ein geringfügig höherer Hardwareaufwand. In manchen Situationen reduzieren sich etwas die Rundungsfehler. Bei der klassischen Skalarprodukt-Berechnung ist dies allerdings nur sehr selten der Fall, da meist |a| >> |b·c| ist. Dort gewinnt man mit anderen Techniken weitaus mehr Genauigkeit (z. B. durch das Nutzen von 4 oder 8 Akkumulatoren und einer finalen horizontalen Summe).

Zur Auswertung werden ohne FMA mindestens drei verschiedene Anweisungen benötigt:

Falls für Operationen der Form \({\displaystyle \ a\leftarrow a+(b\cdot c)}\) spezielle Opcodes definiert sind, so erfolgt die Auswertung durch eine optimierte Recheneinheit, dem Multiplier–Accumulator (MAC), der diese Anweisung in einem Schritt ausführt. Es verbleiben vom obigen Schema nur noch zwei Instruktionen, nämlich das Laden der Operanden und die anschließende FMA-Instruktion.

Vorteile

Nachteile

Implementierungen


Einzelnachweise


  1. R. K. Montoye, E. Hokenek, S. L. Runyon: Design of the IBM RISC System/6000 floating-point execution unit. In: IBM Journal of Research and Development. 34, Nr. 1, Januar 1990, ISSN 0018-8646 , S. 59–70. doi:10.1147/rd.341.0059 .
  2. http://repositories.lib.utexas.edu/bitstream/handle/2152/3082/quinnelle60861.pdf
  3. http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0491c/CJAEGAJB.html
  4. http://www.microway.com/pdfs/GPGPU_Architecture_and_Performance_Comparison.pdf
  5. 1.1.1. VFPv4 architecture hardware support . Abgerufen am 16. Mai 2012.
  6. http://archive.rootvg.net/column_risc.htm
  7. http://www.nvidia.com/content/PDF/fermi_white_papers/NVIDIA_Fermi_Compute_Architecture_Whitepaper.pdf



Kategorien: Prozessorarchitektur nach Befehlssatz | Computerarithmetik



Quelle: Wikipedia - https://de.wikipedia.org/wiki/Fused multiply-add (Autoren [Versionsgeschichte])    Lizenz: CC-by-sa-3.0


Veränderungen: Alle Bilder und die meisten Designelemente, die mit ihnen in Verbindung stehen, wurden entfernt. Icons wurden teilweise durch FontAwesome-Icons ersetzt. Einige Vorlagen wurden entfernt (wie „Lesenswerter Artikel“, „Exzellenter Artikel“) oder umgeschrieben. CSS-Klassen wurden zum Großteil entfernt oder vereinheitlicht.
Wikipedia spezifische Links, die nicht zu Artikeln oder Kategorien führen (wie „Redlink“, „Bearbeiten-Links“, „Portal-Links“) wurden entfernt. Alle externen Links haben ein zusätzliches FontAwesome Icon erhalten. Neben weiteren kleinen Designanpassungen wurden Media-Container, Karten, Navigationsboxen, gesprochene Versionen & Geo-Mikroformate entfernt.


Stand der Informationen: 05.05.2020 11:56:50 CEST - Wichtiger Hinweis Da die gegebenen Inhalte zum angegebenen Zeitpunkt maschinell von Wikipedia übernommen wurden, war und ist eine manuelle Überprüfung nicht möglich. Somit garantiert LinkFang.org nicht die Richtigkeit und Aktualität der übernommenen Inhalte. Sollten die Informationen mittlerweile fehlerhaft sein oder Fehler in der Darstellung vorliegen, bitten wir Sie darum uns per zu kontaktieren: E-Mail.
Beachten Sie auch : Impressum & Datenschutzerklärung.