效能評估與效能剖析

以效能計數器測量後,發現某程式的IPC(每個週期的指令數)非常低,為0.3,且最後一級快取的失誤很多。下列何者是最可能的狀況與對策的組合?

  1. A因等待記憶體,CPU停滯的時間很長。改變資料的排列方式或進行分塊(blocking),以有效利用快取
  2. B運算太快了。提高頻率
  3. C分支太少了。增加分支
查看答案與解析

正確答案:A. 因等待記憶體,CPU停滯的時間很長。改變資料的排列方式或進行分塊(blocking),以有效利用快取

現今的CPU每個週期可執行數個指令,所以IPC為0.3表示大部分時間都在等待某些東西。若最後一級快取的失誤很多,就可以認為是在長時間等待來自主記憶體的資料。將資料排在連續的位址、改變迴圈的順序、藉由分塊重複使用同樣的資料等,來減少快取失誤是有效的。

  • A. 正確。這是記憶體受限(memory-bound)的典型症狀。
  • B. 即使提高頻率,記憶體的等待也不會縮短。
  • C. 增加分支並不會改善。
練習這個領域 前往領域頁面

效能評估與效能剖析的其他題目

  1. 以效能計數器發現分支預測錯誤非常多。下列何者是適用的改善方法?
  2. 在使用效能計數器的由上而下分析(Top-down Microarchitecture Analysis)中,將CPU處理指令的槽位使用情形加以區分的大分類,下列何者正確?
  3. 程式很慢,但CPU使用率只有20%左右。最可能的原因為下列何者?
  4. 為了確認某程式是運算受限(compute-bound)還是記憶體受限(memory-bound),改變CPU的頻率來測量執行時間。若為記憶體受限,一般會得到怎樣的結果?
  5. 在屋頂線模型(Roofline model)中,得知某處理位於受記憶體頻寬限制的區域時,提升效能的方向下列何者正確?