Vlákno názorů k článku Test: paměti mají čtyřistakrát delší latenci než procesory od Jirka - Neni tenhle test vuci tem procesorum s cachi...

  • Článek je starý, nové názory již nelze přidávat.
  • 16. 2. 2009 7:58

    Jirka (neregistrovaný)
    Neni tenhle test vuci tem procesorum s cachi <=1MB trochu nefer? To, ze Intel(R) Xeon(R) CPU 5160 @ 3.00GHz se 4 MB cache "se nenecha zmast" nemusi preci znamenat, ze je chytrejsi, ale pouze to, ze ma dalsi 3 MB cache k dispozici.

    Nebo se mylim? Jak test dopadne pri 4 MB dat? Bude to jen zhruba ctyrnasobek, nebo to take uplne ulitne?
  • 17. 2. 2009 14:20

    bez přezdívky
    Sice jsem ted linej to zkusit, ale myslim ze to dopadne stejne jako s 1MB. Test 1pass cache flush vypada takto:

    (1) Nejdriv se alokuje 150MB pole, to se vynuluje a pak precte

    (2) Pak teprv se dela vlastni test na datech (v jinem poli) s PITCH (na jehoz velikosti uz by to nemelo moc zalezet, pokud se predtim povedlo vyprazdnit cache).

    Kdyby cache byla uplne hloupa a pri prvnim pristupu k nejakemu cislu si ho vzdy zapamatovala (to znamena ze musi jine vyhodit) tak bych ji tim 150MB polem vyprazdnil. Jenze u Intelu k tomu nedojde a musi se s tim cvicit daleko vic aby cache pochopila ze ma na predchozi data zapomenout.

    PS: to 150MB pole se pochopitelne zapisuje a cte s incrementem 4 byty.
  • 17. 2. 2009 21:28

    bez přezdívky
    Tak jsem premohl lenost. Zaver si udelejte sam. Mozna vam k tomu pomuze kdyz si povsimnete, ze i kdyz vyprazdnuju cache pomoci 2GB pole tak dostavam pri dukladnem vyprazdneni stejne casy. Pro 1pass flush se postupne prodluzuji, ale stale jsou lepsi nez ma dukladny flush. Pritom oboji pracuji na stejne velikem poli. Jediny rozdil je ze dukladne vyprazdneni pote co provede 1pass flush pokracuje tim ze intenzivne pouziva ruzne mensi casti toho pole.
    
    
    POCITAC FIREBALL1 (4jadro)
    model name      : Intel(R) Xeon(R) CPU            5160  @ 3.00GHz
    cpu MHz         : 2992.494
    cache size      : 4096 KB
    cache_alignment : 64
    
    mazaci blok velikosti 150MB:
    
          AVG CPU CLOCKS FOR    DEPENDENT    INDEPENDENT
        32bit load from L1-cache    1.001    pitch=4B 
        typical L1-miss load       64.689    pitch=74B
        load from RAM  142.65ns   426.877    pitch=1048572B
        load from RAM    9.65ns    28.889    pitch=1048572B (1-pass cache flush)
    
    mazaci blok velikosti 1GB:
    
        32bit load from L1-cache    1.001    pitch=4B 
        typical L1-miss load       64.366    pitch=74B
        load from RAM  142.02ns   424.983    pitch=1048572B
        load from RAM   58.34ns   174.595    pitch=1048572B (1-pass cache flush)
    
    mazaci blok velikosti 2GB:
    
        32bit load from L1-cache    1.001    pitch=4B 
        typical L1-miss load       64.672    pitch=74B
        load from RAM  142.19ns   425.489    pitch=1048572B
        load from RAM   98.33ns   294.239    pitch=1048572B (1-pass cache flush)