2014-06-06 9 views
1

perf_event.h을 사용하여 특정 실행중인 프로세스의 IPC을 계산하는 프로그램이 있습니다. 나는 지침 카운터와 CPU_CYCLES 카운터를 읽었습니다.FLOPS는 perf_event에서 제공하는 명령어 수에 포함됩니까?

내 질문에 대한 답변은 안내문에 의해 반환 된 것입니다. 부동 소수점 연산이 포함되어 있습니까? 그렇지 않다면이 값을 어떻게 얻을 수 있습니까?

참고 : 나는 perf_event.h에 대한 을 이야기하고 있지만, 그래, 나는 또한에 대한 perf을 말하는거야 내가 언급 한 카운터 명령 perf list으로 찾을 수있는 것들입니다.

답변

1

인텔 아키텍처 (다른 사람들도 같음)에서 그렇습니다. 그렇습니다. 부동 소수점 명령어가 포함되어 있습니다. 커널 코드에서 arch/x86/kernel/cpu/perf_event_intel.c을 보면. 당신은 instructions 이벤트가 0x00c0에 매핑되는 것을 볼 수 있습니다 :

[PERF_COUNT_HW_INSTRUCTIONS]  = 0x00c0 
설명서 제 19.1이 이벤트는 Instruction retired 계산 말한다 인텔 소프트웨어 개발자, 즉 현대 실제로 흐름에 의해 필요에 따라 "증명"했다 완료 모든 지침 (이다

프로세서는 프로그램 흐름에 필요한 많은 명령을 실행합니다. 이는 "추측 실행"이라고합니다 (here 참조)

+0

* 인텔 소프트웨어 개발자 설명서 *를 몰랐습니다. 자, 이건 내 인텔 CPU와 Linux OS에 의한 해석에 대한 더 나은 이해를위한 성경입니다. 감사. –

+0

예이 문서는 Intel 프로세서를 기반으로 실행되는 Linux OS를 이해하고자하는 모든 사람에게 꼭 필요한 문서입니다. 그럼에도 불구하고 읽기가 어렵고 밀도가 매우 높습니다. –