Deaktivieren -msse
Ich versuche zu laufen verschiedene benchmark-tests mit CPU2006, um zu sehen, was verschiedene Optimierungen in Bezug auf Geschwindigkeit auf gcc. Ich bin vertraut mit -O1, -O2 und -O3, aber habe gehört, dass -msse ist eine anständige Optimierung. Was genau ist -msse? Ich habe auch gesehen, dass -msse ist standardmäßig auf einem 64-bit-Architektur, so wie ich es deaktivieren vergleichen, um den Unterschied zwischen benutzen und nicht benutzen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
http://www.justskins.com/forums/gcc-option-msse-and-128289.html
SSE (http://it.wikipedia.org/wiki/Streaming_SIMD_Extensions wie es der name sagt, sind die SSE-Anweisungen vorhanden, die in Prozessoren seit Pentium 3. Sie sind schnell für eine Art der vektoriellen und floating-point-Berechnung. Es gibt Sie in allen 64-bit-Prozessoren, also warum sollten wir diese deaktivieren?
Können Sie wählen zwischen -msse-und -msse2. SSE2 sind ein weiterer Befehlssatz wurde auf SSE, das hinzufügen und weitere leistungsstarke und sehr schnelle vektorielle Anweisungen.
Pentium 3 SSE, und ist ein 32-bit-Prozessor.
SSE2 ist mehr moderne statt, Pentium 4, das ist immer noch eine 32-bit-Prozessor, SSE2 haben.
-msse
,-msse2
,-msse3
,-msse4.1
, und-msse4.2
. Obwohl für "real" verwenden, ist es wahrscheinlich besser, nur das Ziel einer CPU-generation statt-spezifische Erweiterungen.-msse
aktiviert die generation der SSE-Anweisungen. Alle 64-bit-Prozessoren (x86-64) Sie haben, aber einige ältere 32-bit-Prozessoren (IA-32) haben nicht diese Anweisungen. Dies ist der Grund für den GCC die default-Einstellungen.SSE
Anweisungen zu tun haben, mit Vektor-Operationen und floating-point. Wenn man bedenkt, dass die Chancen für die automatische Vektorisierung und sind selten in der general-purpose-code, der einzige Unterschied sind Sie wahrscheinlich zu beobachten sind, wenn Sie Gleitkommazahlen.Auf 64-bit zu deaktivieren SSE-Anweisungen, verwenden Sie
-mno-sse