效能評估與效能剖析

以效能計數器發現分支預測錯誤非常多。下列何者是適用的改善方法?

  1. A在迴圈中再增加分支
  2. B將資料排序,使分支的結果更容易預測,或是以條件選擇或運算來消除分支本身
  3. C減少快取的容量
查看答案與解析

正確答案:B. 將資料排序,使分支的結果更容易預測,或是以條件選擇或運算來消除分支本身

一旦分支預測錯誤,CPU就必須丟棄推測性執行的指令並重新來過,每次會損失十幾個週期以上。若資料是隨機的,像「值在128以上的話」這類分支的結果就無法預測。若事先將資料排序,結果會趨於一致而使預測容易命中;若改用條件選擇指令或位元運算來撰寫,分支本身就會消失。也可以促使編譯器進行這類轉換。

  • A. 預測錯誤可能會更多。
  • B. 正確。使其容易預測,或是消除分支。
  • C. 與分支預測無關,而且效能會下降。
練習這個領域 前往領域頁面

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

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