Re: SSE Beschleunigung Structure Align
Verfasst: 06.12.2022 17:50
Kennt sich jemand mit den Aligns aus?
Die Move Befehler gibt es als Aligned und Unaligned Version
unaligned vs aligned
Movups vs. Movaps
Vmovups vs Vmovaps
Ich geh jetzt mal davon aus, dass die Aligned Befehle schneller arbeiten als die unagligend!???
ich hab hier mal die Algin-Werte an die Structures angehängt, wie ich mir das vorstelle.
1. Kann/muss man das so machen, oder macht PB das vielleicht bereits von selbst?
2. Wenn ich richtige liege, dann wäre bei den TVector3 Typen mit Align immer ein paar leere Bytes dahinter,
so dass man einen TVector3 auch wie einen TVector4 einlesen könnte und mit einem Befehl bearbeiten.
Ohne dem korrekten Align müsste man das auf 2 Befehle aufteilen. x,y zusammen und dann noch z einzeln
Structure TVector3f Align 16
x.f
y.f
z.f
EndStructure
Structure TVector4f Extends TVector3f
w.f
EndStructure
Structure TVector3d Align 32
x.d
y.d
z.d
EndStructure
Structure TVector4d Extends TVector3d
w.d
EndStructure
Die Move Befehler gibt es als Aligned und Unaligned Version
unaligned vs aligned
Movups vs. Movaps
Vmovups vs Vmovaps
Ich geh jetzt mal davon aus, dass die Aligned Befehle schneller arbeiten als die unagligend!???
ich hab hier mal die Algin-Werte an die Structures angehängt, wie ich mir das vorstelle.
1. Kann/muss man das so machen, oder macht PB das vielleicht bereits von selbst?
2. Wenn ich richtige liege, dann wäre bei den TVector3 Typen mit Align immer ein paar leere Bytes dahinter,
so dass man einen TVector3 auch wie einen TVector4 einlesen könnte und mit einem Befehl bearbeiten.
Ohne dem korrekten Align müsste man das auf 2 Befehle aufteilen. x,y zusammen und dann noch z einzeln
Structure TVector3f Align 16
x.f
y.f
z.f
EndStructure
Structure TVector4f Extends TVector3f
w.f
EndStructure
Structure TVector3d Align 32
x.d
y.d
z.d
EndStructure
Structure TVector4d Extends TVector3d
w.d
EndStructure