FMA x86

FMA x86 ist eine Befehlssatzerweiterung für Mikroprozessoren von Intel und AMD zur Unterstützung der Fused-Multiply-Add-Technik (FMA). Von AMD erfolgte hierzu erstmals eine Umsetzung in den „Bulldozer“-CPUs. Intel setzte dies erst in den Haswell-Prozessoren ein.

Es gibt zwei nicht miteinander kompatible Ausführungen, FMA4 und FMA3:

Neue Eigenschaften

FMA erweitert die Möglichkeiten zu Vektoroperationen und kann als Erweiterung der AVX-Befehle gesehen werden.

Neue Instruktionen

CPUs mit FMA4

  • Intel hat FMA4 nicht implementiert.
  • AMD hatte FMA4 implementiert:
    • Bulldozer-basierte Prozessoren (AMD FX), Q4/2011
    • Piledriver-basierte Prozessoren (AMD FX, Trinity und Richland APUs), Q2/2012
    • Steamroller-basierte Prozessoren (4. Generation A-Serie-Prozessoren, Kaveri-APUs) Q1/2014
    • Zen-Prozessoren (Q1/2017) haben zwar eine funktionierende Implementierung von FMA4, allerdings wird in der CPUID nicht angezeigt, dass die Instruktion zur Verfügung steht. Die Implementierung vom FMA4 bei Zen ist demnach inoffiziell und ab der Zen2-Mikroarchitektur (Q3/2019) schließlich nicht mehr vorhanden
Mnemonic Operanden Operation
VFMADDPDx xmm, xmm, xmm/m128, xmm/m128 a = b∙c + d
VFMADDPDy ymm, ymm, ymm/m256, ymm/m256
VFMADDPSx xmm, xmm, xmm/m128, xmm/m128
VFMADDPSy ymm, ymm, ymm/m256, ymm/m256
VFMADDSD xmm, xmm, xmm/m64, xmm/m64
VFMADDSS xmm, xmm, xmm/m32, xmm/m32

CPUs mit FMA3

  • Intel
    • Alle Intel-Core-i-Prozessoren ab der Haswell-Mikroarchitektur (4. Generation Core i-Prozessoren)
  • AMD
Mnemonic Operanden Operation
VFMADD132PDy ymm, ymm, ymm/m256 a = a∙c + b
VFMADD132PSy
VFMADD132PDx xmm, xmm, xmm/m128
VFMADD132PSx
VFMADD132SD xmm, xmm, xmm/m64
VFMADD132SS xmm, xmm, xmm/m32
VFMADD213PDy ymm, ymm, ymm/m256 a = b∙a + c
VFMADD213PSy
VFMADD213PDx xmm, xmm, xmm/m128
VFMADD213PSx
VFMADD213SD xmm, xmm, xmm/m64
VFMADD213SS xmm, xmm, xmm/m32
VFMADD231PDy ymm, ymm, ymm/m256 a = b∙c + a
VFMADD231PSy
VFMADD231PDx xmm, xmm, xmm/m128
VFMADD231PSx
VFMADD231SD xmm, xmm, xmm/m64
VFMADD231SS xmm, xmm, xmm/m32

Anwendung


Einzelnachweise

  1. ↑ btarunr: AMD „Zen“ Does Support FMA4, Just Not Exposed. In: TechPowerUp. 15. Oktober 2018, abgerufen am 10. März 2025 (englisch).