1
A
回答
2
對於預測變量,不存在「更好」這樣的事情,您可以針對給定的工作負載/應用程序或像基準測試套件這樣的一組變量來問哪一個性能更好(誤預測性更低)。性能還取決於參數(表格大小,歷史長度等)。
這兩者是完全不同的,每個人都可以更好地適應不同的情況。你可以說雙峯可能學習速度更快,衝突更少,但全局變體更加精細,並且有更好的機會捕捉複雜的模式。然而它有更高的碰撞,因爲表格代表了各種部分歷史,並且在某些情況下收斂的可能性較低。
這是更好地展示這個例子強/弱點:
for (i=0; i<N; ++i) {
if (A[i] < 50)
do_stuff();
if (A[i] > 50)
do_other_stuff()
}
的分支機構都依賴數據(假設在[1..100]中的數據是隨機分佈均勻),所以雙峯不可能捕捉到它們。然而,一個全局預測器很容易知道第二個分支取決於第一個分支的結果(如果第一個分支取第二個分支不會被取用,如果第一個分支不是第二個分支很有可能被取用) A[i]==50
僅有1%的機會) 現在採取相同的代碼,但假設A是排序的,雙峯將很容易贏,幾乎所有的預測都能打上幾乎所有的預測。我們應該怎麼做?當然,建立一個混合模式!當前許多高性能CPU使用多個,儘管在結果之間進行組合/選擇的算法可能不能在線獲得。德標誌含義如大小和功耗 - 這些當然也取決於實施的參數。
相關問題
- 1. 什麼導致分支預測中的峯值Vtune
- 2. 「樓梯」分支的好處是什麼?
- 3. 爲什麼我不是分支預測的受害者?
- 4. 模擬器支持藍牙設備的預測是什麼?
- 5. 什麼是更好的,動態SQL還是在哪裏?
- 6. 什麼是更好的:自己做還是使用可用包?
- 7. 什麼是最好的分類器
- 8. 爲什麼ALS.trainImplicit爲顯式評分提供更好的預測?
- 9. 什麼是最好的可可類用於檢測雙擊?
- 10. 「驗證分支」是什麼?
- 11. 什麼是在分支
- 12. GitHub:什麼是「wip」分支?
- 13. 什麼是分支和commiting
- 14. 分支預測
- 15. 分支預測
- 16. 什麼是更好的垂直分頻器解決方案?
- 17. 以PHP存儲價格。什麼是更好的雙或弦?
- 18. Qt還是j2me更好?
- 19. 什麼是正確預測分支的成本(在任何CPU上)
- 20. 還有什麼更好的?使用asp.net的提供者還是不使用?
- 21. 重新使用視圖控制器更好還是更好地分離邏輯
- 22. 有什麼更好?一個大場還是很多小?
- 23. EF 4.1/Linq-to-SQL:什麼更好:使用Equals還是==?
- 24. 什麼是不在錯誤分支中工作的好方法?
- 25. 聲明是更好還是相同?
- 26. 寫入Integer還是隻是Int更好?
- 27. 什麼是好的GUI測試儀?
- 28. 什麼是雙V模型測試?
- 29. 「origin」是本地分支還是遠程分支之後的分支?
- 30. 我的情況最好是什麼:矢量還是列表?