하이퍼스레딩이 비활성화된 경우에도 CPU가 하이퍼스레딩을 지원하는지 여부를 Linux에서 어떻게 확실하게 알 수 있습니까?

하이퍼스레딩이 비활성화된 경우에도 CPU가 하이퍼스레딩을 지원하는지 여부를 Linux에서 어떻게 확실하게 알 수 있습니까?

다음은 프로세서가 HT를 지원하는지 여부, 활성화 여부를 확인하는 데 사용하는 방법입니다.

# dmidecode -t processor | grep "Hardware Thread" | wc -l

결과가 0이면 프로세서가 HT를 지원하지 않는 것입니다. 결과 > 0이면 결과는 0입니다.

그러나 나는 이것이 일반적으로 신뢰할 수 있는지 확신하지 못합니다. 적어도 Ubuntu 16.04, 18.04 및 SLES 12, 일부 서버(Xeon) 및 다른 Intel 프로세서를 사용하는 노트북(예: Core i5)에서 이를 확인한 결과 정상적으로 작동합니다. 그러나 "하드웨어 스레드"라는 정확한 텍스트가 나열되어 있는지 확인하면 dmidecode모든 프로세서(예: AMD, 어쩌면 ARM까지?) 및 모든 배포판에서 안정적으로 작동합니까? 더 안전한 방법이 있나요?

내가 아는 한, HT 플래그는 확실히 나열되어 있습니다.lscpuHT를 지원하지 않는 Core i5 프로세서에도 나열되어 있으므로 전혀 실행 가능한 접근 방식이 아닙니다.

추신. 다음 게시물은 이 주제를 중심으로 다루지만 하이퍼스레딩이 활성화되었는지 여부는 또 다른 문제입니다. 하이퍼스레딩이 활성화되어 있는지 확인하세요., Ubuntu에서 하이퍼스레딩이 활성화되었는지 테스트하는 방법은 무엇입니까?

답변1

짐작할 수 있듯이 ht플래그는 신뢰할 수 있는 표시기가 아닙니다. 하이퍼스레딩 지원을 나타내지 않습니다."물리적 패키지는 Intel 하이퍼스레딩 기술 및/또는 멀티코어를 지원할 수 있습니다"라고 표시됩니다..

"하드웨어 스레드"는 dmidecode프로세서 특성 값의 특정 플래그에 해당합니다.SMBIOS(섹션 7.5.9 참조)하드웨어 지원을 안정적으로 표시해야 합니다., 모든 형태의 단일 패키지 다중 처리는 아닙니다. 따라서 SMBIOS를 사용하는 플랫폼에서는

dmidecode -t processor | grep -q "Hardware Thread"

기본 SMBIOS 정보만큼 신뢰할 수 있는 지표입니다.

그런데 다음을 사용할 필요가 없습니다 wc.

if dmidecode -t processor | grep -q "Hardware Thread"; then echo HT supported; fi

관련 정보