Opteron 6128 обнаруживается следующим образом в /proc/cpuinfo
:
$ cat /proc/cpuinfo | grep -e ^core -e ^phys
physical id : 0
core id : 0
physical id : 0
core id : 1
physical id : 0
core id : 2
physical id : 0
core id : 3
physical id : 0
core id : 0
physical id : 0
core id : 1
physical id : 0
core id : 2
physical id : 0
core id : 3
... (other physical id's)
До сих пор я понимал, что разные ядра в одном и том же физическом процессоре будут иметь разные core id
, и если core id
s идентичны, это связано с гиперпоточностью. Поэтому следует интерпретировать эту /proc/cpuinfo
запись как 4-ядерный процессор с гиперпоточностью.
Однако Opteron 6128 действительно 8-ядерный. Что здесь происходит?
П.С. Полная запись для 8-го «процессора»:
processor : 7
vendor_id : AuthenticAMD
cpu family : 16
model : 9
model name : AMD Opteron(tm) Processor 6128
stepping : 1
cpu MHz : 800.000
cache size : 512 KB
physical id : 0
siblings : 8
core id : 3
cpu cores : 8
apicid : 23
initial apicid : 7
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nonstop_tsc extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr npt lbrv svm_lock nrip_save pausefilter
bogomips : 3999.89
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate
Вот Intel i7 2600 для сравнения:
cyrex@cyrex:~$ cat /proc/cpuinfo | grep -e ^core -e ^phys
physical id : 0
core id : 0
physical id : 0
core id : 1
physical id : 0
core id : 2
physical id : 0
core id : 3
physical id : 0
core id : 0
physical id : 0
core id : 1
physical id : 0
core id : 2
physical id : 0
core id : 3
Поскольку у меня есть материнская плата Intel, которая имеет только один разъем, это означает, что у меня только один физический идентификатор. Представьте себе, что для каждого сокета в материнской плате есть один физический идентификатор.
Далее у нас есть основные идентификаторы, которые ссылаются на этот физический идентификатор. Если вы посмотрите на это, оно повторяется. Это из-за Hyper Threading. На самом деле 4 ядра и 4 HT. Таким образом, в конце он показывает для этого одного физического идентификатора, 4 основных идентификатора и 4 HT.
Если у вас на материнской плате больше сокетов, количество физических идентификаторов будет увеличиваться вместе с количеством ядер. В вашем случае предполагается, что будет отображаться 8 ядер (в моем случае это 4 ядра), поэтому он покажет длинный список, но поскольку он повторяется после 4-го ядра, похоже, что он не читает другие ядра (проблема с BIOS) , Проблема с ядром) или cpuinfo не определяет его правильно.
Также было бы полезно выяснить, почему, если бы вы могли выполнить следующее:
sudo dmidecode -t processor | grep -e Core -e Thread
и добавить информацию к вашему вопросу. В моем случае dmidecode
говорит:
cyrex@cyrex:~$ sudo dmidecode -t processor | grep -e Core -e Thread
Family: Core i7
Version: Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
Core Count: 4
Core Enabled: 4
Thread Count: 8
Также в бенчмарке в OpenBenchmark я нашел вашу модель, и есть одна строка, которая показывает следующее при выполнении cat на /proc/cpuinfo
:
cpu cores : 8
Поскольку в вашем случае отображаются все 8 ядер, это означает, что ЦП обнаружен правильно, хотя количество братьев и сестер отображается не все. Это может быть связано с тем, как cpuinfo показывает это для AMD или конкретной модели семейства. Если такие команды, как lscpu
, dmidecode
могут показывать вам количество процессоров, ядер и потоков / братьев и сестер для каждой, тогда проблема заключается в том, как cpuinfo обрабатывает информацию.