У меня есть код, скомпилированный для 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.