簡體   English   中英

緩存行大小

[英]Cache line size

這可能是一個非常常見和簡單的問題,但是我需要對我剛剛從緩存基准測試代碼中獲得的曲線進行一些解釋。 這里的目標是找到緩存行大小。 我從這里使用了代碼:(h ** ps://github.com/jiewmeng/cs3210-assign1/blob/master/cache-l1-line.cpp)

這是我在機器上運行代碼所獲得的曲線(具有i7核心的Macbook Pro-緩存行大小為64byte-L1數據緩存為32KB)。

時間與步幅大小曲線

  • 我認為峰值發生在128字節而不是64字節上。 如果是真的,我想知道為什么嗎?
  • 為什么時間減少到512字節?

更新:

我還運行了一個代碼來確定L1和L2緩存的大小。 這是用於記錄數據的圖。 如您所見,在32KB(L1緩存大小)和256KB(L2緩存大小)中有兩個峰值。

題:

我想知道是否有任何方法可以找到L3共享緩存的大小。

緩存大小圖

謝謝

我猜想128B峰值很可能是由於空間預取引起的。 您可以在《英特爾的優化指南 》第2.1.5.4節中看到

該預取器力求用成對的行來完成提取到L2高速緩存的每條高速緩存行,從而將其完成為128字節對齊的塊

這不是一個干凈的跳轉,因為這種預取並不總是會觸發,即使是這樣,它也只會預取到L2中,但比從內存中獲取要好得多。 為確保確實如此,您可以禁用預取(通過BIOS或其他方式,盡管某些系統可能不支持該功能),然后再次檢查。

至於L3的大小-您沒有指定確切的型號,但我想您有超過4M的L3-只需保持曲線前進,看看它是否跳躍即可。

編輯

剛剛注意到另一件事-您的k * i表達式可能在最大范圍內溢出int,這意味着您的訪問模式可能不會像您期望的那樣循環。

我的BusSpeed基准旨在確定不同步幅下的緩存大小和性能,以顯示總線上的突發讀取:

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

以下是具有8 MB L3的Core 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM