리눅스에서 C++ 코드를 실행하고 있습니다. 내 코드에는 구조의 2D 배열이 있습니다. 배열은 무작위로 액세스됩니다. 2D 배열에 액세스 할 때 얼마나 많은 캐시 누락이 발생했는지 찾아야합니다. valgrind (결과 계산에 너무 많은 시간이 소요됨)를 제외하고이 배열의 캐시 누락 및 캐시 누락 비율을 찾는 데 도움이되는 다른 솔루션이 있습니까?2D 배열의 캐시 미스/캐시 미스 비율
0
A
답변
0
일반적으로 프로그램은 2D 배열에 액세스하는 것이 아니므로 메모리 액세스는 다른 변수를 포함합니다. 다소 효과가있을 수 있습니다.
배열 액세스가 집중적이거나 캡슐화 된 경우 간단한 시뮬레이터를 사용하여 손실률을 평가할 수 있습니다.
그렇지 않으면 도구가 필요할 수 있습니다. 필자는 동적 이진 계기 도구 인 Pin을 제안합니다.이 도구는 원칙적으로 valgrind와 유사하지만 오버 헤드는 수용 할 만하지만 분석 코드를 작성해야합니다.
또는 더 나은 선택은 인텔의 성능 분석 도구 인 Vtune이 캐시 분석을 시도하는 것입니다. 아직도, 당신은 그것을 배울 약간의 시간이 필요합니다.
0
캐시를 시뮬레이트하면 사소한 차이 (대체 정책, 프로토콜 등)로 인해 정확히 동일한 동작을 재현하지 못할 수 있습니다.
더 나은 옵션은 코드를 프로파일 링하는 것입니다. 리눅스를위한 가장 간단한 프로파일 링 도구는 아마도 perf 일 것입니다. 또한 https://perf.wiki.kernel.org/index.php/Tutorial
참조 - - 여기 꽤 괜찮은 튜토리얼있다 주어진에 대한 Are there any way to profile cache miss in linux kernel?, 그것은 캐시 성능 배열에 대한 액세스가 캡슐화되어있는 경우
관련 문제
- 1. 다차원 배열에서 캐시 미스/히트 비율 찾기
- 2. 직접지도 캐시 및 캐시 미스
- 3. cpu 캐시 성능. 상점 미스 대로드 미스
- 4. 캐시 미스, TLB 미스 및 페이지 오류
- 5. JVM에서 캐시 미스 측정
- 6. Redis 캐시 미스 동작
- 7. memcached에서로드가 심한 캐시 미스
- 8. kPFCachePolicyCacheThenNetwork 캐시 미스
- 9. 오징어 동시 캐시 미스 처리
- 10. L2 캐시 라인 미스 카운트
- 11. 데이터 캐싱 및 캐시 미스
- 12. 캐시 미스 레이트 메트릭의 차이점
- 13. matplotlib의 2D 히스토그램의 비율
- 14. 왜 캐시 미스 비율은 캐시 미스 비율에 대한 캐시 참조와 비교하여 캐시 성능에 대한 더 나은 지표입니까?
- 15. 깊은 RISC 파이프 라인에서 캐시 미스 페널티
- 16. Perfmon - 스레드 당 L2 캐시 미스
- 17. 히트 & 미스 4 방향 연관 캐시
- 18. 캐시 히트/미스 및 할당량을 객관화
- 19. C++에서 싱글턴 캐시 미스 방지
- 20. C/C++ 프로그램의 캐시 히트/미스
- 21. 2D 배열의 2D 배열 CUDA
- 22. 2D 배열의 PictureBox 지정하기
- 23. 2D 배열의 포인터 C
- 24. PHP에서 2D 배열의 합계
- 25. 2D 배열의 길이
- 26. 2D 배열의 요소 비교
- 27. 2d 배열의 문자 이동
- 28. 2D 배열의 입력 행
- 29. 2d 배열의 팝하는 큐
- 30. Java에서 2D 배열의 인덱스
를 확인하기 위해 구체적인 예 통계의 목록을 포함, 어쩌면 간단한 캐시 시뮬레이터 쓰기 캐시 속성 및 배열 액세스에 후크? – JarkkoL
진정한 랜덤 액세스라면 hit/miss 비율은 단지 cache_size/array_size입니다. –