2014-01-17 5 views
5

Linux를 실행하는 Intel 또는 AMD x86-64 시스템에서/CPU가 가지고있는 하드웨어 성능 카운터의 수를 찾는 방법은 무엇입니까?CPU의 하드웨어 성능 카운터 수를 확인하십시오.

일부 응용 프로그램을 실행하는 동안 Linux 성능 카운터 데이터를 수집하기 위해 Linux perf 도구를 사용하고 싶습니다. perf 위키의 tutorial은 내 CPU에 성능 카운터보다 많은 하드웨어 이벤트 (플래그를 사용하여 perf stat 또는 perf record)를 지정하면 실행 중에 카운터를 통해 이러한 이벤트가 다중화되어 모두 추적 할 수 있다고 말합니다 단일 perf 명령을 실행하는 동안 모든 카운터가 항상 활성화되어 있지 않으므로 정확성이 떨어질 수 있습니다. (여기서는 캐시 및 TLB 동작과 같은 하드웨어 이벤트에 신경을 썼습니다. 크고 무제한의 커널 소프트웨어 추적 점을 부정확하게 추적 할 수 있음을 알고 있습니다.)

내 프로세서 모델을 발견 한 경우이 정보를 찾을 수있는 Intel/AMD 웹 사이트가 있습니까? 하드웨어 카운터의 수를 확인하기 위해 시스템에서 실행할 수있는 간단한 명령이 있습니까? cat /proc/cpuinfox86info -a의 출력을 검사했지만이 정보를 찾을 수 없습니다. 인텔 프로세서에 관한

답변

9

을 수행 할 수 있습니다 :이 인텔 documentation manual chapter 18

  • 보기 만 읽기 때문에 쉬운 일이 아니다.

  • cpuid instruction 사용 - 매개 변수를 올바르게 설정하고 결과를 얻으려면 어셈블리 코드를 작성해야합니다.

  • papi library을 다운로드하여 컴파일하고 설치하고 papi_avail | more을 실행하십시오. 내 노트북에 결과는 다음과 같습니다

PAPI 버전 : 5.1.1.0

공급 업체 문자열 코드 : GenuineIntel (1)

모델 문자열 코드 : 인텔 (R) 코어 (TM) i5-2520M CPU @ 2.50GHz (42)

CPU 버전 : 7.000000

CPUID 정보 : 가족 6 모델 : 42 스테핑 7

CPU 최대 메가 헤르츠 : 2,494

CPU 최소 메가 헤르츠 : 2,494

HDW 스레드 코어 당 2

코어 소켓 당 : 2

NUMA 노드 : 1

노드 당 0

의 CPU : 4 개

전체의 CPU : 4

의 VM에서 실행 : 없음

번호 하드웨어 카운터 : 11 개

최대 멀티 플렉스 카운터 : 64