陳茗豪

關於陳茗豪

對不起,我忘了寫自我介紹!

AMD HD 7970 之 GCN 架構完全解析,帶來 GPU 革命

回應

"AMD則以R600為主,使用的是SIMD(Single Instruction Multiple Data,單指令流多數據流)的4D+1D向量(Vector)架構,也就是VLIW(Very Long Instruction Word,超長指令集)體系"
這句話的確有待商榷..SIMD.與VLIW本質上是不能混為一談的
但也不至於八竿子打不著關係..一直以來..對於提升處理器性能
大致上朝向兩個方向發展..
1.透過製程精進.將電子元件的體積規模不斷微縮.在有限面積裡能集成更多的電路元件.增加處理器晶片更多的功能性單元.也減少了電子元件工作時所產生的廢熱.可以讓處理器平穩運行於更高的時脈設定.
2.平行運算:平行運算其實也可以算是由精進製程所衍生的
相對於提升時脈是讓處理器能在更短的時間完成一項工作(降低CPI)平行運算則是在同樣的時間裡完成更多的工作(提升IPC)由於處理器能夠集成更多的IC電路.將這些增加的電晶體用在提升效能的刀口上.正是平行運算的思維.而SIMD與VLIW都是基於平行運算而生的架構
平行運算大致可分為時間平行與空間平行兩個主軸..由這兩項主軸對於不同層級運算瓶頸增加硬體運算單元.從而使效能得到提升.這種"哪裡癢,抓哪裡"直覺式思維..說來簡單..做來卻不容易
每個架構都有其優點..當然不免也有"力有未逮"的缺憾..
SIMD的作法是以一組控制器加上多組平行處理微元.能夠同時的處理多筆的資料.很明顯屬於空間平行而就程式的運行層級來區分是屬於資料平行..這種架構的優勢在於不需要增加許多複雜的電路結構.就能夠達到加速運算的結果.能夠取得最佳指令執行效率.不過只能適用於指令所處理的資料都具備同樣的性質而且之間不存在相依關聯性一般來說..只有影像等多媒體程式才具備這樣的性質所以在應用上有其侷限
至於VLIW的作法是將多個短指令結合成一串長指令執行..相當於處理器核心同時執行多個指令..屬於時間並行而就運算層級區分
則是指令級並行.不能避免的VLIW也有指令依存的頭疼問題
指令能不能並行是最重要的障礙..相較於管線化技術把指令依存的交由硬體管線判斷.指令在解碼後會在經過分派決定那些任務可以同時執行.但這增加硬體結構設計的複雜度.'當然開發成本也因此提高.VLIW則是以另一種方式因應..一開始在短指令組成長指令串時就已經將不能並行的指令排除處理器核心就無需顧慮是否有依存的指令只要傻傻地運算就輸出效率來說肯定是會提高.不過
並不是指令依存的障礙就此消失.由於一開始指令編譯時就得避免將無法並行的指令排除..代表指令執行的分派重任得由編譯器一肩扛起..所以開發編譯器的複雜度自然提高..除此之外..VLIW架構還有相容性的問題.編譯器只能適用於特定架構也就是說VLIW4的編譯器無法用於VLIW5..而能夠有效調度這麼多平行指令的任何編譯器都將是十分複雜而且難以編寫..加上VLIW編譯軟體絕大部份要比它所控制的硬體落後.都是VLIW架構目前所遭遇到的責難另外運行過程中無法隨時改變指令執行條件使得VLIW僅能在圖像處理技術中發揮所長所以一般使用VLIW架構的多為DSP
嵌入式晶片