CPU 코어가 모두 다른 속도가 아닌 동일한 속도를 갖는 이유는 무엇입니까?

0
326

새로운 CPU에 대한 비교 쇼핑을 많이 한 적이 있다면 코어가 모두 다른 CPU의 조합이 아닌 속도를 갖는 것처럼 보일 수 있습니다. 왜 그런 겁니까? 오늘의 수퍼 유저 Q & A 게시물에는 궁금한 독자의 질문에 대한 답변이 있습니다.

오늘의 질문 및 답변 세션은 커뮤니티 중심의 Q & A 웹 사이트 그룹 인 Stack Exchange의 하위 부문 인 SuperUser에 의해 제공됩니다.

질문

수퍼 유저 리더 Jamie는 CPU 코어가 서로 다른 속도가 아닌 동일한 속도를 갖는 이유를 알고 싶어합니다.

일반적으로 새 컴퓨터를 구입하는 경우 컴퓨터의 예상 작업 부하에 따라 구매할 프로세서를 결정합니다. 비디오 게임의 성능은 단일 코어 속도에 의해 결정되는 반면 비디오 편집과 같은 응용 프로그램은 코어 수에 의해 결정됩니다. 시중에서 구할 수있는 것의 관점에서 볼 때 모든 CPU는 속도가 거의 같은 것으로 보이며 주요 차이점은 더 많은 스레드 또는 코어입니다.

예를 들면 다음과 같습니다.

  • Intel Core i5-7600K, 기본 주파수 3.80GHz, 4 코어, 4 스레드
  • Intel Core i7-7700K, 기본 주파수 4.20GHz, 4 코어, 8 스레드
  • AMD Ryzen 5 1600X, 기본 주파수 3.60 GHz, 6 코어, 12 스레드
  • AMD Ryzen 7 1800X, 기본 주파수 3.60 GHz, 8 코어, 16 스레드

왜 증가하는 코어의 패턴을 보지만 모든 코어의 클럭 속도는 동일합니까? 클럭 속도가 다른 변형이없는 이유는 무엇입니까? 예를 들어, 두 개의 “큰”코어와 많은 작은 코어가 있습니다.

예를 들어 4.0GHz에서 4 개의 코어 (즉, 4x4GHz, 최대 16GHz) 대신 4.0GHz에서 실행되는 2 개의 코어와 2.0GHz에서 실행되는 4 개의 코어 (예 : 2×4.0GHz + 4×2.0)의 CPU는 어떻습니까? GHz, 최대 16GHz)? 두 번째 옵션이 단일 스레드 워크로드에서 똑같이 우수하지만 다중 스레드 워크로드에서 더 좋을까요?

위의 CPU 또는 특정 워크로드에 대해서는 구체적으로 언급하지 않고 일반적인 질문으로이 질문을합니다. 패턴이 왜 그런지 궁금합니다.

CPU 코어가 서로 다른 속도가 아닌 동일한 속도를 갖는 이유는 무엇입니까?

대답

수퍼 유저 기고자 bwDraco는 다음과 같은 답변을 제공합니다.

이를 이기종 다중 처리 (HMP)라고하며 모바일 장치에서 널리 채택하고 있습니다. big.LITTLE을 구현하는 ARM 기반 디바이스에서 프로세서에는 다른 성능 및 전력 프로파일을 가진 코어가 포함되어 있습니다. 즉, 일부 코어는 빠르게 실행되지만 많은 전력 (빠른 아키텍처 및 / 또는 더 높은 클럭)을 사용하는 반면, 다른 코어는 에너지 효율적이지만 느립니다 ( 느린 아키텍처 및 / 또는 낮은 클럭). 특정 지점을 지나면 성능이 향상 될 때 전력 사용량이 불균형 적으로 증가하는 경향이 있기 때문에 유용합니다. 여기서 아이디어는 필요할 때 성능을 발휘하고 필요없는 배터리 수명을 얻는 것입니다.

