效能評估與效能剖析
以效能計數器測量後,發現某程式的IPC(每個週期的指令數)非常低,為0.3,且最後一級快取的失誤很多。下列何者是最可能的狀況與對策的組合?
- A因等待記憶體,CPU停滯的時間很長。改變資料的排列方式或進行分塊(blocking),以有效利用快取
- B運算太快了。提高頻率
- C分支太少了。增加分支
查看答案與解析
正確答案:A. 因等待記憶體,CPU停滯的時間很長。改變資料的排列方式或進行分塊(blocking),以有效利用快取
現今的CPU每個週期可執行數個指令,所以IPC為0.3表示大部分時間都在等待某些東西。若最後一級快取的失誤很多,就可以認為是在長時間等待來自主記憶體的資料。將資料排在連續的位址、改變迴圈的順序、藉由分塊重複使用同樣的資料等,來減少快取失誤是有效的。
- A. 正確。這是記憶體受限(memory-bound)的典型症狀。
- B. 即使提高頻率,記憶體的等待也不會縮短。
- C. 增加分支並不會改善。