2010-04-05 3 views
14

L1 및 L2 캐시 (데이터 캐시)의 크기와 순서를 프로그래밍 방식으로 측정 할 수 있습니까? 그것은 (단지 P4 +와 같은) 하드웨어 프리 페치 유닛을 가질 수있다 L1 및 L2 캐시의 크기 및 방향 순서 측정

    • 그것은 L1 및 L2 캐시 (L3 캐시를 공유 할 수도있다)하고있다,
    • : 시스템에 대한

      가정

    • 안정적인 클럭 소스 (tickcounter 또는 gettimeofday에 적합한 HPET)가 있습니다.

    OS (Linux, Windows 또는 기타 항목 일 수 있음)에 대한 가정은 없으며 POSIX 쿼리를 사용할 수 없습니다.

    언어는 C이며 컴파일러 최적화가 비활성화 될 수 있습니다.

  • +3

    매우 흥미로운 질문입니다. +1 –

    +1

    빌드시 캐시 크기를 측정하는 라이브러리가 있습니다. ATLAS http://math-atlas.sourceforge.net/입니다. 거기에 몇 가지 정보도 있습니다. –

    +0

    조회를 통한 프로세서 식별? (또는 부정 행위입니까?) –

    답변

    6

    나는 캐시 크기를 결정하기 위해 반복적으로 증가하는 메모리에 메모리에 액세스하는 것만으로도 연관성을 결정할 수 있다고 생각합니다.

    그래서 매우 짧은 메모리 세그먼트에 액세스하고 액세스가 느려질 때까지 크기를 두 배로 늘리려고합니다. 액세스가 느려질 때마다 다른 수준의 캐시 크기가 결정됩니다.

    +2

    하지만 하드웨어 프리 페치를 어떻게 바꿀 수 있습니까? 어떤 크기를 가려 주나요? – osgx

    1

    STREAM benchmark은 유용하거나 흥미 롭습니다.

    +0

    마크, 제발, http://stackoverflow.com/questions/2517694/can-the-stream-and-gups-single-cpu-benchmark-use-non-local-memory-in-numa-machi를 한번보세요. – osgx

    1

    질문은 시대에 뒤쳐져 있지만 대답은 here입니다.

    +0

    오직 좋은 그림이지만 해결책은 아닙니다. 또한, 나는 얻지 못한다. 그의 그래프에서 길을 어떻게 얻는 지. – osgx

    +2

    이것이 이론적으로 질문에 대답 할 수 있지만 여기에 대답의 핵심 부분을 포함하고 참조 용 링크를 제공하는 것이 바람직합니다 (http://meta.stackexchange.com/q/8259). –