Einzelnen Beitrag anzeigen

Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#17

AW: Simd/MMX, wie funktioniert das?

  Alt 16. Mär 2011, 11:02
so, ich schonwieder^^.

Versuche gerade per MMX mehrere integer zu multiplizieren und die einzelnen resultate dann zu addieren. Hier habe ich ein paar kleine probleme^^"

folgendes schema:

per MOVD werden die register wiefolgt bestückt
(Formel wäre x = VARA*FactorA + VarB*FactorB + VarC*FactorC)
mm1, VARA
mm2, FactorA
mm3, VARB
mm4, FactorB
mm5, VARC
mm6, FactorC

und jetzt gehts los, es gibt kein PMULLD, sondern nur PMULLW.
Word hat aber soweit ich weiß 2 Bytes, integer aber 4 Bytes. Die register würden dann in 2Byte blöcken multipliziert(schätze ich könnte später immer 2 Integer in einen 64bit register kloppen, aber ich will es erstmal einfach haben).

danach würde ich mm1,mm3 und mm5 addieren und per MOVD mm1 in meine zielvariable schieben.

Dementsprechend ist der enstehende endwert eher suboptimal^^"

Dazu konnte ich noch nichts genaueres finden >.<.

EDIT: autsch, natürlich sollte ich der ordnung halber bei mm0 anfangen^^"
EDIT2: Bei VAR bzw Faktor handelt es sich um Integer variablen
EDIT3: OHa, oben bei der Formel muss X am ende noch durch einen 4ten Faktor geteilt werden..teilen geht per mmx wohl nicht und teilen ist ja xmal langsamer als alles zusammen o.o

MFG
Memnarch

Geändert von Memnarch (16. Mär 2011 um 11:23 Uhr)
  Mit Zitat antworten Zitat