1)在芯片上實現(xiàn)SMP系統(tǒng)(SoC,SMP on a Chip)
在上世紀90年代中后期,RISC SMP 市場的主流產品是 4路、8路 和 16 路系統(tǒng)。這些系統(tǒng)為當時的并行化應用提供了足夠的CPU性能,價格也不算高。但現(xiàn)在,我們看到的趨勢是,在未來數年內,有望在一塊芯片上實現(xiàn)類似的SMP系統(tǒng),從而挑戰(zhàn)傳統(tǒng)的RISC市場,對此,幾個值得進一步探討的方向性問題是:
在上世紀90年代,RISC SMP開創(chuàng)了UNIX服務器市場,那么,今天的多核芯片能否以同樣的方式為并行軟件創(chuàng)造出一個新的市場呢?
為了有效利用多核處理器芯片,系統(tǒng)架構或編程模式是否需要進行根本性的改變?或者說,在適當增強架構的情況下(如transactional memory),并行應用市場能否實現(xiàn)自我增長?
對于絕大多數用戶而言,隨著芯片上的核心數、可執(zhí)行的線程數越來越多,還需要更大規(guī)模的多路SMP系統(tǒng)嗎?
事實上,隨著每個芯片上集成的內核數越來越多,用戶甚至在單路或雙路服務器上,就可以同時混合運行多線程任務和單線程任務??無論是單線程,還是多線程應用,都不會獨占全部的CPU核心??這種模式類似于最近10年來大型SMP服務器的應用。另外,CPU核心數的增多,也會促進虛擬化在這些低端多核服務器上的普及應用??每個客操作系統(tǒng)擁有自己專用的核心,同時爭搶內存空間、內存帶寬、共享緩存和其他共享性資源。
2)CPU設計時有更大的靈活度
隨著CPU生產工藝的發(fā)展,我們可以在一個芯片中放入越來越多的核心,CPU的設計空間也越來越大,但選擇多了,決策也自然就更難了。
雙核處理器起初量產時,采用的是90納米制造工藝,到今年,四核處理器開始采用65納米工藝。而如果進一步向45 納米切換,我們能把CPU中的核心數增加一倍(8核),采用32納米,可望繼續(xù)增加一倍(16核),未來,通過22納米工藝再增加一倍核心數量(32核)也是切實可行的。
最近的研究表明,無論是從工程設計的角度,還是從應用性能的角度來看,CMP的設計空間都是多維的,有很多種選擇。但問題是,由于一個芯片上擁有如此之多的獨立“模塊”,雖然我們在設計時的靈活度大大提高了,但同時,對性能和性價比指標的考量也就變得更加復雜了。如果每種應用對單線程性能、多線程性能、單線程性價比和多線程性價比都有不同的最優(yōu)設計方案,那么,要想做出正確的設計決策將更為困難。對于產業(yè)界來說,是生產可以量產的標準化產品,還是在某一方面表現(xiàn)最優(yōu)的獨特性產品,將是非常關鍵的挑戰(zhàn)。
3)異構多核芯片中不僅有CPU,還有GPU
術業(yè)有分工,對于不同類型的工作負載來說,同構(homogeneous)的多核芯片并不是最好的選擇。而實際上,隨著設計空間的擴大,我們可以在芯片中放入異構(heterogeneous)的處理器內核,這些不同的內核可能在以下這些參數上有所不同,如基本 ISA、ISA 擴展、緩存容量、頻率、Issue寬度(Issue width)、亂序功能(Out of Order capability)等。
可見,這種自由度更高的設計帶來了無數的可能性,既令人興奮,又讓人畏懼。
當然,多核心處理器將不限于僅包含中央處理單元(CPU)。隨著3D圖形處理卡在移動、客戶端和工作站系統(tǒng)中的廣泛應用,進一步將圖形處理單元(GPU),或GPU的一部分功能集成到處理器芯片上也是自然而然的,就象AMD 已經發(fā)布的“Fusion”計劃一樣。在未來,其他的異型(非CPU)架構也是合乎邏輯的選擇。
4)核心過多帶來的問題
短期內,在每個芯片上集成4-8顆CPU內核確實非常讓人興奮,但從長期來看,如果繼續(xù)在每個芯片上集成32、64、128、256個甚至更多的核心,就會帶來額外的挑戰(zhàn)。
拿RISC來比較,上世紀90年代后期,RISC SMP 市場正是鼎盛的時候,大型系統(tǒng)(8P-64P)的成本非常昂貴,占有的市場份額也很少。單個用戶基本不用擔心找不到足夠多的工作使 CPU保持忙碌。相反,未來的多核處理器芯片不會很貴。一個用戶能夠輕松地負擔多個CPU核心,足以滿足傳統(tǒng)“任務并行化” (占用CPU運行獨立的單線程任務)應用所需要的CPU資源要求。
比如,在2004年,一臺滿配的基于 AMD 或英特爾單核處理器的雙路服務器售價一般為 5000 – 6000 美元,擁有5萬美元預算的一個科研人員/工程師,可以購買大約 8 臺這樣的服務器(即總共有16 個核心),加上一些存儲和網絡設備。其實,從2000年左右起,這類系統(tǒng)就開始大面積流行起來,許多用戶發(fā)現(xiàn),采用這些系統(tǒng)構成的小規(guī)模集群就能滿負荷地運行串行作業(yè),或者在一臺服務器上運行并行化的應用(使用 OpenMP 或explicit線程)。
如果雙路服務器配上16核的CPU,那么,在相同售價和預算的情況下,上述用戶買8臺服務器就可以擁有多達256個核心。而實際上,卻很少有哪個科研人員/工程師有足夠多的獨立作業(yè)需要用到它。如果配上128核的芯片,那么,這8臺服務器將能執(zhí)行2048個線程。可見,對于絕大多數用戶來說,編程模式和使用計算機的方式都要發(fā)生根本性的變革。
因此,多核處理器開發(fā)人員的任務很艱巨,他們必須找到可行的方法,以更容易地利用這么多核心來加速單一作業(yè)的效率。對于計算機用戶來說,也同樣存在巨大的機遇,如果能先于自己的對手充分開發(fā)這種并行化機制,就能獲得更多的競爭優(yōu)勢。
5)內存帶寬是多核系統(tǒng)的瓶頸
多核CPU設計的靈活度,以及功耗的減少,使得未來的處理器能比現(xiàn)在芯片具有更強大的計算性能。但另一方面,相對處理器的性能增長速度,內存帶寬的提升要慢的多。雖然DRAM 技術通過提高管線能力(pipelining)從根本上改進了內存性能,但這種方法也快要走到頭了。而且,在系統(tǒng)電力消耗水平中,內存的功耗也已不容忽視。
歷史數據表明,如果一個系統(tǒng),每GFLOP/s峰值浮點運算所支持的主內存帶寬小于0.5 GB/s,就很難在市場上獲得成功。比如,一個CPU芯片的峰值要想達到100 GFLOPS并非遙不可及??擁有8個核心,主頻為3GHz,每個核心每個時鐘周期執(zhí)行4次浮點運算就可以了。但另一方面,要想為這樣的每個處理器芯片配備50 GB/s 的內存帶寬,卻要花費巨大的成本。即便DDR2/3 DRAM 技術能提供1600 MHz的數據傳輸率(每個 64 位通道 12.8 GB/s),要想維持上述內存帶寬水平,就需要許多通道??102.4 GB/s 峰值帶寬大概需要 8 個通道,這就意味著至少需要8 個 DIMM,并需要丟棄類似 40 個出色的緩存,以實現(xiàn) 50% 的利用率。(若內存延遲為 50 ns,則 102.4 GB/s 的延遲帶寬為 5120 字節(jié),或每 64 個字節(jié)延遲 80 個緩存線。所以,共需要約 40 個并發(fā)緩存線,以保持 50 GB/s 的目標帶寬。)
5. 總結與結論
本文的文字與圖例說明,在多核心處理器帶來的巨大機會和挑戰(zhàn)面前,我們才剛剛開始。AMD最初的前進步伐一直受到技術的限制,只能對系統(tǒng)的整體平衡做有限的提升,但是,技術的發(fā)展趨勢使AMD清楚地看到,未來工藝技術所提供的靈活性將給業(yè)界帶來大量機會,使AMD能夠設計出在功耗、性能和成本特性方面有顯著提高的基于微處理器的系統(tǒng)(例如Barcelona和Fusion)。
對于計算產業(yè)而言,通過生產標準化的產品來保持高產量,通過創(chuàng)建種類豐富的產品來提高性能、每瓦性能和性能價格比之間的相互牽制,將成為整個行業(yè)的主要挑戰(zhàn)。即使我們試圖保持適度數量的“快速”核心,工藝技術也將支持我們提供超過用戶當前的有效使用能力的核心。這將需要整個產業(yè)、學術界和計算機用戶共同合作,開發(fā)出新的方法,能夠利用多核心完成“日常”應用,利用片上通信的物理位置實現(xiàn)前所未有的、耦合更為緊密的并行機制。
資料:加速系數與Amdahl定律
衡量多處理器系統(tǒng)的性能時,通常要用到的一個指標叫做加速系數,定義如下:
S(p) = 使用單處理器執(zhí)行時間(最好的順序算法)/ 使用具有p個處理器所需執(zhí)行時間
Amdahl定律的傳統(tǒng)方程式表示方式:
S(p) = p / (1 + (p-1)*f)
其中 S(p)表示加速系數
p表示處理器的個數
f表示串行部分所占整個程序執(zhí)行時間的比例
當f = 5%, p = 20時, S(p) = 10.256左右
當f = 5%, p = 100時, S(p) = 16.8左右
關于作者:
http://home.austin.rr.com/mccalpin/
第一作者曾在SGI和IBM工作,從事過Power家族的研發(fā),也是Stream內存帶寬基準測試的發(fā)明人,被同行昵稱為“帶寬博士”。曾多次代表IBM就Power接受媒體采訪。
http://www.alliacense.com/Licensing_Charles_Moore_Biography.aspx
第二作者是多核心編程語言的發(fā)明人,具有數十年的業(yè)內經驗。就職于AMD之前曾在多家公司任技術部門要職。
第三作者是AMD的CTO。