"It's not about perfect. It's about effort. And when you implement that effort into your life… every single day, that's where transformation happens. That's how change occurs. Keep going, remember why you started."
問一下水球大,K8-2的Double-pumped執行單元是為了減低分支預測失敗的代價嘛?那這對SpMT的錯誤分支部分的清理會不會有幫助?k8-1的兩個core關係有點像是Fine-grain MultiThreading但是兩個Thread不共用Execute Unit的感覺= =??這樣不會管線利用率低下?...還是要重複利用Loop產生的大量指令來降低Decoder部分的負擔?
我這樣明講好了,為何Bulldozer後來選擇的是K8-1路線?道理很簡單,因為設計比較單純,沒了。AMD應該還沒想到SpMT這麼複雜的玩具....
bulldozer的執行單元太窄了 會否有可能使用倍速alu呢?
就我的看法,以AMD的思維,如其用做倍速ALU,恐怕整顆CPU走超高時脈設計的機會還會大很多...
可是Bulldozer的Decoder仍然是4Complex的設計,高頻率的設計會使其耗電量過高...除非對其有所改進(如Vector-Path跟Scalar-Path可以同時輸出以達到類似高頻的效果)或是適度簡化(如2Complex跑低速2Simple跑高速)...否則想要做成Ultra-high Frequence有困難吧?不過從較窄的管線配置來看想要有足夠的Single Thread性能就只能從頻率或調度機制著手了
decode這件事,不完全是decoder的責任,很多工作都可以「分攤」到別的stage,IBM Power6就是最好的例子,L1 I-cache幾乎快跟Trace cache沒兩樣了,AMD K8-1和K8-2也採取類似的路線,前者更還有L0 I-cache當緩衝墊,更何況AMD得找地方去擺設那票移除不必要branch、增加實際指令輸出率的功能單元,真要做,並不是做不到。至於Bulldozer的時脈應該有多高?參考AMD預估的Bulldozer性能,16 core/8 Module的Interlagos的整數/浮點輸出率比12 core的Magny-Cour多出46%和74%,時脈推估會多出個50%。但考慮到Magny-Cours是包兩顆Istanbul的設計,時脈不可能太高,2.2~2.5GHz就差不多了,所以Interlagos的時脈頂多是3.3~3.8GHz,說真的,這也不是什麼遙不可及的目標。之前聽日本某鬍子大叔說,日本Intel推估Bulldozer的時脈只會比現有K10多個20~30%,其實並不是錯誤的說法。
那這樣說的話Zambezi不就有可能有4.8甚至是5.2Ghz了,而且還要搭上相較於Power6.Netburst複雜多的Front-End,感覺會跟當年Netburst一樣撞牆= =另一個問題是Bulldozer不是重點擺在整數性能上嗎?...為什麼相較於Interlagos反而是浮點提升較多?從理論throughput上來看雙128bit的FMAD效能跟2xK10的雙128bitFMAC+雙128bitFADD應該差不多吧...當然Bulldozer的指令並行度應該是有變高還有一個問題是AGU與ALU從水球大的圖上來看變成類似Intel互相分離,但是AMD真的會放棄他們多年來的ALU/AGU的設計嗎?這種設計的tradeoff應該不多吧...所以小弟私以為Bulldozer會維持4ALU/AGU的設計BTW,Bulldozer的Thread有確定是交錯送出還是同時送出?...水球大有相關的文獻嗎>"<??
其實現在看來,Bulldozer越看越像是一個針對AVX最佳化的省錢設計,每個電晶體都要砸到刀口上。至於時脈,我個人「猜測」最後會到達4~4.8GHz。至於ALU/Load & Store的配置,從K7時代就已經是分離式設計了,一個MOP最多拆成一個ALU ROP和一個L/S ROP,再各自送到配對的ALU/Load & Store,Bulldozer只是剛好變成K7/K8/K10的2/3規模。假如單核心擁有四個ALU和四個Load & Store,除非Decoder端跑兩倍時脈,或著每個時脈都可以送出兩條Thread,否則根本餵不飽。話說回來,AMD和Intel不同,執行單元架構都相對單純很多,看不到Reservation Station每個port串一大堆執行單元的狀況,還是依稀看得到AMD和Intel的資源差距,無論是設計能力和製程。最後,Bulldozer現在看來比較像是兩條thread交互送出,因為確認decoder只有四組,每個cycle解碼四個x86指令,實在很難每個cycle丟出兩條thread...
張貼留言
8 則留言:
問一下水球大,K8-2的Double-pumped執行單元是為了減低分支預測失敗的代價嘛?
那這對SpMT的錯誤分支部分的清理會不會有幫助?
k8-1的兩個core關係有點像是Fine-grain MultiThreading但是兩個Thread不共用Execute Unit的感覺= =??
這樣不會管線利用率低下?...還是要重複利用Loop產生的大量指令來降低Decoder部分的負擔?
我這樣明講好了,為何Bulldozer後來選擇的是K8-1路線?道理很簡單,因為設計比較單純,沒了。
AMD應該還沒想到SpMT這麼複雜的玩具....
bulldozer的執行單元太窄了 會否有可能使用倍速alu呢?
就我的看法,以AMD的思維,如其用做倍速ALU,恐怕整顆CPU走超高時脈設計的機會還會大很多...
可是Bulldozer的Decoder仍然是4Complex的設計,高頻率的設計會使其耗電量過高...
除非對其有所改進(如Vector-Path跟Scalar-Path可以同時輸出以達到類似高頻的效果)或是適度簡化(如2Complex跑低速2Simple跑高速)...否則想要做成Ultra-high Frequence有困難吧?
不過從較窄的管線配置來看想要有足夠的Single Thread性能就只能從頻率或調度機制著手了
decode這件事,不完全是decoder的責任,很多工作都可以「分攤」到別的stage,IBM Power6就是最好的例子,L1 I-cache幾乎快跟Trace cache沒兩樣了,AMD K8-1和K8-2也採取類似的路線,前者更還有L0 I-cache當緩衝墊,更何況AMD得找地方去擺設那票移除不必要branch、增加實際指令輸出率的功能單元,真要做,並不是做不到。
至於Bulldozer的時脈應該有多高?參考AMD預估的Bulldozer性能,16 core/8 Module的Interlagos的整數/浮點輸出率比12 core的Magny-Cour多出46%和74%,時脈推估會多出個50%。
但考慮到Magny-Cours是包兩顆Istanbul的設計,時脈不可能太高,2.2~2.5GHz就差不多了,所以Interlagos的時脈頂多是3.3~3.8GHz,說真的,這也不是什麼遙不可及的目標。
之前聽日本某鬍子大叔說,日本Intel推估Bulldozer的時脈只會比現有K10多個20~30%,其實並不是錯誤的說法。
那這樣說的話Zambezi不就有可能有4.8甚至是5.2Ghz了,而且還要搭上相較於Power6.Netburst複雜多的Front-End,感覺會跟當年Netburst一樣撞牆= =
另一個問題是Bulldozer不是重點擺在整數性能上嗎?...為什麼相較於Interlagos反而是浮點提升較多?
從理論throughput上來看雙128bit的FMAD效能跟2xK10的雙128bitFMAC+雙128bitFADD應該差不多吧...當然Bulldozer的指令並行度應該是有變高
還有一個問題是AGU與ALU從水球大的圖上來看變成類似Intel互相分離,但是AMD真的會放棄他們多年來的ALU/AGU的設計嗎?這種設計的tradeoff應該不多吧...所以小弟私以為Bulldozer會維持4ALU/AGU的設計
BTW,Bulldozer的Thread有確定是交錯送出還是同時送出?...水球大有相關的文獻嗎>"<??
其實現在看來,Bulldozer越看越像是一個針對AVX最佳化的省錢設計,每個電晶體都要砸到刀口上。至於時脈,我個人「猜測」最後會到達4~4.8GHz。
至於ALU/Load & Store的配置,從K7時代就已經是分離式設計了,一個MOP最多拆成一個ALU ROP和一個L/S ROP,再各自送到配對的ALU/Load & Store,Bulldozer只是剛好變成K7/K8/K10的2/3規模。假如單核心擁有四個ALU和四個Load & Store,除非Decoder端跑兩倍時脈,或著每個時脈都可以送出兩條Thread,否則根本餵不飽。
話說回來,AMD和Intel不同,執行單元架構都相對單純很多,看不到Reservation Station每個port串一大堆執行單元的狀況,還是依稀看得到AMD和Intel的資源差距,無論是設計能力和製程。
最後,Bulldozer現在看來比較像是兩條thread交互送出,因為確認decoder只有四組,每個cycle解碼四個x86指令,實在很難每個cycle丟出兩條thread...
張貼留言