단일 스레드 Qaud 코어 대 하이퍼 스레딩 듀얼 코어 [중복]


10

두 개의 CPU가 있고 하나는 4 개의 코어가있는 쿼드 코어 3.2GHz이고, 각 코어에 2 개의 스레드가있는 2 개의 코어가있는 듀얼 코어 3.2GHz가 있습니다 (하이퍼 스레딩). 프로그래머로서 제 가정은 4 코어 4 스레드가 2 코어 4 스레드보다 빠르게 수행해야한다는 것입니다. 두 번째 CPU는 4 코어를 에뮬레이션하기 위해 스레드간에 전환해야하기 때문에 첫 번째 코어는 각각과 같은 스위칭을 수행 할 필요가 없기 때문입니다. 핵심은 독립적으로 그리고 개별적으로 수행 할 수 있습니다.

내 가정이 사실인지 확인하고 싶지 않다면 왜 하나가 다른 것보다 더 좋은지 설명하십시오.


3
짧은 Google 검색 (Wikipedia)이 답을 제공했기 때문에 공감.
Werner Henze

4
@WernerHenze 당신이 말하는 것은 사실이지만, 사람들이 구글과 같은 것들을 할 때 수퍼 유저 결과를 보게되기를 바랍니다. :)
Shekhar

답변:


10

하이퍼 스레딩은 일부 요소, 특히 주요 실행 리소스를 공유하기 때문에 해당 리소스가 해제 될 때까지 기다리지 않고 한 번에 4 개의 전체 스레드를 실행할 수 있습니다.

HT의 핵심은 다이 면적을 적게 사용하여 더 나은 성능을 얻는 것입니다. 쿼드 코어는 일반적으로 더 큰 칩입니다. 예를 들어 HT 듀얼 코어 칩이 아닌 HT 듀얼 코어 칩보다 거의 두 배입니다. 5 % 더 큽니다. 쿼드 코어는 올바른 작업 부하에서 최대 두 배의 속도를 볼 수 있지만 (대부분의 경우 최대 용량으로 4 개의 스레드를 실행하지 않을 가능성은 낮음) 듀얼 코어 HT 프로세서는 15-30 % 더 우수합니다. 듀얼 코어 비 HT 프로세서보다 성능 ( wikipedia에 따름 ).

실제 코어가 많을수록 좋습니다.


1
HT 프로세서는 15-30 %를 볼 것입니다 ... 여기가 핵심입니다. HT는 진정한 제 2 코어에 대한 여분 (2, 4 등) 아니다
오스틴 T 프랑스어

1
더 많은 코어, 더 많은 코어, 하이퍼 스레딩을 사용하는 것이 더 나을 것입니다 ... : D
Keltari

HT로 성능을 향상시키는 가장 큰 이유는 CPU가 완전히로드되지 않기 때문입니다. 즉, 단일 스레드는 모든 CPU주기마다 데이터를 거의 처리하지 않습니다. HT를 사용하면 CPU는 그렇지 않은 다른주기 동안 두 번째 스레드를 예약 할 수 있습니다. 페이스 북과 전자 메일 사이를 전환 할 때, 이것은 매우 효과적 일 수 있지만, 각 스레드가 CPU를 많이 사용할수록 성능 향상은 줄어 듭니다.
Thomas

1

에서 위키 백과 :

하이퍼 스레딩은 프로세서의 특정 섹션 (아키텍처 상태를 저장하는 섹션)은 복제하지만 주요 실행 리소스는 복제하지 않습니다. 이를 통해 하이퍼 스레딩 프로세서는 일반적인 "물리적"프로세서로, 추가 "논리적"프로세서로 호스트 운영 체제에 나타날 수 있습니다 (HTT-unware 운영 체제는 두 개의 "물리적"프로세서 참조). 운영 체제가 두 개의 스레드를 예약 할 수 있습니다. 또는 동시에 그리고 적절하게 처리합니다. 하이퍼 스레딩이없는 프로세서의 현재 작업에서 실행 리소스를 사용하지 않을 때, 특히 프로세서가 정지 된 경우 하이퍼 스레딩이 장착 된 프로세서는 해당 실행 리소스를 사용하여 다른 예약 된 작업을 실행할 수 있습니다. (캐시 누락, 분기 오인으로 인해 프로세서가 정지 될 수 있습니다.

쿼드 코어 시스템이있는 경우 전체 코어에서 4 개의 스레드를 실행할 수 있습니다. 듀얼 코어 하이퍼 스레딩 시스템을 사용하는 경우 2 개의 스레드가 각각 풀 코어에서 실행될 수 있지만 4 개의 스레드로 스레드 1과 2는 하나의 코어를 공유하고 스레드 3과 4는 다른 코어를 공유합니다. 하이퍼 스레딩은 두 개의 스레드가 동일한 프로세서 자원을 사용하지 않는 경우 병렬로만 실행되도록합니다. 따라서 이상적인 경우 높은 수준의 병렬 처리를 얻을 수 있지만 Wikipedia에 따르면 성능 향상은 100 %가 아니라 15-30 %에 불과합니다.


1

하이퍼 스레딩에서 작업 A의 코어 유휴 시간 (상기 코어는 디스크에 데이터 요청을 보내고 디스크가 플래터의 영역을 찾고 데이터를 읽고 코어로 다시 보낼 때까지 기다릴 수 있음) )는 다른 작업을 수행하는 데 이용됩니다 B. 따라서 소위 스레드 2가 태스크 B를 서비스하고 태스크 A의 데이터 페치 요청이 완료된 경우 태스크 A는 여전히 코어가 스레드 2를 완료 할 때까지 기다려야합니다. 두 스레드는 하나의 코어에서 동시에 실행될 수 없습니다. HT는 코어 / 프로세서와 컴퓨터의 다양한 하위 시스템 간의 속도 불일치를 악용합니다. HT는 코어를 최대 용량으로 사용합니다. 이는 전체 용량 활용과 같습니다. 따라서 브라우저에서 4 개의 탭을 열면 각 탭에 4 코어 시스템의 코어가 있고 2 개의 탭이 2 코어 시스템의 코어를 공유해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.