하나의 CPU에서 멀티스레드 프로그램의 성능을 테스트해야 하는데 듀얼 CPU 시스템이 있습니다. 소켓을 공유하는 논리적 CPU에 대한 선호도를 설정해야 합니다. 그렇지 않으면 더 많은 수의 FSB를 통해 큰 이점을 얻을 수 있습니다. 선호도 0-7과 8-15를 시도했지만 결과가 상당히 다르며 첫 번째가 더 빠릅니다. 따라서 어떤 논리적 CPU가 소켓을 공유하는지 알 수 없습니다.
lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Thread(s) per core: 1
Core(s) per socket: 8
CPU socket(s): 2
NUMA node(s): 4
Vendor ID: AuthenticAMD
CPU family: 16
Model: 9
Stepping: 1
CPU MHz: 800.000
BogoMIPS: 4000.40
Virtualization: AMD-V
L1d cache: 64K
L1i cache: 64K
L2 cache: 512K
L3 cache: 5118K
NUMA node0 CPU(s): 0-3
NUMA node1 CPU(s): 4-7
NUMA node2 CPU(s): 12-15
NUMA node3 CPU(s): 8-11
~]$ cat /proc/cpuinfo | grep 'core id'
core id : 0
core id : 1
core id : 2
core id : 3
core id : 0
core id : 1
core id : 2
core id : 3
core id : 0
core id : 1
core id : 2
core id : 3
core id : 0
core id : 1
core id : 2
core id : 3
답변1
처음 8개 프로세서는 한 칩에서, 두 번째 8개 프로세서는 다른 칩에서 가져옵니다. 로 구별할 수 있습니다 physical id
. 성능 차이에 관해서는 - 현재로서는 잘 모르겠습니다.
답변2
2개의 CPU의 지연 시간이 중요합니다. 마더보드의 데이터시트를 읽어보면 그 중 하나가 플랫폼을 실행하는 데 기본적이고 필수적인 것임을 알게 될 것입니다.
예를 들어, 소켓0과 소켓0, 소켓1을 채워서 플랫폼을 실행할 수 있지만, 소켓1만 채워서 플랫폼을 실행할 수는 없습니다.
그렇기 때문에 각각의 성능이 다릅니다. 어쨌든 비슷해야 하지만 동일하지는 않습니다.