Я пытаюсь выполнить различные тестовые тесты с использованием CPU2006, чтобы узнать, какие различные оптимизации делают с точки зрения скорости на gcc. Я знаком с -O1, -O2 и -O3, но слышал, что -msse - достойная оптимизация. Что это такое? Я также видел, что -msse по умолчанию используется в 64-битной архитектуре, поэтому как отключить его, чтобы сравнить разницу между ее использованием и не использовать?Disabling -msse
ответ
http://www.justskins.com/forums/gcc-option-msse-and-128289.html
SSE (http://it.wikipedia.org/wiki/Streaming_SIMD_Extensions) как название говорит в инструкции SSE, присутствующая в процессорах Pentium, так как 3. Они быстро для своего рода векторных и плавающего точечное вычисление. Они доступны во всех 64-битных процессорах, поэтому зачем их отключать?
Вы можете выбрать между -msse и -msse2. SSE2 - еще один набор команд, построенный над SSE, который добавляет другие мощные и очень быстрые векторные инструкции.
Pentium 3 имеет SSE и представляет собой 32-битный процессор. SSE2 более современен, а Pentium 4, который все еще является 32-битным процессором, имеет SSE2.
-msse
активирует генерацию инструкций SSE. Все 64-разрядные процессоры (x86-64) имеют их, но некоторые старые 32-разрядные процессоры (IA-32) не имеют этих инструкций. Это является причиной настроек GCC по умолчанию.
SSE
инструкции относятся к векторным операциям и плавающей запятой. Учитывая, что возможности для автоматической векторизации встречаются редко в коде общего назначения, единственная разница, которую вы, скорее всего, наблюдаете, - это использование плавающей запятой.
На 64-бит, чтобы отключить инструкции SSE, используйте -mno-sse
Pentium 3 действительно имел это, но 32-битный процессор. SSE2 более современен, а не у всех 32-битных процессоров, но некоторые из них есть. Pentium 4 - это 32-битный процессор, но имеет SSE2. –
@ Салваторе Я не уверен, что вы имеете в виду. Все процессоры Intel IA32 от 386 до Pentium II представляют собой 32-разрядные процессоры без SSE. Я поясню свой ответ, но я имел в виду, что все процессоры x86-64 имеют SSE, но не все процессоры IA32 имеют его. SSE2, как расширение SSE, конечно поддерживается только подмножеством процессоров, поддерживающих SSE. –
Да точно :) теперь мне очень понятно. –
- 1. Joomla css disabling
- 2. El Capitan-disabling csrutil
- 3. Python-Disabling Action
- 4. @ConditionalOnExpression enable/disabling @RestController
- 5. disabling imagebutton внутри itemtemplate
- 6. Canvas Element Disabling
- 7. Construct File Object Disabling «..»
- 8. ValidatorEnable not disabling requiredfieldvalidator
- 9. Datepicker disabling date
- 10. UI Widget disabling
- 11. Hacky Button Disabling
- 12. Jackery tab disabling
- 13. Razor DropDownList Not Disabling
- 14. couchdb, disabling rereduce
- 15. Regex disabling escape key
- 16. RichTextBox & Disabling Mouse Scrolling
- 17. Salesforce disabling TLS 1.0
- 18. Mongo db log disabling
- 19. amCharts disabling animations
- 20. Resharper Active hotspot disabling intellisense
- 21. asp.net disabling listbox on postback
- 22. Инструмент для форматирования Velocity Disabling
- 23. plone.app.caching и disabling RAM cache
- 24. D disabling struct from lvalue
- 25. JQuery droppable live disabling/enable
- 26. phpBB3 disabling Друзья и враги
- 27. Userform Multipage disabling tab click
- 28. Un-disabling alert() в Chrome?
- 29. disabling prettyPhoto на мобильном телефоне
- 30. CALayer, CAConstraint & Disabling the Animation
Мы пытаемся различные комбинации тестов, включая переключение между 32-битной и 64-битной компиляции, так что мы просто любопытно посмотреть, что отключение -msse будет делать. – erasmuss22
Вы можете выбирать между '-msse',' -msse2', '-msse3',' -msse4.1' и '-msse4.2'. Хотя для «реального» использования, вероятно, лучше просто настроить генерацию ЦП вместо конкретных расширений. – millimoose
Инструкции SSE используются только в некоторой оптимизированной версии memset и memcpy или когда компилятор может понять, что это может быть лучшая оптимизация, но sse и sse2 имеют так много требований, например, выравнивание по памяти, что они используются редко. Я не удивлюсь, если ваша программа не будет иметь никакого значения, если она скомпилирована с -msse или с -mno-msse –