2

매우 일반적인 질문 일 수도 있지만 캐시 벤치 마크 코드에서 얻은 커브에 대한 설명이 필요합니다. 여기서 목표는 캐시 라인 크기를 찾는 것입니다. 여기에서 코드를 사용했습니다 : (h ** ps : //github.com/jiewmeng/cs3210-assign1/blob/master/cache-l1-line.cpp)캐시 라인 크기

이것은 내가 얻은 곡선입니다. 내 컴퓨터에서 코드를 실행 (Macbook Pro, 코어 i7 - 캐시 라인 크기는 64 바이트 - L1 데이터 캐시는 32KB).

  • The Time vs different stride size curve

    나는 피크가 128 바이트에서가 아닌 64 바이트에서 발생 생각합니다. 그것이 사실이라면 왜 그런지 알고 싶습니까?
  • 왜 시간이 512 바이트로 줄었습니까?

는 업데이트 :

나는 또한 L1 및 L2 캐시의 크기를 결정하기 위해 코드를 달렸다. 다음은 데이터를 문서화하는 그림입니다. 보시다시피, 32KB (L1 캐시 크기)와 256KB (L2 캐시 크기)의 두 가지 피크가 있습니다.

질문 : L3 공유 캐시의 크기를 찾을 수있는 방법이 있는지

궁금하고있다.

Cache size figure.

감사

답변

1

은 내가 128B 피크 인해 공간 프리 페치에 가능성이 높습니다 같은데요. 당신은 섹션에서 인텔의 'Optimization guide에서 볼 수있는이 페처는 128 바이트로 정렬 청크를 완료 한 쌍 라인 L2 캐시에 가져온 모든 캐시 라인을 완성하기 위해 노력하고

2.1.5.4

이 프리 페치가 항상 실행되는 것은 아니기 때문에 클린 도약이 아니며, 실행될 때에도 L2로만 프리 페치되지만 메모리에서 페치하는 것보다 훨씬 좋습니다. 이 경우를 대비하여 프리 페치를 비활성화 할 수 있습니다 (일부 시스템에서는이를 지원하지 않을 수도 있지만 BIOS 또는 다른 방법을 통해).

L3 크기는 정확한 모델을 지정하지 않았지만 4M L3 이상을 가지고 있다고 생각합니다. 곡선을 계속 유지하고 점프하는지 확인하십시오.

편집은 그냥 다른 일을 발견 - 당신의 K * i 서 표현은 아마 당신의 액세스 패턴이 예상대로 순환하지 않을 수 있습니다 의미하는 최대 범위에서하는 int 넘쳐있다.

1

내 BusSpeed ​​벤치 마크는 버스트가 버스에서 읽기 보여주고, 다른 진보에서 캐시 크기 및 성능을 확인하기위한 것이었다 :

:

http://www.roylongbottom.org.uk/busspd2k%20results.htm

다음 8메가바이트의 L3와 코어 i7에 대한 결과는

Memory Reg2 Reg2 Reg2 Reg2 Reg1 Reg2 Reg1 Reg2 Reg1 Reg8 
    KBytes Inc64 Inc32 Inc16 Inc8 Inc4 Inc4 Inc4 Inc4 Inc8 Inc8 
    Used MB/S MB/S MB/S MB/S MB/S MB/S MB/S MB/S MB/S MB/S 

     4 10025 10800 11262 11498 11612 11634 5850 11635 23093 23090 
     8 10807 11267 11505 11627 11694 11694 5871 11694 23299 23297 
    16 11251 11488 11620 11614 11712 11719 5873 11718 23391 23398 
    32 9893 9853 10890 11170 11558 11492 5872 11466 21032 21025 
    64 3219 4620 7289 9479 10805 10805 5875 10797 14426 14426 
    128 3213 4805 7305 9467 10811 10810 5875 10805 14442 14408 
    256 3144 4592 7231 9445 10759 10733 5870 10743 14336 14337 
    512 2005 3497 5980 9056 10466 10467 5871 10441 13906 13905 
    1024 2003 3482 5974 9017 10468 10466 5874 10467 13896 13818 
    2048 2004 3497 5958 9088 10447 10448 5870 10447 13857 13857 
    4096 1963 3398 5778 8870 10328 10328 5851 10328 13591 13630 
    8192 1729 3045 5322 8270 9977 9963 5728 9965 12923 12892 
    16384 692 1402 2495 4593 7811 7782 5406 7848 8335 8337 
    32768 695 1406 2492 4584 7820 7826 5401 7792 8317 8322 
    65536 695 1414 2488 4584 7823 7826 5403 7800 8321 8321 
131072 696 1402 2491 4575 7827 7824 5411 7846 8322 8323 
262144 696 1413 2498 4594 7791 7826 5409 7829 8333 8334 
524288 693 1416 2498 4595 7841 7842 5411 7847 8319 8285 
1048576 704 1415 2478 4591 7845 7840 5410 7853 8290 8283 

        End of test Fri Jul 30 16:44:29 2010 

    CPUID and RDTSC Assembly Code 
    CPU GenuineIntel, Features Code BFEBFBFF, Model Code 000106A5 
    Intel(R) Core(TM) i7 CPU   930 @ 2.80GHz Measured 2807 MHz