Отключение -msse - PullRequest
       24

Отключение -msse

2 голосов
/ 25 октября 2011

Я пытаюсь запустить различные эталонные тесты с использованием CPU2006, чтобы увидеть, что различные оптимизации делают с точки зрения скорости на gcc.Я знаком с -O1, -O2 и -O3, но слышал, что -msse - достойная оптимизация.Что именно -msse?Я также видел, что -msse является значением по умолчанию для 64-битной архитектуры, так как мне отключить его, чтобы сравнить разницу между его использованием и не использованием?

Ответы [ 2 ]

5 голосов
/ 25 октября 2011

-msse активирует генерацию инструкций SSE. Все 64-разрядные процессоры (x86-64) имеют их, но некоторые более старые 32-разрядные процессоры (IA-32) не имеют этих инструкций. Это причина для настроек GCC по умолчанию.

SSE инструкции относятся к векторным операциям и с плавающей точкой. Учитывая, что возможности автоматической векторизации в коде общего назначения редки, единственное отличие, которое вы, вероятно, заметите, это использование плавающей запятой.

В 64-битном режиме, чтобы отключить инструкции SSE, используйте -mno-sse

0 голосов
/ 25 октября 2011

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.

...