AMD 프로세서의 프로세서/코어 수가 비정상적입니다.

AMD 프로세서의 프로세서/코어 수가 비정상적입니다.

컴퓨터에 하이퍼스레딩이 활성화되어 있는지 확인하고 싶습니다. 이를 결정하기 위해 나는 온라인에서 찾은 다음과 같은 조언을 사용했습니다.

physical_proc_count = `grep "physical id" /proc/cpuinfo | sort -u  | wc -l`
logical_proc_count = `grep "processor" /proc/cpuinfo | wc -l`
core_count = `grep "core id" /proc/cpuinfo | sort -u | wc -l`

논리 프로세서 수가 코어 수의 두 배가 되면 하이퍼스레딩이 활성화된다는 개념입니다.

나는 AMD 프로세서에 하이퍼스레딩이 없다는 사실을 눈치채지 못할 만큼 순진했습니다. "하이퍼-스레딩"이라는 정확한 기술이 없다는 것을 알고 있지만 동일한 기능이 있다고 잘못 생각했습니다. 그래서 4개의 AMD Opteron 프로세서 6276이 있는 시스템에서 스크립트를 실행했고 결과는 다음과 같았습니다.

  • 물리적 CPU 4개
  • 논리 CPU 64개
  • 물리적 CPU당 코어 8개

8개 코어 == 물리적 CPU당 32개 코어. 그러나 논리적 CPU는 64개입니다. 그래서 저는 그 기계에 하이퍼스레딩이 활성화되어 있다고 결론을 내렸습니다. 이는 /proc/cpuinfo의 프로세서 플래그에 "ht" 플래그가 포함되어 있다는 사실로 인해 더욱 악화됩니다. 나는 이후 AMD 칩의 경우 "HyperTransport"를 의미한다는 것을 알게 되었습니다. 오!

한 동료가 내 실수를 알아채고 AMD 프로세서에는 하이퍼스레딩이 없다고 정중하게 말했습니다. 왜 위의 숫자가 나오는지 아직도 이해가 안 됩니다.

프로세서의 기술 사양을 확인하면 각 물리적 CPU에는 실제로 16개의 코어가 있다고 나와 있습니다.http://products.amd.com/en-us/OpteronCPUDetail.aspx?id=759

기본적으로 출력은 하이퍼스레딩이 있는 것처럼 보입니다. 내가 뭘 잘못했나요? 모든 AMD 및 Intel(HT 및 비HT) 칩의 실제 개수를 얻기 위해 /proc/cpuinfo를 어떻게 구문 분석할 수 있습니까?

답변1

AMD의 Bulldozer/Piledriver/Roller/Excavator 마이크로아키텍처는 최신 및 최신 프로세서(6276 포함)에 사용되며 "모듈"은 특정 구성 요소를 공유하는 "코어" 쌍입니다. 이러한 모듈은 단일 하이퍼 스레드 코어와 진정한 독립 코어 쌍 사이에 속하며 성능은 애플리케이션에 따라 1개 코어와 2개 코어 사이에서 다양합니다.

AMD는 이러한 각 모듈을 Opteron 6276 16코어라고 부르는 두 개의 코어로 판매합니다. 대신 일부 소프트웨어는 각 모듈을 두 개의 논리 코어가 있는 단일 물리적 코어로 취급하며 Linux가 이를 수행하는 것으로 보입니다.

관련 정보