идентичные & ldquo; ядра & rdquo; в / proc / cpuinfo

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
1
задан 12 January 2013 в 10:35

1 ответ

Вот 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 обрабатывает информацию.

0
ответ дан 12 January 2013 в 10:35

Другие вопросы по тегам:

Похожие вопросы: