文/張悠慧
定制化設(shè)計成本較高,如果無法獲得較大使用量就不能真正推廣。因此一般認(rèn)為超算領(lǐng)域以及大規(guī)模云計算模式將是定制化設(shè)計的用武之地。
處理器結(jié)構(gòu)的多核化發(fā)展已經(jīng)成為微體系結(jié)構(gòu)發(fā)展的主要趨勢。這一多核化甚至眾核化的趨勢實際上是一種“不得已的選擇”。我們知道,時至今日,芯片的集成度還在以摩爾定律的速度增長,但受制于功耗、互連延遲等的限制難以設(shè)計成為一整個“大而復(fù)雜”的處理器,所以只能采用“分而治之”的辦法——在一個處理器中集成多個“小而簡單”的處理器核。這樣就沒有全局的連線延遲,處理器核的驗證也相對簡單可行。
但從應(yīng)用角度來看,如何利用這種多核/眾核結(jié)構(gòu)成為一個系統(tǒng)性的難題。并行化程序面臨編程難度大、調(diào)試?yán)щy等因素,在短期看不到有效的解決途徑。而且許多應(yīng)用天然缺乏并行性,無法直接從中獲益。因此,將集成度的增長轉(zhuǎn)換為處理器能力的增長遇到了困難,通用處理器的片上資源在很大程度上無法得到有效利用。比如,美國勞倫斯實驗室(伯克利)的分析數(shù)據(jù)表明:300余條X86指令中,大致只有80余條是科學(xué)計算所常用的。進(jìn)一步研究表明,不同類型應(yīng)用對于處理器微體系結(jié)構(gòu)的需求不同,即通用處理器在效能上難以“通用”。
這就導(dǎo)致計算機(jī)基礎(chǔ)建設(shè)設(shè)施廣泛存在規(guī)模過大、功耗過高、可靠性較低等問題。預(yù)計到2015年,超算系統(tǒng)峰值性能將超過100PFlops,2018 年將跨入E量級時代。然而,隨著系統(tǒng)峰值性能的提升,系統(tǒng)功耗將成為制約系統(tǒng)發(fā)展的最主要問題,預(yù)計未來E級系統(tǒng)功耗至少在數(shù)十乃至上百MW 量級上,將直接影響系統(tǒng)運行的可靠性和運行成本。
因此,在通過工藝發(fā)展向片內(nèi)集成更高效資源的同時,進(jìn)行體系結(jié)構(gòu)設(shè)計方法上的改進(jìn)與創(chuàng)新也是必要途徑,面向應(yīng)用的定制處理器設(shè)計就是其中的關(guān)鍵技術(shù)。
定制計算器(或系統(tǒng))指的是針對某一特定應(yīng)用或應(yīng)用領(lǐng)域,在硬件架構(gòu)(包括指令集)和軟件支持方面進(jìn)行了深度優(yōu)化與定制化設(shè)計的處理器(或系統(tǒng)),目標(biāo)主要是獲得較高的應(yīng)用性能與性能功耗比。與之相對的,通用處理器之所以通用是因為其被廣泛應(yīng)用在完全不同的領(lǐng)域,“上”至超級計算機(jī),“下”至桌面應(yīng)用,比如較新的Intel IVY Bridge核心架構(gòu)就被同時應(yīng)用在服務(wù)器平臺、桌面平臺與移動平臺上。這樣勢必會帶來前面所提到的問題。
通用處理器這樣做有其歷史發(fā)展的必然性,處理器廠商需要維護(hù)兼容性來支持已有的應(yīng)用資源,進(jìn)而保持市場地位。而定制化設(shè)計則反其道而行之——不是強調(diào)兼容性,而是以應(yīng)用為中心,由硬件去適應(yīng)軟件或者軟件的計算模式。這一做法也有其弊端:定制化設(shè)計往往成本較高,如果沒有較大使用量就無法真正推廣。這就進(jìn)一步牽涉到定制化設(shè)計的分類及其技術(shù)途徑。
廣義上講,定制處理器(系統(tǒng))包括應(yīng)用定制集成電路(ASIC, Application-Specific Integrated Circuits)與應(yīng)用領(lǐng)域定制處理器(ADSP , Application Domain Specific Processor)兩類。由于前者過于強調(diào)專用性,限制了這一類設(shè)計的實際應(yīng)用,因此本文主要集中于后者。后者在應(yīng)用層面主要通過指令集的擴(kuò)展來體現(xiàn)硬件層面的定制功能,一個簡單例子就是針對某種使用頻繁的功能,設(shè)計對應(yīng)的硬件指令,使得應(yīng)用可以以直接執(zhí)行指令的方式來完成功能,其效率顯著高于基于通用指令的軟件執(zhí)行方式。
定制化設(shè)計的最關(guān)鍵問題是對于應(yīng)用的理解與分析。在此基礎(chǔ)上后續(xù)的模擬仿真、具體設(shè)計方法等才有立足之地。因此,定制化設(shè)計的通用技術(shù)包括如下流程。
通過核心算法分析,得到應(yīng)用的通信、計算和訪存復(fù)雜度,進(jìn)而獲得其通信/訪存模式、性能熱點以及可擴(kuò)展性。同時進(jìn)行指令級并行性分析與優(yōu)化,為處理器定制打下基礎(chǔ)。
通常使用指令模板來尋找應(yīng)用程序代碼中的潛在候選指令。應(yīng)用程序的執(zhí)行過程通??梢砸詧D的方式描述,如數(shù)據(jù)流圖、控制流圖;指令模板則通常表示為子圖的形式。這樣,基于指令模板的擴(kuò)展指令生成問題就能轉(zhuǎn)換為圖的同構(gòu)問題。然后再通過開銷分析對所選指令進(jìn)行約束。
擴(kuò)展指令的實現(xiàn)對硬件架構(gòu)也提出了新的要求。傳統(tǒng)的處理器架構(gòu)針對通用計算設(shè)計,結(jié)構(gòu)復(fù)雜,功耗、面積開銷大。完全定制的專用處理器結(jié)構(gòu)則存在結(jié)構(gòu)可擴(kuò)展性差的缺點。因此,需要研究面向指令集擴(kuò)展的可擴(kuò)展處理器架構(gòu)。
定制設(shè)計需要盡快盡早的進(jìn)行應(yīng)用性能、功耗與處理器資源消耗評估,以檢驗是否達(dá)到設(shè)計目標(biāo)。因此需要開展高效的性能模擬技術(shù)以及高層次的芯片面積/功耗建模研究,以便在定制設(shè)計中反復(fù)快速的進(jìn)行優(yōu)化,直至達(dá)到目標(biāo)。
工業(yè)界有不少定制處理器應(yīng)用實例。如Tensilica公司的Xtensa系列可定制處理器、微軟的 eMIPS 和 Xilinx 的 MicroBlaze處理器。在超算領(lǐng)域,已經(jīng)有采用了ASIC技術(shù)與/或Xtensa可定制處理器的超級計算機(jī),如Anton超級計算機(jī)與GreenFlash。Anton是美國紐約D.E.Shaw實驗室研制的分子動力學(xué)模擬定制系統(tǒng),由針對應(yīng)用定制的ASIC加速部件(包括Tensilica的嵌入式可定制處理器內(nèi)核)以及專門設(shè)計的3D-torus互連網(wǎng)絡(luò)構(gòu)成。Green Flash是美國勞倫斯國家實驗室(伯克利)研制的面向全球大氣預(yù)報的定制結(jié)構(gòu)超級計算機(jī)原型,采用Tensilica定制處理器以及互連結(jié)構(gòu),對它們進(jìn)行裁剪以適用于全球大氣變化預(yù)報應(yīng)用,預(yù)計其每個處理器核的峰值性能是2.7Gflops,如果總體性能為10P的話,系統(tǒng)將擁有12萬個處理器,功耗為3MW,均大大低于采用Intel或者AMD通用處理器的規(guī)模或者功耗。
學(xué)術(shù)界對可擴(kuò)展的處理器架構(gòu)也展開了諸多研究,部分舉例如下:
1.美國UCLA的Customizable Domain-Specific Computing研究中心自2010年起開始研究通用的可定制設(shè)計平臺。
2.英國帝國理工的Wayne Luk 教授研究組開展了一系列的定制指令處理器研究,其針對歸納邏輯程序設(shè)計(inductive logic programming)方面的定制化設(shè)計的運算性能是P4處理器的15倍。
3.Molen 是由核心通用處理器和可重構(gòu)協(xié)處理器組成。Molen 的主要貢獻(xiàn)是解決了指令擴(kuò)展導(dǎo)致的opcode 空間爆炸問題和可重構(gòu)器件帶寬限制問題。
4.DISC 是一種采用動態(tài)部分可重構(gòu)機(jī)制的指令集擴(kuò)展處理器。DISC 將每個指令實現(xiàn)成相互獨立的電路模塊,通過類似頁換入換出的方式,根據(jù)應(yīng)用需要,動態(tài)地加載或卸載指令功能模塊。
清華大學(xué)在國內(nèi)較早開展了定制處理器研究,提出以通用的微體系結(jié)構(gòu)擴(kuò)展支持特定應(yīng)用這一技術(shù)路線,并選取“全球氣候變化數(shù)值模擬”這一代表性關(guān)鍵應(yīng)用集為目標(biāo),實現(xiàn)了可定制處理器FPGA原型,仿真結(jié)果表明處理器的應(yīng)用性能功耗比是采用同工藝Intel至強處理器的一個數(shù)量級以上,且面積僅為幾十分之一。
定制化設(shè)計成本較高,如果無法獲得較大使用量就不能真正推廣。因此一般認(rèn)為超算領(lǐng)域以及大規(guī)模云計算模式將是定制化設(shè)計的用武之地。
第一,云計算模式下,數(shù)據(jù)中心為差異化的定制處理器提供了應(yīng)用空間。
在云計算模式下,網(wǎng)絡(luò)的快速發(fā)展以及各種網(wǎng)絡(luò)終端的引入使得信息處理的界限變得模糊——通過大型數(shù)據(jù)中心提供IT基礎(chǔ)設(shè)施、存儲/計算資源以及應(yīng)用服務(wù)成為趨勢,個人可以通過多種設(shè)備來訪問、處理其感興趣的數(shù)據(jù)與服務(wù)。這樣,未來的數(shù)據(jù)中心可能將承擔(dān)大量需求各異的數(shù)據(jù)處理任務(wù),包括文本分析搜索、媒體處理、數(shù)據(jù)統(tǒng)計、事務(wù)處理等。針對這些需求各異的應(yīng)用,可以設(shè)計分別為其定制的處理器結(jié)構(gòu)。同時,數(shù)據(jù)中心內(nèi)所需的處理器數(shù)目巨大,這就為分?jǐn)偠ㄖ圃O(shè)計成本提供了基礎(chǔ)。
第二,在超級計算領(lǐng)域定制處理器將快速發(fā)展。
能充分利用超算系統(tǒng)計算能力的應(yīng)用數(shù)目是非常有限的,在很多專業(yè)場合,超級計算機(jī)在其生命周期內(nèi)往往只運行有限的幾種科學(xué)計算應(yīng)用。所以針對主要目標(biāo)應(yīng)用(或應(yīng)用集)。采用應(yīng)用定制的方法進(jìn)行處理器結(jié)構(gòu)設(shè)計能顯著提升超算系統(tǒng)的效率。而且超算系統(tǒng)往往擁有數(shù)十萬個(或者更多)的處理器核,這為定制設(shè)計的經(jīng)濟(jì)有效應(yīng)用提供了前提條件。比如,美國能源部2013年上半年開展 Codesign Project,以科學(xué)計算需求來指導(dǎo)體系結(jié)構(gòu)與系統(tǒng)軟件設(shè)計,目前計劃建設(shè)三個超算中心,分別針對燃燒(Combustion)模擬、材料模擬與核能計算。
目前,《國家重大科技基礎(chǔ)設(shè)施建設(shè)中長期規(guī)劃》中的“地球系統(tǒng)數(shù)值模擬器”正處于建設(shè)方案研討與申請階段,有關(guān)申請方提出了“應(yīng)用定制體系結(jié)構(gòu)”方案,這說明國內(nèi)的超級計算設(shè)施建設(shè)也將逐步調(diào)整指導(dǎo)思想,將系統(tǒng)的應(yīng)用效能作為關(guān)鍵指標(biāo)。
應(yīng)用為“王”,掌握需求、理解需求、服務(wù)需求是任何技術(shù)、產(chǎn)品研發(fā)具有持久生命力的根本,而且對于國內(nèi)應(yīng)用需求的理解與掌握不是任何一家國外處理器設(shè)計廠商所能替代的。從根本上講,理解具體的應(yīng)用需求,結(jié)合國內(nèi)相關(guān)科研院所在處理器設(shè)計方面的良好積累,圍繞應(yīng)用進(jìn)行處理器定制的指導(dǎo)思路將是適合我國國情的、能發(fā)揮后發(fā)優(yōu)勢的發(fā)展道路。