홈페이지 » 어떻게 » 멀티 코어 프로세서에서 프로세서 속도를 어떻게 계산합니까?

    멀티 코어 프로세서에서 프로세서 속도를 어떻게 계산합니까?

    경제적 인 소비자 급 멀티 코어 프로세서의 출현은 많은 사용자들에게 질문을 제기합니다 : 어떻게 멀티 코어 시스템의 실제 속도를 효과적으로 계산합니까? 4 코어 3Ghz 시스템은 실제로 12Ghz입니까? 우리가 조사 할 때 계속 읽어라..

    오늘의 질문 및 답변 세션은 Q & A 웹 사이트의 커뮤니티 드라이브 그룹 인 Stack Exchange의 하위 부문 인 수퍼 유저의 도움으로 이루어졌습니다..

    질문

    수퍼 유저 독자 NReilingh는 멀티 코어 시스템의 프로세서 속도가 실제로 어떻게 계산되는지 궁금했습니다.

    예를 들어 3GHz에서 실행되는 4 개의 코어가있는 프로세서는 실제로 12GHz에서 실행되는 프로세서입니다.?

    나는 Mac이 1Ghz 기계로만 광고되고 있다고 주장하는 지인과 함께 한 번 "Mac vs. PC"논쟁을 들었습니다. (이 주제의 중점은 중학교 때였습니다.) 500MHz에서 실행되는 프로세서 G4.

    당시 나는 이것이 대부분의 사람들에게 명백한 것이라고 생각하는 이유 때문에 이것이 돈벌이라는 것을 알고 있었지만 "6 코어 x 0.2GHz = 1.2Ghz"의 효과에 대해이 웹 사이트에 대한 의견을 보았습니다. 이것에 대한 진정한 대답이있다..

    따라서 이것은 클록 속도 계산의 의미에 관한 다소 철학적 인 / 깊은 기술적 인 질문입니다. 두 가지 가능성이 있습니다.

    1. 각 코어는 실제로 초당 x 계산을 수행하므로 총 계산 수는 x (코어)입니다..
    2. 클록 속도는 오히려 모든 코어가 동일한 속도로 실행되는 한 프로세서가 1 초의 공간에서 처리하는 사이클 수를 의미합니다. 코어가 몇 개라도 상관없이 각 클럭 사이클의 속도는 동일하게 유지됩니다. . 즉, Hz = (코어 1Hz + 코어 2Hz + ...) / 코어.

    그렇다면 총 클럭 속도를 나타내는 적절한 방법은 무엇이며, 더 중요한 것은 멀티 코어 시스템에서 단일 코어 속도 명명법을 사용할 수도 있다는 것입니다?

    대답

    수퍼 유저 기부자 모쿠 바이 (Mokubai)는 물건을 정리하는 데 도움이됩니다. 그는 쓴 :

    쿼드 코어 3GHz 프로세서가 12GHz 단일 코어만큼 빠르지 않은 주된 이유는 해당 프로세서에서 실행되는 작업이 단일 스레드 또는 다중 스레드로 작동하는 방식과 관련이 있습니다. Amdahl의 법칙은 실행중인 작업 유형을 고려할 때 중요합니다..

    당신이 본질적으로 직선적 인 작업을 가지고 있고 (매우 간단한 프로그램) 정확하게 단계별로 수행해야한다면,

    10 : a = a + 1
    20 : 10 고토 

    그런 다음 작업은 이전 통과 결과에 크게 의존하며 값의 손상없이 자체의 여러 복사본을 실행할 수 없습니다. '에이' 각 사본은 '에이' 다른 시간에 그것을 다시 쓰는 것. 이렇게하면 작업이 단일 스레드로 제한되므로 주어진 코어에서 작업이 단일 코어에서만 실행될 수 있습니다. 여러 코어에서 실행될 경우 동기화 손상이 발생합니다. 듀얼 코어 시스템의 CPU 전력의 1/2, 또는 쿼드 코어 시스템의 1/4로 제한됩니다.

    이제 다음과 같은 작업을 수행하십시오.

    10 : a = a + 1
    20 : b = b + 1
    30 : c = c + 1
    40 : d = d + 1
    50 : 10 고토 

    이 모든 라인은 독립적이며 처음과 같은 4 개의 개별 프로그램으로 나눌 수 있으며 동시에 동기화 문제없이 코어 중 하나의 전체 전력을 효과적으로 사용할 수있는 각각의 프로그램을 실행할 수 있습니다. 여기서는 Amdahl의 법칙 그것에 들어온다..

    그래서 무언가 계산을하고있는 단일 스레드 응용 프로그램을 가지고 있다면 12GHz 프로세서 하나가 손을 이길 수 있습니다. 어떻게 든 작업을 별도의 부품으로 나누고 멀티 스레드로 만들면 4 개의 코어가 가까이에 올 수 있지만 도달 할 수는 없습니다. Amdahl의 법칙과 동일한 성능.

    멀티 CPU 시스템이 제공하는 주요 기능은 응답 성입니다. 하나의 핵심 시스템에서 열심히 일하면서 시스템이 느려질 수 있습니다. 대부분의 시간이 한 태스크에 의해 사용될 수 있고 다른 태스크는 큰 태스크 사이에서 짧은 버스에서만 실행되어 시스템이 느려지거나 불안해 보입니다. . 멀티 코어 시스템에서 과중한 작업은 하나의 코어를 얻고 다른 모든 태스크는 다른 코어에서 재생하여 작업을 빠르고 효율적으로 수행합니다..

    "6 코어 x 0.2GHz = 1.2Ghz"의 인수는 작업이 완전히 평행하고 독립적 인 경우를 제외하고는 모든 상황에서 쓰레기입니다. 고도로 병렬 인 많은 수의 작업이 있지만 여전히 몇 가지 형태의 동기화가 필요합니다. Handbrake는 사용 가능한 모든 CPU를 사용하는 데 매우 뛰어나지 만 다른 스레드가 데이터로 채우고 완료된 데이터를 수집하는 핵심 프로세스가 필요없는 비디오 트랜스 코더입니다.

    1. 각 코어는 실제로 초당 x 계산을 수행하므로 총 계산 수는 x (코어)입니다..

    각 코어는 작업량이 적당하다고 가정 할 때 초당 x 계산을 수행 할 수 있습니다. 선형 프로그램에서 모두 1 코어입니다..

    1. 클록 속도는 오히려 모든 코어가 동일한 속도로 실행되는 한 프로세서가 1 초의 공간에서 처리하는 사이클 수를 의미합니다. 코어가 몇 개라도 상관없이 각 클럭 사이클의 속도는 동일하게 유지됩니다. . 즉, Hz = (코어 1Hz + 코어 2Hz + ...) / 코어.

    나는 4 x 3GHz = 12GHz, 수학이 작동한다고 생각하는 것이 잘못이라고 생각하지만, 사과를 오렌지와 비교하고 합계가 정확하지 않은 경우, GHz는 모든 상황에 대해 단순히 더할 수 없습니다. 나는 그것을 4x 3GHz = 4 x 3GHz로 바꿀 것이다..

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