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