目前異構(gòu)加速器的實(shí)現(xiàn)主要借助于專用集成電路(ASIC)、圖形處理單元(GPU)、現(xiàn)場可編程門陣列(FPGA)等異構(gòu)計(jì)算部件。在上述幾種典型的異構(gòu)體系結(jié)構(gòu)中,基于FPGA和CGRA等可重構(gòu)體系結(jié)構(gòu)的異構(gòu)加速器具有以下兩個(gè)優(yōu)點(diǎn):
第一,F(xiàn)PGA和CGRA等結(jié)構(gòu)內(nèi)部包含大量可配置的邏輯電路,能夠滿足特定應(yīng)用的高性能和低功耗的運(yùn)行要求,從而獲得較高的效能比。
第二,由于目前新型應(yīng)用的種類多樣、迭代速度快,而采用ASIC進(jìn)行加速器設(shè)計(jì)的周期又比較長,與之相比,采用FPGA和CGRA等可重構(gòu)體系結(jié)構(gòu)能夠快速實(shí)現(xiàn)原型系統(tǒng),并能夠根據(jù)應(yīng)用和算法的迭代進(jìn)行演化,具有良好的定制性和可重構(gòu)特性。
近年來,在體系結(jié)構(gòu)的頂級國際會(huì)議上,涌現(xiàn)了一批以可重構(gòu)體系結(jié)構(gòu)為基礎(chǔ)的異構(gòu)加速器工作,成為學(xué)術(shù)界的研究熱點(diǎn)。與此同時(shí),基于FPGA的加速器平臺也成為工業(yè)界關(guān)注的關(guān)鍵技術(shù)之一,國際知名的公司如Intel、微軟等都將可重構(gòu)計(jì)算加速器作為構(gòu)建下一代異構(gòu)加速器的重要平臺,將其廣泛應(yīng)用于數(shù)據(jù)中心和嵌入式設(shè)備中。
為了更好的回顧近年來的可重構(gòu)計(jì)算加速器相關(guān)工作,報(bào)告將以最近的可重構(gòu)計(jì)算加速器體系結(jié)構(gòu)以及算法應(yīng)用等高水平科研成果為基礎(chǔ),對國內(nèi)外的相關(guān)研究熱點(diǎn)和關(guān)注領(lǐng)域進(jìn)行客觀對比,對可重構(gòu)計(jì)算加速器的優(yōu)缺點(diǎn)和挑戰(zhàn)進(jìn)行了詳細(xì)的分析和說明。由于計(jì)算機(jī)體系結(jié)構(gòu)是國內(nèi)外計(jì)算機(jī)領(lǐng)域發(fā)展差距較大的方向之一,報(bào)告將以可重構(gòu)計(jì)算加速器為切入點(diǎn),著重分析FPGA和可重構(gòu)計(jì)算加速器等技術(shù)給國內(nèi)體系結(jié)構(gòu)研究人員帶來的新機(jī)遇和挑戰(zhàn),展望加速器體系結(jié)構(gòu)未來的發(fā)展趨勢。報(bào)告中的相關(guān)內(nèi)容希望能為我國計(jì)算機(jī)體系結(jié)構(gòu)領(lǐng)域的研究提供參考。
國內(nèi)外研究進(jìn)展比較
作者對可重構(gòu)計(jì)算加速器在國內(nèi)外的研究進(jìn)展進(jìn)行客觀對比。首先,統(tǒng)計(jì)了在可重構(gòu)計(jì)算加速器領(lǐng)域國內(nèi)外的研究工作(主要涉及在高水平會(huì)議和期刊上發(fā)表的相關(guān)工作)。其次,將圍繞體系結(jié)構(gòu)和算法應(yīng)用兩個(gè)層次的代表性工作進(jìn)行重點(diǎn)分析。第三,圍繞加速器的成熟度和解決方案等方面,對國際和國內(nèi)的進(jìn)展進(jìn)行比較。通過上述分析,作者給出國內(nèi)加速器研究存在的主要問題,旨在找到與國際頂尖水平的差距。
我們對計(jì)算機(jī)體系結(jié)構(gòu)頂級會(huì)議收錄論文情況進(jìn)行了統(tǒng)計(jì),這其中包括MICRO 2016,DAC 2016,ICCAD 2016,ISCA 2017,HPCA 2017,ASPLOS 2017,DATE 2017,F(xiàn)PGA 2017等有代表性的國際會(huì)議。具體情況如下所示:
圖1 國內(nèi)外相關(guān)工作在體系結(jié)構(gòu)頂會(huì)中的錄用情況
從圖中我們可以看出,國內(nèi)相關(guān)研究工作出現(xiàn)在體系結(jié)構(gòu)頂級會(huì)議上的頻率較之從前已經(jīng)在逐步提升,并且在工作質(zhì)量方面也取得了長足進(jìn)步。其中,中科院計(jì)算所陳云霽研究院團(tuán)隊(duì)提出的神經(jīng)網(wǎng)絡(luò)指令集Cambricon還獲得了ISCA 2016的最高評分。但是與此同時(shí),目前國內(nèi)在體系結(jié)構(gòu)領(lǐng)域的研究點(diǎn)較為集中,國外在這一領(lǐng)域的研究面更為廣泛,在系統(tǒng)功耗、并行性、可靠性、安全性等基礎(chǔ)研究,以及新型存儲系統(tǒng)、云計(jì)算、大型數(shù)據(jù)中心和加速器等方面均有豐富的研究成果。國內(nèi)目前的研究主要集中在大數(shù)據(jù)應(yīng)用以及專用加速器設(shè)計(jì)方面,缺乏在體系結(jié)構(gòu)層面上的基礎(chǔ)性的研究。因此,我們需要認(rèn)清體系結(jié)構(gòu)基礎(chǔ)學(xué)科研究對于上層科研的重要性,加大在基礎(chǔ)領(lǐng)域的研究投入和人才培養(yǎng)力度。
從體系結(jié)構(gòu)整體角度來看,在加速器設(shè)計(jì)方面,國外主要側(cè)重于加速器架構(gòu)、新型材料、編程框架以及特定應(yīng)用等方面研究,涌現(xiàn)出了一批優(yōu)秀的研究成果,并且形成了一整套完備的開發(fā)體系,比如基于新型材料的PipeLayer加速器、基于ASIC的CNN加速器—Eyeriss 和基于FPGA的框架?—DNNWeaver等。在國內(nèi)加速器的通用性和靈活性上面關(guān)注的不多,而經(jīng)常集中在研究單一特定的算法上的加速效果上。中科院和寒武紀(jì)公司在此方面的工作較為優(yōu)秀,提出了基于ASIC的神經(jīng)網(wǎng)絡(luò)加速器—DianNao系列以及稀疏網(wǎng)絡(luò)的深度學(xué)習(xí)加速器—Cambricon-X等。我們需要意識到國內(nèi)外在此領(lǐng)域的差距,可重構(gòu)計(jì)算加速器是軟件和硬件相互配合的產(chǎn)物,單一的研究軟件或者硬件并不能達(dá)到很好的效果,國內(nèi)主要是側(cè)重于單一應(yīng)用的加速效果的研究,沒有形成完備的研究體系。
對于計(jì)算機(jī)體系結(jié)構(gòu)而言,它是軟硬件系統(tǒng)的總稱,涉及面廣、結(jié)構(gòu)復(fù)雜。目前,眾多計(jì)算密集型和數(shù)據(jù)密集型的任務(wù)對計(jì)算機(jī)體系結(jié)構(gòu)提出了更高的要求,為了提升性能并降低功耗滿足日益增長的需求,使得其結(jié)構(gòu)進(jìn)一步復(fù)雜,給科研人員帶來了更大的挑戰(zhàn),同時(shí)也帶來了更多的機(jī)遇。
發(fā)展趨勢與展望
自從計(jì)算機(jī)誕生的時(shí)候開始,國內(nèi)外研究者們即注意到計(jì)算機(jī)體系結(jié)構(gòu)對計(jì)算機(jī)系統(tǒng)的性能的影響。事實(shí)上,從來不存在某種特定的計(jì)算機(jī)體系結(jié)構(gòu)對所有的應(yīng)用、任務(wù)來說都能得到最優(yōu)的性能,例如,深度學(xué)習(xí)等領(lǐng)域的應(yīng)用并行度較高,最適合處理該類任務(wù)的架構(gòu)是多核并行架構(gòu);另一方面,有一些科學(xué)計(jì)算相關(guān)的任務(wù),其本身無法并行,因此最適合的架構(gòu)是單核架構(gòu),并且需要極大的提升單核的性能。正是由于不同的計(jì)算任務(wù)有著適合自身的計(jì)算機(jī)架構(gòu),因此上世紀(jì)60年代Gerald Estrin提出了可重構(gòu)計(jì)算(Reconfigurable Computing)的概念??芍貥?gòu)計(jì)算包括作為中央控制單元的CPU,眾多可重構(gòu)的計(jì)算單元(Reconfigurable Processing Unit),這些可重構(gòu)計(jì)算單元由中央處理器CPU控制,在執(zhí)行相應(yīng)的任務(wù)(如科學(xué)計(jì)算、圖像識別、模式識別等)的時(shí)候,可重構(gòu)計(jì)算單元配置成最優(yōu)的架構(gòu)(也即硬件編程)。Reiner Hartenstein等在文獻(xiàn)[202]中指出,可重構(gòu)計(jì)算使得計(jì)算單元的時(shí)鐘頻率遠(yuǎn)低于CPU,但是綜合計(jì)算能力卻高于CPU數(shù)倍,而且功耗也低于CPU。可重構(gòu)計(jì)算加速器有著種種優(yōu)點(diǎn),但是也存在這自身的一些缺點(diǎn),如重構(gòu)開銷大,編程復(fù)雜度高等。本報(bào)告對可重構(gòu)計(jì)算加速器的優(yōu)缺點(diǎn)進(jìn)行總結(jié),并對可重構(gòu)計(jì)算技術(shù)應(yīng)用前景與趨勢進(jìn)行展望。
可重構(gòu)計(jì)算加速器的優(yōu)點(diǎn)
1. 低功耗和高性能
正如前面所述,低功耗和高性能是可重構(gòu)計(jì)算加速器最明顯的優(yōu)勢之一,可重構(gòu)計(jì)算使得計(jì)算單元的時(shí)鐘頻率遠(yuǎn)低于通用CPU,但是計(jì)算能力卻是通用CPU的數(shù)倍,并且極大的降低了系統(tǒng)的功耗。對于高性能優(yōu)勢方面,文獻(xiàn)[203]證明在一塊66MHz的FPGA芯片XC2V6000上實(shí)現(xiàn)密鑰長度為270位的橢圓曲線密碼算法的點(diǎn)積操作只需要0.36ms;而在兩個(gè)2.6GHz的Intel Xeon計(jì)算機(jī)上采用優(yōu)化的軟件實(shí)現(xiàn)該算法則需要196.71ms。FPGA可重構(gòu)計(jì)算加速器的性能要高出通用CPU 540多倍,同時(shí)時(shí)鐘頻率降低了40倍。此外,Xilinx FPGA硬件可以非常高效地實(shí)現(xiàn)各種計(jì)算,例如,實(shí)現(xiàn)相同的性能,使用FPGA加速器僅需要CPU服務(wù)器所占空間的1/12, 功耗為CPU服務(wù)器的1/12,而成本也僅為CPU服務(wù)器的1/10[204]。
2. 安全性
隨著大數(shù)據(jù)時(shí)代的到來,數(shù)據(jù)扮演的角色越來越重要,計(jì)算機(jī)作為數(shù)據(jù)的載體,其安全性變得至關(guān)重要。目前,人們提及計(jì)算機(jī)安全性問題,第一反應(yīng)是各種殺毒軟件保護(hù)著電腦。其實(shí),軟件只能扮演被動(dòng)的防御者,無法消除安全隱患。但是從體系結(jié)構(gòu)硬件層面能夠更好的提升安全性,甚至杜絕安全隱患。
3. 靈活性
可重構(gòu)計(jì)算加速器天生的可重構(gòu)特性使其對于復(fù)雜的計(jì)算場景仍然有效,例如多功能硬件加速器可以應(yīng)對頻繁的設(shè)計(jì)變更。在面對用戶需求發(fā)生改變的時(shí)候,只需要采用特定的重構(gòu)技術(shù)對加速器進(jìn)行重構(gòu)即可滿足用戶的需求,因此靈活性也是可重構(gòu)計(jì)算加速器的一大亮點(diǎn)。隨著大數(shù)據(jù)和云計(jì)算的發(fā)展,可重構(gòu)計(jì)算加速器的靈活性表現(xiàn)的更為淋漓盡致,如2016年11月中旬FPGA巨頭Xilinx在超算大會(huì)上發(fā)布的可重構(gòu)加速棧(Reconfigurable Acceleration Stack)旨在加速可重構(gòu)計(jì)算生態(tài)建設(shè)。在可重構(gòu)加速棧中,Xilinx提供了目前流行應(yīng)用框架的整合,其中包括Caffe(深度學(xué)習(xí)框架)、FFMPEG(圖像視頻處理)以及SQL(數(shù)據(jù)庫)。在此架構(gòu)之上,云端服務(wù)器的程序員無需使用硬件描述語言就可以配置和應(yīng)用加速棧中的模塊,此外Xilinx還提供了各種庫,通過在程序中調(diào)用這些庫可以更加靈活的應(yīng)用FPGA來進(jìn)行加速。
4. 并行性
實(shí)際經(jīng)驗(yàn)已經(jīng)表明流水線帶來性能的提高,高并行性能夠有效的加快程序運(yùn)行速度。隨著流水線深度的增加,造成結(jié)構(gòu)復(fù)雜,硬件開銷較大,并且對應(yīng)用或者程序本身也提出了更高的并行性要求。如果貿(mào)然地并行執(zhí)行每個(gè)程序會(huì)造成系統(tǒng)開銷劇增,得不償失。隨著可并行處理的應(yīng)用越來越多,對于并行性的需求會(huì)劇增,因此對于體系結(jié)構(gòu)中并行性的研究具有光明的未來。
5. 低成本
隨著芯片制造逐步向納米工藝逼近,F(xiàn)PGA 的優(yōu)勢越來越明顯,尤其是通過重構(gòu)多個(gè)軟核,可以在單片上實(shí)現(xiàn)多個(gè)指令集的處理器,根據(jù)現(xiàn)場計(jì)算任務(wù)的劃分,實(shí)時(shí)實(shí)現(xiàn)不同的處理器功能,達(dá)到一次芯片設(shè)計(jì),多個(gè)功能實(shí)現(xiàn),從而大幅度降低芯片設(shè)計(jì)和制造的 NRE(Non-Recurring Expenses ,一次性工程費(fèi)用)成本,通過廣闊的市場分?jǐn)偝杀荆@得總體上的性能/價(jià)格優(yōu)勢,同時(shí)將軟件實(shí)現(xiàn)(通用處理器)的靈活性和硬件實(shí)現(xiàn)(ASIC)的高性能優(yōu)點(diǎn)合二為一[205]。
可重構(gòu)計(jì)算加速器的缺點(diǎn)
1. 可重構(gòu)開銷明顯
在可重構(gòu)計(jì)算加速器設(shè)計(jì)與實(shí)現(xiàn)的過程當(dāng)中,通常需要對FPGA進(jìn)行配置,該過程包括綜合以及布局布線,然而綜合、布局布線操作所耗費(fèi)的時(shí)間長達(dá)幾十分鐘甚至數(shù)小時(shí),具體時(shí)長決定于加速器的復(fù)雜程度。重構(gòu)按照重構(gòu)的時(shí)機(jī)不同可分為靜態(tài)可重構(gòu)和動(dòng)態(tài)可重構(gòu)。靜態(tài)可重構(gòu)又稱為編譯時(shí)重構(gòu),是指在開始執(zhí)行任務(wù)之前,一次性將可重構(gòu)硬件配置為系統(tǒng)所需的某個(gè)或者某幾個(gè)功能,并且這些配置好的功能在整個(gè)任務(wù)的執(zhí)行期間不會(huì)被改變,直至整個(gè)任務(wù)執(zhí)行結(jié)束,這些可重構(gòu)硬件才能重新配置去完成其他的任務(wù);而動(dòng)態(tài)可重構(gòu)又稱為運(yùn)行時(shí)重構(gòu),其是指在任務(wù)執(zhí)行的過程中隨時(shí)重新配置可重構(gòu)硬件,運(yùn)行時(shí)重構(gòu)多為部分重構(gòu),通常采用上下文配置模式。實(shí)現(xiàn)動(dòng)態(tài)可重構(gòu)系統(tǒng)的關(guān)鍵是重新配置硬件必須盡可能的高效的和盡可能的快,如果配置延遲太大,可能會(huì)影響到計(jì)算的連續(xù)性,這樣會(huì)使得重構(gòu)的開銷抵消可重構(gòu)硬件加速帶來的加速效果。例如,在 DISC II 系統(tǒng)中,25~71%的執(zhí)行時(shí)間花費(fèi)在重構(gòu)上;在 UCLAATR 中重構(gòu)時(shí)間達(dá)到了 98.5%。
2. 編程復(fù)雜度較高
盡管可重構(gòu)計(jì)算架構(gòu)概念很早之前就已經(jīng)提出,并且已經(jīng)有許多較為成熟的工作,但是可重構(gòu)計(jì)算在當(dāng)年并沒有得到普及。其原因有兩點(diǎn):(1)從可重構(gòu)計(jì)算提出到21世紀(jì)初近40年的時(shí)間正是摩爾定律發(fā)展的黃金時(shí)期,工藝每一年半更新一次,因此架構(gòu)上更新帶來的性能增強(qiáng)不如工藝更新來的直接;(2)傳統(tǒng)的CPU上的編程使用的是高級抽象編程語言(如Java、C/C++等),并且這種編程體系已經(jīng)成熟,然而可重構(gòu)計(jì)算則需要對硬件進(jìn)行編程,通常使用硬件編程語言(如Verilog、VHDL等),這些語言對于程序員來說需要大量的時(shí)間才能掌握。
展望
在以往若干年的學(xué)術(shù)界和工業(yè)界的研究當(dāng)中,大多采用通用CPU來處理不同的類型的計(jì)算任務(wù),隨著上層應(yīng)用的不斷更迭,CPU的頻率和性能也在不斷的上升,用戶為了使用方便,更傾向于選擇已經(jīng)較為成熟的CPU來處理不同的任務(wù)。但是近年來一方面隨著摩爾定律的失效,另一方面大數(shù)據(jù)對計(jì)算機(jī)的運(yùn)算需求的迅猛增加,使得通用處理器的發(fā)展遇到瓶頸,導(dǎo)致一味的提升通用處理器的頻率和性能并不能很好的滿足用戶的需求,因此國內(nèi)外研究學(xué)者將眼光紛紛投向?qū)S眉铀倨鞯脑O(shè)計(jì),旨在設(shè)計(jì)適合處理不同任務(wù)的專用加速器來滿足用戶的需求,CPU從原來巨量且復(fù)雜的工作中抽離出來,此時(shí)CPU只需要將計(jì)算任務(wù)分發(fā)給對應(yīng)的加速器來完成即可。
可重構(gòu)計(jì)算技術(shù)已經(jīng)廣泛應(yīng)用在科學(xué)計(jì)算、國防軍事、航空航天等諸多領(lǐng)域,用于實(shí)現(xiàn)如目標(biāo)匹配、大數(shù)值運(yùn)算、數(shù)據(jù)挖掘、模型仿真等功能,都取得了非常好的效果。目前可重構(gòu)計(jì)算技術(shù)的應(yīng)用也在逐漸向民用領(lǐng)域擴(kuò)展,在汽車電子、網(wǎng)絡(luò)設(shè)備等領(lǐng)域已經(jīng)有產(chǎn)品出現(xiàn)。對可重構(gòu)計(jì)算技術(shù)的研究這些年也是方興未艾。從可重構(gòu)計(jì)算技術(shù)方面的國際會(huì)議(如ReConFig、ERSA、RAW、ARC等)的主題可以看出,對可重構(gòu)計(jì)算技術(shù)的研究主要集中在可重構(gòu)計(jì)算體系結(jié)構(gòu)、可重構(gòu)計(jì)算應(yīng)用、可重構(gòu)計(jì)算工具、可重構(gòu)計(jì)算教育、可重構(gòu)計(jì)算性能測試等方面。
隨著大數(shù)據(jù)與人工智能的發(fā)展,我國國內(nèi)目前普遍存在著軟件方面的人才相對較多,而硬件方面的人才比較匱乏的現(xiàn)象。這主要是由于要想精通底層的硬件結(jié)構(gòu),需要對計(jì)算機(jī)的組成原理和運(yùn)作方式有著充分的了解與掌握,不幸的是這部分內(nèi)容也是計(jì)算機(jī)領(lǐng)域的難點(diǎn)。同時(shí)由于可重構(gòu)計(jì)算正是基于可重構(gòu)硬件平臺展開的計(jì)算機(jī)研究,因此這也造成可重構(gòu)計(jì)算成為當(dāng)前研究的一大難點(diǎn)。在前面充分對國內(nèi)外可重構(gòu)計(jì)算調(diào)研的基礎(chǔ)上,我們總結(jié)以下三個(gè)國內(nèi)可以在可重構(gòu)計(jì)算領(lǐng)域發(fā)揮自身特長的研究想法,僅供大家參考。
(1)對可重構(gòu)計(jì)算的研究離不開可重構(gòu)計(jì)算的專業(yè)性人才,但是目前從國內(nèi)情況來看,對可重構(gòu)計(jì)算領(lǐng)域的人才培養(yǎng)力度還遠(yuǎn)遠(yuǎn)不夠,只有少數(shù)一些國內(nèi)的高校配備了相關(guān)的培養(yǎng)模式和條件。國內(nèi)的可重構(gòu)計(jì)算方向要想追趕甚至超越國外的相關(guān)研究水平,我們就需要建立合理、完善的可重構(gòu)計(jì)算領(lǐng)域的人才培養(yǎng)模式,吸引更多的年輕有活力的研究學(xué)者或者研究團(tuán)隊(duì)來為可重構(gòu)計(jì)算添磚加瓦;
(2)正如前面所述,要想可重構(gòu)計(jì)算相關(guān)的研究有著長足有力的發(fā)展,就必須有工業(yè)界相關(guān)的可重構(gòu)計(jì)算的研究平臺進(jìn)行支撐,然而這塊國內(nèi)做的也是不夠,目前我們所用的硬件設(shè)備和編程工具基本上都是由國外的開發(fā)商巨頭開發(fā)和生產(chǎn),如Xilinx、Altera等。因此,我們也需要有國產(chǎn)的可重構(gòu)硬件和自動(dòng)編程工具對我國的可重構(gòu)計(jì)算的研究做強(qiáng)有力的支撐;
(3)目前大多數(shù)可重構(gòu)計(jì)算相關(guān)研究工作是基于某些特定應(yīng)用展開可重構(gòu)計(jì)算加速器的研究,如基于神經(jīng)網(wǎng)絡(luò)的加速器、基于圖計(jì)算的加速器和數(shù)據(jù)挖掘算法加速器等。如何挖掘更多的新型的大數(shù)據(jù)應(yīng)用和設(shè)計(jì)更具有針對性的可重構(gòu)計(jì)算架構(gòu)來加速應(yīng)用也將是未來的研究熱點(diǎn)之一。
總的來說,國內(nèi)在可重構(gòu)計(jì)算領(lǐng)域也有了飛速的發(fā)展,其中具有代表性的是國內(nèi)一些著名學(xué)府和研究所的標(biāo)志性工作。展望未來,集高性能、高靈活性、低功耗、低成本、高安全性和高并行性等優(yōu)點(diǎn)于一身的可重構(gòu)計(jì)算必將獲得更大的發(fā)展和更廣的應(yīng)用。
評論
查看更多