2012-02-02 1 views
1

JGF 벤치 마크에서 나온 자바 버전 희소 행렬 곱셈 프로그램을 검사 중입니다. 나는 많은 종류의 CPU 주파수에서이 프로그램을 돌린다. 나는 또한이 프로그램에 대한 몇 가지 프로파일을 수행한다. 캐시 집중도가 나쁘고 메모리 사용량이 많기 때문에이를 메모리 집약적 인 프로그램으로 분류합니다. 더 느린 주파수에서 실행되는 이런 종류의 프로그램의 실행 시간은 실속 할 때 CPU 사이클을 낭비 할 수 있기 때문에 더 빠른 주파수에 비해 약간 줄여야합니다. 그러나이 프로그램의 실행 시간은 실험에서 CPU 빈도에 비례합니다. 그 이유는 무엇입니까?희소 행렬 곱셈 실행 시간

매트릭스 (어레이)의 크기는 500000이고이 프로그램은 3 층 캐시가있는 i7-920에서 실행되었습니다. 코어 당 32KB L1 데이터 2KB, L1 명령어, 코어 당 L2 256KB 및 L3 8MB 공유 캐시가 있습니다. '자바 -cp에 대한

성능 카운터 통계 :

나는 또한 반환 한에 의해 실행 통계를 얻었다. JGFSparseMatmultBenchSizeC '- 어쩌면 그것에서 어떤 역할을 할 수

83925.084119 task-clock-msecs   #  1.001 CPUs 
     2,045 context-switches   #  0.000 M/sec 
      28 CPU-migrations   #  0.000 M/sec 
     29,687 page-faults    #  0.000 M/sec 
223,130,573,396 cycles     # 2658.688 M/sec (scaled from 66.68%) 
66,679,432,987 instructions    #  0.299 IPC (scaled from 83.33%) 
12,779,607,690 branches     # 152.274 M/sec (scaled from 83.32%) 
    11,389,605 branch-misses   #  0.089 %  (scaled from 83.32%) 
11,056,332,293 cache-references   # 131.740 M/sec (scaled from 83.34%) 
3,847,329,243 cache-misses    #  45.842 M/sec (scaled from 83.35%) 

    83.816412311 seconds time elapsed 
+0

아마도 캐시가 메모리 액세스를 무의미하게 만들 정도로 크다. 문제점 크기와 캐시 크기에 대한 정보를 제공하지 않았습니다. –

+0

캐시 위치가 좋지 않다고 어떻게 판단 했습니까? 좋은 패키지는 캐시 사용을 최적화해야합니다. 또한 귀하의 데이터는 어떻습니까? 구조가 매우 복잡하거나 반복적 인 경우 구현시이를 감지하여 더 적은 메모리 액세스를 위해 최적화 할 수 있습니다. – Iterator

+0

perf로 실행 통계를 프로파일했습니다. 무거운 캐시 미스가 있으며이 프로그램의 IPC가 낮습니다. –

답변

0

정수 객체 0에 가까운 값을 나타내는 메모리를 절약하기 위해 JVM에 의해 캐시 할 수있다.