FMA x86

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 8. Februar 2012 um 15:08 Uhr durch 79.236.244.222 (Diskussion). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Zur Navigation springen Zur Suche springen

Der Befehlssatz Fused Multiply-Add (FMA) ist eine Erweiterung des x86-Befehlssatzes für Mikroprozessoren von Intel und AMD, die von Intel und AMD konkurrenzierend entwickelt und von AMD zuerst in den "Bulldozer"-CPUs umgesetzt wurde.

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

  • FMA4 ist die vollwertige Version, die eine Vektoroperation der Form erlaubt;
  • FMA3 erfordert dagegen, dass das Zielregister eines der Operandenregister ist, und dieser dadurch überschrieben wird.

Neue Eigenschaften

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

Neue Instruktionen

CPUs mit FMA4

  • Intel
    • Z.Z. ist noch unklar, ob Intel sich an FMA4 anschließt oder bei FMA3 bleiben wird.
  • AMD
    • AMD führte FMA4 mit den "Bulldozer"-Cores 2011 ein.
Mnemonic Operanden Operation
VFMADDPDx xmm, xmm, xmm/m128, xmm/m128 $0 = $1×$2 + $3
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
  • AMD
    • AMD hat angekündigt, FMA3 ebenfalls zu unterstützen, falls Intel sich auf FMA3 beschränken sollte.[1]. Dies könnte bereits mit dem "Bulldozer" noch 2012 geschehen.
Mnemonic Operanden Operation
VFMADD132PDy ymm, ymm, ymm/m256 $0 = $0×$2 + $1
VFMADD132PSy
VFMADD132PDx xmm, xmm, xmm/m128
VFMADD132PSx
VFMADD132SD xmm, xmm, xmm/m64
VFMADD132SS xmm, xmm, xmm/m32
VFMADD213PDy ymm, ymm, ymm/m256 $0 = $1×$0 + $2
VFMADD213PSy
VFMADD213PDx xmm, xmm, xmm/m128
VFMADD213PSx
VFMADD213SD xmm, xmm, xmm/m64
VFMADD213SS xmm, xmm, xmm/m32
VFMADD231PDy ymm, ymm, ymm/m256 $0 = $1×$2 + $0
VFMADD231PSy
VFMADD231PDx xmm, xmm, xmm/m128
VFMADD231PSx
VFMADD231SD xmm, xmm, xmm/m64
VFMADD231SS xmm, xmm, xmm/m32

Anwendung

  • Nützlich für gleitkommaintensive Berechnung, vor allem im Multimedia-, wissenschaftlichen oder Finanzberechnungen. Ganzzahloperationen sollen später folgen.
  • Erhöht Parallelität und Durchsatz von Gleitkomma-SIMD-Berechnungen
  • Verringert die Registerlast durch nicht destruktive Vier-Operanden-Form (im Fall von FMA4)


CPUs mit AVX

  • Intel
    • keine, erwartet 2013
  • AMD:
    • Bulldozer-Prozessoren seit Q4 2011.

Einzelnachweise

  1. Striking a balance. Dave Christie, AMD Developer blogs, 7. Mai 2009, abgerufen am 8. Mai 2009.