如何看待 AMD Ryzen 使用的神經網路預測和智能預取特性?

Ryzen宣稱使用了如下技術:
神經網路預測
內置人工智慧,使處理器能夠更加高效地跟蹤應用程序工作負載。
智能預取
學習演算法,可預測並預先載入所需數據,以實現快速響應式計算。

這是利用神經網路做成了硬體預測器和預取嗎?
友商(例如Intel)現有產品是否有類似的技術?

AMD SenseMI 技術 | Drupal


的確是神經網路,但是這個神經網路,跟人工智慧裡面談的比較多的深度學習啥的區別還是很大的,用在CPU裡面的這種神經網路受限於硬體實現,是最naive的神經網路,勉強站上了「屬於神經網路」的分界線的那種,估計搞AI的同學來看微結構上的神經網路會比較鄙視。。。

神經網路分支預測是TAMU的體系結構大牛Daniel A. Jiménez提出的,後來被IBM / AMD / Oracle陸續拿去用在自己的核心上,AMD好像是先用在小核(bobcat, jaguar)上,現在用在zen上。

最近Daniel A. Jiménez又發了一些用神經網路做預測的論文,比如MICRO『16上的Perceptron Learning for Reuse Prediction通過預測dead block來改進替換策略(同理也可以改進預取),因為現在太新了所以還沒看到工業界跟進。


僅僅是個技術而已,實現可以看這個https://www.cs.utexas.edu/~lin/papers/hpca01.pdf

用長分支預測歷史去預測,有更高的準確率。然而CPU裡面不會建立很大的網路。

類似的比如三星貓鼬不有有了基於神經網路的分支預測么。

預取大家都有,不過之前AMD做的太糟糕,甚至干預Prefetch後還沒自動的效果好,和Intel差距太大。現在優化了而已……自適應啥的prefetch論文也多。Intel Smart Cache不知道有沒有,沒仔細看過。但是AMD的效果未必多好,等朋友用CodeXL看看。


前幾天在看某個 ARM CPU 核前端的 RTL 時,發現 bpd 也用的類似的東西。

不知道是否違規,保險起見,膩了。


AMD吧已經有人拿到了R7 1800x(我記得是)。

在連續的,注意是連續6次CinebenchR15跑分後對比成績,發現從161x分逐步上升到了166x分。而作為對照組的7700k只是單純的小幅度上下波動。

由此可見樓上所說的intel版smart cache並沒有實裝。而蘇媽說的「可以自主學習」應該就是指隨著單個程序的持續運行ryzen能夠持續提高分支預測正確率。

此外,不要過早的做出「這5%不到的性能提升有個卵用」的結論,因為ryzen欽定的win10他自己的線程均衡負載規則實在實在是太扯淡了,為了均衡負載,一個任務所佔用的線程會瞎jb跳,他win10那管你什麼CCX,物理線程,邏輯線程,為了均衡都會亂跳(常理來講應該是優先使用高性能的物理線程,實在不夠再用模擬出來的虛擬線程)。而神經網路的學習數據恐怕每個核心之間都不會共享,更別提每個CCX之間了。AMD幹嘛要費那麼大勁加入一個只能提升2-3%性能的玩意?本來就缺錢。——————據稱微軟的RS2大改更新會增加對HT與SMT更好的支持。個人大膽猜測屆時AMD神經網路預測未來能夠提升5%或更多的性能。

或者再大膽一點,AMD再將每一次的學習結果儲存於硬碟之中,運行哪個程序調用哪個程序的預案。再出幾個驅動優化提高學習效率,到時候就不止是A卡戰未來了(?ω?)

倒數第二段純屬腦洞大開,不用當真。順便提一句:AMD永不言敗!


推薦閱讀:

計算機為什麼要設置線性地址,從邏輯地址到線性地址再到物理地址?
如何看待AMD Ryzen 1700實測GTA V遊戲性能不如Intel Core i7 7700k?
如果CPU的cache(緩存)容量上GB或更高,會有哪些不同?

TAG:機器學習 | 神經網路 | 體系結構 | 中央處理器CPU計算機體系架構 |