그렇다면 물리적 CPU 코어와 달리 논리적 CPU 코어는 무엇입니까?


48

나는 기계에서 CPU의 수를 찾는 방법에 대해 인터넷 검색을하고 일부 게시물을 찾았지만 일부는 논리적 코어와 물리적 코어 등을 얻는 것으로 언급되어 혼란스러워합니다.
따라서 논리적 코어와 물리적 코어 의 차이점은 무엇입니까? 물리적 코어 만 얻을 수있는 방법이 있습니까? 아니면 우리의 수에 논리 코어를 포함시키는 것이 합리적입니까?

답변:


62

물리적 코어는 CPU 내의 물리적 코어입니다. 논리 코어는 단일 코어가 2 개 이상의 작업을 동시에 수행 할 수있는 능력입니다. 이것은 초기 Pentium 4 CPU에서 하이퍼 스레딩 (HTT) 이라는 기능을 수행 할 수있게되었습니다 .

코어의 하위 구성 요소가 특정 유형의 명령에 사용되지 않은 동안 다른 장기 실행 명령이 실행되었을 수있는 게임이었습니다. 따라서 CPU는 실제로 두 가지 작업을 동시에 수행 할 수 있습니다.

최신 코어는 본격적인 CPU이므로 여러 가지 작업을 동시에 수행하지만 실제 코어와 같은 진정한 CPU는 아닙니다. 이 기사의 제목 : 인텔 코어 i5 및 코어 i7 : 인텔의 메인 스트림 매그넘 Opus 에서 하이퍼 스레딩 기능과 코어의 물리적 기능에 대한 제한 사항에 대한 자세한 내용을 볼 수 있습니다 .

다음 lscpu명령을 사용하여 상자의 분류를 볼 수 있습니다 .

$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
CPU(s):                4
Thread(s) per core:    2
Core(s) per socket:    2
CPU socket(s):         1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 37
Stepping:              5
CPU MHz:               2667.000
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              3072K
NUMA node0 CPU(s):     0-3

위의 인텔 i5 랩탑에는 총 4 개의 "CPU"가 있습니다.

CPU : 4

그 중 2 개의 물리적 코어가 있습니다

소켓 당 코어 : 2

각각 최대 2 개의 스레드를 실행할 수 있습니다

코어 당 스레드 수 : 2

동시에. 이 스레드는 핵심의 논리적 기능입니다.


나는이없는 lscpu됐나가 어떤 다른 도구를?
Jim

1
사용하는 원시 정보 lscpu는 여기에 노출됩니다 cat /proc/cpuinfo. 당신의 OS는 무엇입니까?
slm

1
@ThomasWeller - 여기 내 다른 A'er 참조 - unix.stackexchange.com/questions/113544/...을 .
slm

1
Core(s) per socket시간 Thread(s) per core: 2= CPU(s): 4? 옳은?
user3019105

1
@ user3019105-정확함
slm

12

물리적 코어는 물리적 코어, 실제 하드웨어 구성 요소의 수입니다.

논리 코어는 물리적 코어 수에 하이퍼 스레딩을 사용하여 각 코어에서 실행할 수있는 스레드 수를 곱한 것입니다.

예를 들어, 4 코어 프로세서는 코어 당 2 개의 스레드를 실행하므로 8 개의 논리 프로세서가 있습니다.


하이퍼 스레딩을 지원하는 프로세서를 사용하는 경우에만이 숫자가 의미가 있습니까? 그리고 이것은 무엇을 의미합니까? 한 번에 하나의 스레드가 각 CPU를 차지할 것입니까?이 숫자는 무엇을 의미합니까?
Jim

어떤 숫자를 구해야합니까?
Jim

예를 들어 동시 멀티 스레딩 은 단일 코어에서 두 개의 스레드를 동시에 실행할 수있는 것은 아닙니다 . 다른 많은 장점도 있습니다.
ash

나는 물리적 코어의 수를 봅니다.
ash

1

하이퍼 스레딩 기술을 사용하면 단일 물리적 프로세서 코어가 두 개의 논리 프로세서처럼 작동 할 수 있습니다.

따라서 단일 프로세서 코어가 두 개의 독립적 인 스레드를 동시에 실행할 수 있습니다 .

인텔은 물리적 프로세서를 소켓이라고합니다.

하이퍼 스레딩을 사용하면 물리적 프로세서가 논리적 프로세서라고하는 두 개의 물리적 프로세서가있는 것처럼 작동합니다. 왜?

하이퍼 스레딩은 시스템 성능을 두 배로 늘리지는 않지만 유휴 리소스를 더 잘 활용하여 성능을 향상시켜 특정 중요한 워크로드 유형에 대한 처리량을 높일 수 있습니다. 사용중인 코어의 하나의 논리 프로세서에서 실행되는 응용 프로그램은 비스 레드 스레드 프로세서에서 단독으로 실행하는 동안 얻는 처리량의 절반 이상을 기대할 수 있습니다.


요약


물리적 프로세서는 우리가보고 넘어 질 수 있다는 것입니다.

논리 프로세서는 두 개의 물리적 코어 역할을 하는 Phsical Core 와 같습니다.


vmware doc에 대한 링크가 끊어졌습니다.
slm

0
$ sudo dmidecode |egrep "Socket Designation: Proc|((Thread|Core) Count)"
Socket Designation: Proc 1
        Core Count: 14
        Thread Count: 28
Socket Designation: Proc 2
        Core Count: 14
        Thread Count: 28

두 개의 소켓. 각 소켓에는 14 개의 물리적 코어가 있습니다. 각 코어에는 2 개의 스레드 (28/14)가 있습니다. 논리적 "cpus"또는 논리적 처리 장치의 총 수는 56 개입니다 ( "top"및 다른 명령은 "cpus"의 수로 표시합니다).


무엇 나를 당황하게하는 것은 당신의 접근 방식과 내 i3-3220에 내가 얻을 수 있다는 것입니다 코어 수를 2 스레드 카운트 2 (= 4)하지만 lscpu shows CPUs 4 and threads per 2 (=8) but -C cpu`가 lshw 보여줍니다 (16) 논리적 CPU의 0 번호 - 15
장로 긱

dmidecode는 BIOS에 무엇이 있는지 해석합니다. 귀하의 경우에 정확히 무엇이 잘못되었는지 확실하지 않습니다. 예를 들어, BIOS 등에서 하이퍼 스레딩이 비활성화되어있을 수 있습니다. lscpu 및 lshw는 OS 명령이므로 OS 커널이 인식 한 내용을 보여줍니다. 프로세서에 대한 인텔 사양은 2 코어 4 스레드를 보여줍니다.
Tagar

하이퍼 스레딩을 사용하지 않도록 설정하면 논리 코어 수가 더 많아지지 않고 더 적어 집니까?
Geek

2 코어 4 스레드 실제 스레드 수 / i3-3220이 아닌 dmidecode에 의해 2 코어 2 스레드 가보고되었습니다. 따라서 더 작습니다. 그리고 그것은 단지 추측 일뿐입니다 .BIOS에서 실제로 하이퍼 스레딩을 비활성화했는지 여부는 알 수 없습니다.
Tagar

lscpu출력을 잘못 해석 한 것으로 보이며 실제로 총 4 개의 스레드이지만 "lshw -C cpu`는 16 개의 논리 CPU를 보여줍니다"라는 것을 잘 모르겠습니다.
Geek
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.