Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Medium,
15. Mär 2011
Jain. Die erste MMX Anweisung sollte die FPU umschalten, und erst mit manuellem "EMMS" sollte die FPU wieder "normal" arbeiten. Alles, was sonst nur mit der gewöhnlichen ALU zu tun hat, kann problemlos nebenbei auch gemacht werden. Interessant.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Medium,
12. Mär 2011
Jop, genau für sowas ist das sinnvoll. Im Grunde läuft das dann so ab: Du hast sagen wir 2 Sätze von A, B und C, die sind mal Singles. Für SSE würde man dann sagen: Push bitte A1 in den linken Teil des Registerstacks, A2 in den rechten. Dann push B1 links und B2 rechts, dann C1 links und C2 rechts. Dann, lieber Prozessor, tu so als wären das 2 Floats nebeneinander in deinen Registern, und mache...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Medium,
11. Mär 2011
Huhu! :)
SIMD = Single Instruction, Multiple Data. Die Idee ist z.B.: Ich habe hier zwei Mal 4 Bytes, und die will ich paarweise Addieren. Hm, 4 Bytes passen nebeneinander in ein Register, nun brauche ich nur noch eine Operation, die diesen Inhalt als "4 Bytes" statt "1 Integer" interpretiert - und schon bist du bei MMX. SSE(2/3) ist im Grunde das selbe mit Floats. Wann immer eine große Menge...