這可能是一個非常普遍和簡單的問題,但我需要一些關於我剛剛從高速緩存基準測試代碼中獲得的曲線的解釋。這裏的目標是找到緩存行大小。我用這裏的代碼: (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共享緩存的大小。
感謝