1)在芯片上實(shí)現(xiàn)SMP系統(tǒng)(SoC,SMP on a Chip)


      在上世紀(jì)90年代中后期,RISC SMP 市場(chǎng)的主流產(chǎn)品是 4路、8路 和 16 路系統(tǒng)。這些系統(tǒng)為當(dāng)時(shí)的并行化應(yīng)用提供了足夠的CPU性能,價(jià)格也不算高。但現(xiàn)在,我們看到的趨勢(shì)是,在未來(lái)數(shù)年內(nèi),有望在一塊芯片上實(shí)現(xiàn)類似的SMP系統(tǒng),從而挑戰(zhàn)傳統(tǒng)的RISC市場(chǎng),對(duì)此,幾個(gè)值得進(jìn)一步探討的方向性問(wèn)題是:


      在上世紀(jì)90年代,RISC SMP開(kāi)創(chuàng)了UNIX服務(wù)器市場(chǎng),那么,今天的多核芯片能否以同樣的方式為并行軟件創(chuàng)造出一個(gè)新的市場(chǎng)呢?


      為了有效利用多核處理器芯片,系統(tǒng)架構(gòu)或編程模式是否需要進(jìn)行根本性的改變?或者說(shuō),在適當(dāng)增強(qiáng)架構(gòu)的情況下(如transactional memory),并行應(yīng)用市場(chǎng)能否實(shí)現(xiàn)自我增長(zhǎng)?


      對(duì)于絕大多數(shù)用戶而言,隨著芯片上的核心數(shù)、可執(zhí)行的線程數(shù)越來(lái)越多,還需要更大規(guī)模的多路SMP系統(tǒng)嗎?


      事實(shí)上,隨著每個(gè)芯片上集成的內(nèi)核數(shù)越來(lái)越多,用戶甚至在單路或雙路服務(wù)器上,就可以同時(shí)混合運(yùn)行多線程任務(wù)和單線程任務(wù)??無(wú)論是單線程,還是多線程應(yīng)用,都不會(huì)獨(dú)占全部的CPU核心??這種模式類似于最近10年來(lái)大型SMP服務(wù)器的應(yīng)用。另外,CPU核心數(shù)的增多,也會(huì)促進(jìn)虛擬化在這些低端多核服務(wù)器上的普及應(yīng)用??每個(gè)客操作系統(tǒng)擁有自己專用的核心,同時(shí)爭(zhēng)搶內(nèi)存空間、內(nèi)存帶寬、共享緩存和其他共享性資源。


      2)CPU設(shè)計(jì)時(shí)有更大的靈活度


       隨著CPU生產(chǎn)工藝的發(fā)展,我們可以在一個(gè)芯片中放入越來(lái)越多的核心,CPU的設(shè)計(jì)空間也越來(lái)越大,但選擇多了,決策也自然就更難了。


      雙核處理器起初量產(chǎn)時(shí),采用的是90納米制造工藝,到今年,四核處理器開(kāi)始采用65納米工藝。而如果進(jìn)一步向45 納米切換,我們能把CPU中的核心數(shù)增加一倍(8核),采用32納米,可望繼續(xù)增加一倍(16核),未來(lái),通過(guò)22納米工藝再增加一倍核心數(shù)量(32核)也是切實(shí)可行的。


      最近的研究表明,無(wú)論是從工程設(shè)計(jì)的角度,還是從應(yīng)用性能的角度來(lái)看,CMP的設(shè)計(jì)空間都是多維的,有很多種選擇。但問(wèn)題是,由于一個(gè)芯片上擁有如此之多的獨(dú)立“模塊”,雖然我們?cè)谠O(shè)計(jì)時(shí)的靈活度大大提高了,但同時(shí),對(duì)性能和性價(jià)比指標(biāo)的考量也就變得更加復(fù)雜了。如果每種應(yīng)用對(duì)單線程性能、多線程性能、單線程性價(jià)比和多線程性價(jià)比都有不同的最優(yōu)設(shè)計(jì)方案,那么,要想做出正確的設(shè)計(jì)決策將更為困難。對(duì)于產(chǎn)業(yè)界來(lái)說(shuō),是生產(chǎn)可以量產(chǎn)的標(biāo)準(zhǔn)化產(chǎn)品,還是在某一方面表現(xiàn)最優(yōu)的獨(dú)特性產(chǎn)品,將是非常關(guān)鍵的挑戰(zhàn)。


      3)異構(gòu)多核芯片中不僅有CPU,還有GPU


      術(shù)業(yè)有分工,對(duì)于不同類型的工作負(fù)載來(lái)說(shuō),同構(gòu)(homogeneous)的多核芯片并不是最好的選擇。而實(shí)際上,隨著設(shè)計(jì)空間的擴(kuò)大,我們可以在芯片中放入異構(gòu)(heterogeneous)的處理器內(nèi)核,這些不同的內(nèi)核可能在以下這些參數(shù)上有所不同,如基本 ISA、ISA 擴(kuò)展、緩存容量、頻率、Issue寬度(Issue width)、亂序功能(Out of Order capability)等。


       可見(jiàn),這種自由度更高的設(shè)計(jì)帶來(lái)了無(wú)數(shù)的可能性,既令人興奮,又讓人畏懼。


      當(dāng)然,多核心處理器將不限于僅包含中央處理單元(CPU)。隨著3D圖形處理卡在移動(dòng)、客戶端和工作站系統(tǒng)中的廣泛應(yīng)用,進(jìn)一步將圖形處理單元(GPU),或GPU的一部分功能集成到處理器芯片上也是自然而然的,就象AMD 已經(jīng)發(fā)布的“Fusion”計(jì)劃一樣。在未來(lái),其他的異型(非CPU)架構(gòu)也是合乎邏輯的選擇。


      4)核心過(guò)多帶來(lái)的問(wèn)題


      短期內(nèi),在每個(gè)芯片上集成4-8顆CPU內(nèi)核確實(shí)非常讓人興奮,但從長(zhǎng)期來(lái)看,如果繼續(xù)在每個(gè)芯片上集成32、64、128、256個(gè)甚至更多的核心,就會(huì)帶來(lái)額外的挑戰(zhàn)。


      拿RISC來(lái)比較,上世紀(jì)90年代后期,RISC SMP 市場(chǎng)正是鼎盛的時(shí)候,大型系統(tǒng)(8P-64P)的成本非常昂貴,占有的市場(chǎng)份額也很少。單個(gè)用戶基本不用擔(dān)心找不到足夠多的工作使 CPU保持忙碌。相反,未來(lái)的多核處理器芯片不會(huì)很貴。一個(gè)用戶能夠輕松地負(fù)擔(dān)多個(gè)CPU核心,足以滿足傳統(tǒng)“任務(wù)并行化” (占用CPU運(yùn)行獨(dú)立的單線程任務(wù))應(yīng)用所需要的CPU資源要求。


      比如,在2004年,一臺(tái)滿配的基于 AMD 或英特爾單核處理器的雙路服務(wù)器售價(jià)一般為 5000 – 6000 美元,擁有5萬(wàn)美元預(yù)算的一個(gè)科研人員/工程師,可以購(gòu)買大約 8 臺(tái)這樣的服務(wù)器(即總共有16 個(gè)核心),加上一些存儲(chǔ)和網(wǎng)絡(luò)設(shè)備。其實(shí),從2000年左右起,這類系統(tǒng)就開(kāi)始大面積流行起來(lái),許多用戶發(fā)現(xiàn),采用這些系統(tǒng)構(gòu)成的小規(guī)模集群就能滿負(fù)荷地運(yùn)行串行作業(yè),或者在一臺(tái)服務(wù)器上運(yùn)行并行化的應(yīng)用(使用 OpenMP 或explicit線程)。


      如果雙路服務(wù)器配上16核的CPU,那么,在相同售價(jià)和預(yù)算的情況下,上述用戶買8臺(tái)服務(wù)器就可以擁有多達(dá)256個(gè)核心。而實(shí)際上,卻很少有哪個(gè)科研人員/工程師有足夠多的獨(dú)立作業(yè)需要用到它。如果配上128核的芯片,那么,這8臺(tái)服務(wù)器將能執(zhí)行2048個(gè)線程??梢?jiàn),對(duì)于絕大多數(shù)用戶來(lái)說(shuō),編程模式和使用計(jì)算機(jī)的方式都要發(fā)生根本性的變革。


      因此,多核處理器開(kāi)發(fā)人員的任務(wù)很艱巨,他們必須找到可行的方法,以更容易地利用這么多核心來(lái)加速單一作業(yè)的效率。對(duì)于計(jì)算機(jī)用戶來(lái)說(shuō),也同樣存在巨大的機(jī)遇,如果能先于自己的對(duì)手充分開(kāi)發(fā)這種并行化機(jī)制,就能獲得更多的競(jìng)爭(zhēng)優(yōu)勢(shì)。


      5)內(nèi)存帶寬是多核系統(tǒng)的瓶頸


      多核CPU設(shè)計(jì)的靈活度,以及功耗的減少,使得未來(lái)的處理器能比現(xiàn)在芯片具有更強(qiáng)大的計(jì)算性能。但另一方面,相對(duì)處理器的性能增長(zhǎng)速度,內(nèi)存帶寬的提升要慢的多。雖然DRAM 技術(shù)通過(guò)提高管線能力(pipelining)從根本上改進(jìn)了內(nèi)存性能,但這種方法也快要走到頭了。而且,在系統(tǒng)電力消耗水平中,內(nèi)存的功耗也已不容忽視。


      歷史數(shù)據(jù)表明,如果一個(gè)系統(tǒng),每GFLOP/s峰值浮點(diǎn)運(yùn)算所支持的主內(nèi)存帶寬小于0.5 GB/s,就很難在市場(chǎng)上獲得成功。比如,一個(gè)CPU芯片的峰值要想達(dá)到100 GFLOPS并非遙不可及??擁有8個(gè)核心,主頻為3GHz,每個(gè)核心每個(gè)時(shí)鐘周期執(zhí)行4次浮點(diǎn)運(yùn)算就可以了。但另一方面,要想為這樣的每個(gè)處理器芯片配備50 GB/s 的內(nèi)存帶寬,卻要花費(fèi)巨大的成本。即便DDR2/3 DRAM 技術(shù)能提供1600 MHz的數(shù)據(jù)傳輸率(每個(gè) 64 位通道 12.8 GB/s),要想維持上述內(nèi)存帶寬水平,就需要許多通道??102.4 GB/s 峰值帶寬大概需要 8 個(gè)通道,這就意味著至少需要8 個(gè) DIMM,并需要丟棄類似 40 個(gè)出色的緩存,以實(shí)現(xiàn) 50% 的利用率。(若內(nèi)存延遲為 50 ns,則 102.4 GB/s 的延遲帶寬為 5120 字節(jié),或每 64 個(gè)字節(jié)延遲 80 個(gè)緩存線。所以,共需要約 40 個(gè)并發(fā)緩存線,以保持 50 GB/s 的目標(biāo)帶寬。)


      5. 總結(jié)與結(jié)論


      本文的文字與圖例說(shuō)明,在多核心處理器帶來(lái)的巨大機(jī)會(huì)和挑戰(zhàn)面前,我們才剛剛開(kāi)始。AMD最初的前進(jìn)步伐一直受到技術(shù)的限制,只能對(duì)系統(tǒng)的整體平衡做有限的提升,但是,技術(shù)的發(fā)展趨勢(shì)使AMD清楚地看到,未來(lái)工藝技術(shù)所提供的靈活性將給業(yè)界帶來(lái)大量機(jī)會(huì),使AMD能夠設(shè)計(jì)出在功耗、性能和成本特性方面有顯著提高的基于微處理器的系統(tǒng)(例如Barcelona和Fusion)。


      對(duì)于計(jì)算產(chǎn)業(yè)而言,通過(guò)生產(chǎn)標(biāo)準(zhǔn)化的產(chǎn)品來(lái)保持高產(chǎn)量,通過(guò)創(chuàng)建種類豐富的產(chǎn)品來(lái)提高性能、每瓦性能和性能價(jià)格比之間的相互牽制,將成為整個(gè)行業(yè)的主要挑戰(zhàn)。即使我們?cè)噲D保持適度數(shù)量的“快速”核心,工藝技術(shù)也將支持我們提供超過(guò)用戶當(dāng)前的有效使用能力的核心。這將需要整個(gè)產(chǎn)業(yè)、學(xué)術(shù)界和計(jì)算機(jī)用戶共同合作,開(kāi)發(fā)出新的方法,能夠利用多核心完成“日?!睉?yīng)用,利用片上通信的物理位置實(shí)現(xiàn)前所未有的、耦合更為緊密的并行機(jī)制。


      資料:加速系數(shù)與Amdahl定律


      衡量多處理器系統(tǒng)的性能時(shí),通常要用到的一個(gè)指標(biāo)叫做加速系數(shù),定義如下:


      S(p) = 使用單處理器執(zhí)行時(shí)間(最好的順序算法)/ 使用具有p個(gè)處理器所需執(zhí)行時(shí)間


      Amdahl定律的傳統(tǒng)方程式表示方式:
      S(p) = p / (1 + (p-1)*f)
      其中 S(p)表示加速系數(shù)
      p表示處理器的個(gè)數(shù)
      f表示串行部分所占整個(gè)程序執(zhí)行時(shí)間的比例
      當(dāng)f = 5%, p = 20時(shí), S(p) = 10.256左右
      當(dāng)f = 5%, p = 100時(shí), S(p) = 16.8左右


    關(guān)于作者:


    http://home.austin.rr.com/mccalpin/
    第一作者曾在SGI和IBM工作,從事過(guò)Power家族的研發(fā),也是Stream內(nèi)存帶寬基準(zhǔn)測(cè)試的發(fā)明人,被同行昵稱為“帶寬博士”。曾多次代表IBM就Power接受媒體采訪。


    http://www.alliacense.com/Licensing_Charles_Moore_Biography.aspx
    第二作者是多核心編程語(yǔ)言的發(fā)明人,具有數(shù)十年的業(yè)內(nèi)經(jīng)驗(yàn)。就職于AMD之前曾在多家公司任技術(shù)部門要職。


    第三作者是AMD的CTO。

分享到

多易

相關(guān)推薦