데스크탑 플랫폼에서 전력 소비는 훨씬 덜 문제가되므로 반드시 필요한 것은 아닙니다. 대부분의 응용 프로그램은 각 코어의 성능 특성이 비슷할 것으로 기대하며 HMP 시스템의 예약 프로세스는 기존 SMP (Symmetric Multi-Processing) 시스템의 예약보다 훨씬 더 복잡합니다 (기술적으로 Windows 10은 HMP를 지원하지만 주로 모바일 용입니다) ARM big.LITTLE을 사용하는 장치).

또한 오늘날 대부분의 데스크탑 및 랩톱 프로세서는 일부 버스트가 짧은 버스트 일지라도 일부 코어가 다른 코어보다 빠르게 실행되어야하는 지점까지 열적 또는 전기적으로 제한되지 않습니다. 우리는 기본적으로 개별 코어를 얼마나 빨리 만들 수 있는지에 대한 벽에 부딪 쳤으므로 일부 코어를 느린 코어로 교체하면 나머지 코어가 더 빨리 실행되지 않습니다.

하나 또는 두 개의 코어가 다른 코어 프로세서보다 빠르게 실행될 수있는 데스크탑 프로세서가 몇 개 있지만,이 기능은 현재 특정 고급 인텔 프로세서 (Turbo Boost Max Technology 3.0)로 제한되어 있으며 약간의 이득 만 있습니다. 더 빠르게 실행할 수있는 코어의 성능.

스레드가 많은 워크로드에 최적화하기 위해 크고 빠른 코어와 더 작고 느린 코어를 모두 갖춘 기존 x86 프로세서를 설계 할 수는 있지만 프로세서 설계에 상당한 복잡성이 추가되고 애플리케이션이이를 제대로 지원하지는 않습니다.

2 개의 빠른 Kaby Lake (7 세대) 코어와 8 개의 느린 Goldmont (Atom) 코어가있는 가상 프로세서를 사용하십시오. 총 10 개의 코어가 있으며 이러한 종류의 프로세서에 최적화 된 스레드가 많은 워크로드는 일반적인 쿼드 코어 Kaby Lake 프로세서보다 성능과 효율성이 향상 될 수 있습니다. 그러나 서로 다른 유형의 코어는 성능 수준이 크게 다르며 느린 코어는 AVX와 같이 빠른 코어가 지원하는 일부 명령도 지원하지 않습니다 (ARM은 큰 코어와 작은 코어가 동일한 명령어를 지원하도록하여이 문제를 방지 함) ).

다시 말하지만, 대부분의 Windows 기반 멀티 스레드 응용 프로그램은 모든 코어가 동일한 또는 거의 동일한 수준의 성능을 가지고 있으며 동일한 명령을 실행할 수 있다고 가정하므로 이러한 비대칭은 이상적인 성능을 초래할 수 있습니다. 느린 코어에서 지원하지 않는 명령어를 사용하면 충돌이 발생합니다. 인텔은 모든 코어가 모든 명령어를 실행할 수 있도록 고급 명령어 지원을 추가하기 위해 느린 코어를 수정할 수 있지만 이기종 프로세서에 대한 소프트웨어 지원 관련 문제는 해결되지 않습니다.

응용 프로그램 디자인에 대한 다른 접근 방식은 아마도 귀하의 질문에서 생각하는 것에 더 가깝게 GPU를 사용하여 응용 프로그램의 병렬 부분을 가속화합니다. OpenCL 및 CUDA와 같은 API를 사용하여 수행 할 수 있습니다. 단일 칩 솔루션의 경우 AMD는 이기종 시스템 아키텍처와 같이 기존 CPU와 고성능 통합 GPU를 동일한 칩에 결합한 APU에서 GPU 가속에 대한 하드웨어 지원을 장려합니다. 몇 가지 특수 응용 프로그램 중 하나입니다.


설명에 추가 할 것이 있습니까? 주석에서 소리를냅니다. 기술에 정통한 다른 Stack Exchange 사용자의 답변을 더 원하십니까? 여기에서 전체 토론 스레드를 확인하십시오.

이미지 제공 : Mirko Waltermann (Flickr)