Re: [問題] 請問計算機架構的書,看那本好?

看板VideoCard (顯卡板)作者 ( 1569 11 /47)時間16年前 (2009/12/03 15:03), 編輯推噓5(507)
留言12則, 5人參與, 最新討論串2/2 (看更多)
※ 引述《gaiger (hallowed be my name)》之銘言: : ※ [本文轉錄自 C_and_CPP 看板] : 作者: gaiger (hallowed be my name) 看板: C_and_CPP : 標題: [問題] 請問計算機架構的書,看那本好? : 時間: Thu Dec 3 02:13:09 2009 : 最近在自學CUDA,發現真的要對計算機架構有一定認知 : 寫出來的CUDA code才會好。 : 去翻了幾本計組的書,好像對X86以外的架構著墨都不多。 : 就算只討論x86,也沒有詳細比較各代之間的差異。 不清楚買哪本好,因為作者會著重在CPU上面. 所以你會看到很多MIPS,DEC Alpha(即使沒了), 不太願意提起的x86,摸一些Power跟ARM的東西.... : nvidia算是SIMD的變型: SIMT吧。 : 但SIMT與SIMD有什麼差別,網上爬文也不知所云。 不要這樣看,因為SIMT這個命名本身就沒有意義.就好像MIMD跟MISD 一樣不明確. 但是真正在chip上實作的multithreading有兩種 從特性分別的命名,一種為course-grained multithreading. 切細 ? 實作上就如同DEC Alpha上的SMT,或者是比較有名的實作是Intel 的Hyper Threading ===== ===== Multi-Threading ===== Register File (A~D,假定只有四個) Cycle =======> 1 執 A C B A A A 行 A C B A B C 單 A C A A B C 元 B A D A D A 1~4(假定) Course-Grained MT就是指在可以Out-of-Order執行的前提下,將數個執行單元 每個cycle分配給不同的Thread,以避免ILP拉不起來導致執行單元閒置. 不過通常實作來說,不傾向作超過二個thread. 那麼還有一種,稱為Fine-Grained Multithreading ===== ===== Multi-Threading ===== Register File (A~Z,不過通常上百個) Cycle =======> 1 執 A B C D A E 行 A B C D A E 單 A B C D A E 元 A B C D A E 1~4(假定) 同一個cycle中,執行單元全部會分配給同一個thread,而且排程方式有 循序,或者是偵測到需要等外部的要等待.或者是主動交出等實作. 這種處理方式是因為要Hidden Latency.假設Thread A存取了外部記憶體, 可能要等上上百個cycle,中間的情況下Thread A只能等待,因此排程也沒有用. 中間上百個cycle就會排程給其他thread使用,不過如果說每個thread執行時 都常常要這樣等上幾百個cycle,那麼thread數量最好就多提供一些,可以達到 至少上百個,才可以保持原有的Throughput 那這種架構通常用在哪裡 ?最接近現有的GPU實作,是Intel IXP Network Processor. (不過這架構已經賣給別人了.....),GPU和IXP都有相同的特性.除了需要可程式化外. (GPU處理Programmagle Shader,IXP則是實作各種網路Router,色情守門員??等...) 原有的資料都是大量的streaming data,需要利用大量頻寬,卻很難使用cache重新 使用的資料. CUDA的multi-thread屬於後者,而且很明顯的,每個block中的thread 是循序排程的.假設是1~256個thread,就是1->2->3....255->256->1 這樣照順序排程. 至於Fine Grained在其他處理器上的例子. DX10 GPU -- 512 INTEL IXP -- 200上下吧? Nec Niagra -- 8 Intel IA64-- 2 ...比較不能拿來參考. : 我的認知只到這裡了。 : 那請問版上對於計算機架構熟悉的大牛,是怎學習此領域的呢? : 謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.78.62

12/03 16:05, , 1F
推:)
12/03 16:05, 1F

12/03 16:27, , 2F
Niagra 是 SUN 的吧?一代單核4 threads,二代 8 thrds
12/03 16:27, 2F

12/03 16:29, , 3F
IA64是 不錯的東西,可惜生錯時代…
12/03 16:29, 3F

12/03 17:42, , 4F
Niagra是想通吃Network Processor跟CPU,所以是8 thread
12/03 17:42, 4F

12/03 17:42, , 5F
IA64那個multithread就無視....純作健康的嗎??
12/03 17:42, 5F

12/03 19:22, , 6F
jk大真的很熱心XD
12/03 19:22, 6F

12/03 20:07, , 7F
jk大堅強!
12/03 20:07, 7F

12/04 00:42, , 8F
Niagara一代八個core share一個fp,二代每個core一個fp
12/04 00:42, 8F

12/04 00:43, , 9F
裡面的fp其實是用來支援sparc vis 2.0 instr set ...
12/04 00:43, 9F

12/04 00:43, , 10F
覺得把他視為跟 intel mmx/sse 之流會比當他想搶GPU看適合
12/04 00:43, 10F

12/04 00:44, , 11F
GPU有太多需要fp的地方,niagara這樣的配置會炸…
12/04 00:44, 11F

12/04 12:19, , 12F
NetWork Processor跟低階網路server的CPU,我打錯 :P
12/04 12:19, 12F
※ 編輯: jk21234 來自: 114.37.137.11 (12/04 12:19)
文章代碼(AID): #1B5sAyHu (VideoCard)
文章代碼(AID): #1B5sAyHu (VideoCard)