64-Bit-Integers auf 32-Bit-Windows
-
Danke hustbaer, so ist´s besser. Muss mich wieder an die Bitoperatoren gewöhnen

Am Ergebnis hat das aber nicht wahnsinnig viel geändert, statt ~10% langsamer ist die SSE-Version jetzt ~10% schneller. Das ist immer noch nicht das, was ich mir erwartet habe.
-
Deswegen sag ich ja: Erwarte nicht zu viel. Die Compiler sind in der Regel schon ziemlich gut. Falls du z.B. das obige Programm für 64-Bit compiliert hast, dann werden möglicherweise auch automatisch SSE2-Befehle erzeugt (hier dürfte der Compiler erkennen, dass sich das lohnen könnte), da alle 64-Bit Prozessoren SSE2 können.
-
Heißt das jetzt, die SSE2-Befehle sind nicht viele schneller oder sie werden vom Compiler einfach nicht erzeugt?
Falls zweiteres, wieso kann ich dann in Visual C++ SSE2 aktivieren, wenn es nicht verwendet wird?
Von SSE2-Unterstützung kann ich bei meinem Programm sowieso ausgehen, da ich auch das wesentlich jüngere OpenGL 3 benötige.
-
Senfti schrieb:
Heißt das jetzt, die SSE2-Befehle sind nicht viele schneller oder sie werden vom Compiler einfach nicht erzeugt?
Die sind je nach Anwendungsfall ordentlich schneller, und werden auch erzeugt. Nur dass MSVC eben nicht perfekt ist, und viele Fälle wo man SSE2 (sinnvoll) anwenden könnte nicht "kann".
Von SSE2-Unterstützung kann ich bei meinem Programm sowieso ausgehen, da ich auch das wesentlich jüngere OpenGL 3 benötige.
Naja... OGL 3 Support ist abhängig von der Grafikkarte und deren Treiber, SSE2 ist abhängig von der CPU.
Das eine hängt also nicht (direkt) mit dem anderen zusammen.Wobei die Chance einen z.B. Pentium III (letzter Pentium ohne SSE2) in Kombination mit einer OGL 3 fähigen Grafikkarte anzutreffen wohl relativ kein sein wird.