Назад | Перейти на главную страницу

У меня есть код, скомпилированный для Intel i7: как я могу узнать, на каких процессорах Xeon он может работать?

У меня есть код, скомпилированный для Intel i7: как я могу узнать, на каких процессорах Xeon он может работать?

Кажется, нет четкого способа узнать.

Я разработал эти практические правила, но не уверен, достаточно ли их. Процессоры Xeon, которые могут запускать код i7, должны быть:

Есть ли где-нибудь в Интернете таблица, в которой сравниваются процессоры Core и Xeon с точки зрения того, какой код они могут запускать?


Edit1:
В переключатель компилятора является gcc --march=corei7

Чтобы получить представление о том, какой процесс или двоичный файл может запускаться, важно посмотреть флаги процессора. В таком случае:

https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html

nehalem

Intel Nehalem CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and POPCNT instruction set support.

Они относятся к аппаратным функциям процессора, которые можно найти в /proc/cpuinfo в системе на базе Linux. Если перечислены все вышеперечисленные (и другие) функции, значит, можно будет запустить двоичный файл. В --march selector просто объединяет несколько cpuflags в один аргумент.

Если требуется более подробная информация по этой теме, я могу порекомендовать документацию по Gentoo C (XX) FLAGS.

https://wiki.gentoo.org/wiki/GCC_optimization#-march

Если нет доступа к /proc/cpuinfo в наличии, эту информацию также можно найти в технических характеристиках (техническом описании) процессора. Названия функций в спецификациях обычно соответствуют флагам процессора gcc.