周凡 馬鐘 馬瑤 李申
(西安微電子技術(shù)研究所 西安 710054)
嵌入式智能算法推理加速技術(shù)就是利用FPGA相較于傳統(tǒng)處理器并行處理的優(yōu)勢(shì)來(lái)提高智能算法的推理速度,智能化計(jì)算是航天器和武器裝備領(lǐng)域目前的研究趨勢(shì),缺乏自主可控的智能算法推理能力是制約該領(lǐng)域智能化發(fā)展的瓶頸問(wèn)題。本文主要講述了航天智能化的計(jì)算需求,國(guó)內(nèi)外神經(jīng)網(wǎng)絡(luò)處理器研究現(xiàn)狀,提出了國(guó)產(chǎn)人工智能處理器的解決方案,為航天領(lǐng)域的神經(jīng)網(wǎng)絡(luò)處理器的發(fā)展提供了思路。
航天事業(yè)的飛速發(fā)展,對(duì)航天器提出了智能化要求,以支持更復(fù)雜的環(huán)境和更難的深空任務(wù)探月工程需要飛行器自主、快速機(jī)器視覺(jué)識(shí)別與智能控制,確保安全著陸;目前火星探測(cè)天地大回路控制決策的工作方式實(shí)時(shí)性低,難以滿(mǎn)足火星巡視探測(cè)任務(wù)的需求;小行星探測(cè)任務(wù)對(duì)飛行器智能感知、自主軌道機(jī)動(dòng)與姿態(tài)穩(wěn)定提出了迫切需求;非合作目標(biāo)捕獲需要航天器具備在軌智能感知、智能決策、智能控制能力;航天態(tài)勢(shì)感知方面,現(xiàn)代戰(zhàn)爭(zhēng)要求衛(wèi)星在軌目標(biāo)檢測(cè)、識(shí)別、跟蹤,實(shí)現(xiàn)天基快速偵查、對(duì)抗。
現(xiàn)代戰(zhàn)爭(zhēng)也需要更加智能的武器,避障是巡航導(dǎo)彈的關(guān)鍵能力,要求導(dǎo)彈可以低空突防和躲避雷達(dá)探測(cè),以提高生存能力;導(dǎo)彈、無(wú)人機(jī)等武器裝備迫切需要智能目標(biāo)檢測(cè)識(shí)別能力;彈群協(xié)同攻擊對(duì)智能感知、群智決策提出了應(yīng)用需求[9];針對(duì)特定軍事目標(biāo)打擊任務(wù)和天基預(yù)警任務(wù)存在的樣本少,目標(biāo)小的特點(diǎn)提出了小樣本及小目標(biāo)檢測(cè)需求[2]。
針對(duì)上述在航天和武器裝備領(lǐng)域?qū)χ悄芑惴ǖ牟煌枨?,結(jié)合目前主流的神經(jīng)網(wǎng)絡(luò)算法,給出了不同應(yīng)用所應(yīng)采用的算法和實(shí)現(xiàn)的算力要求,具體如表1所示,雖然各應(yīng)用場(chǎng)景對(duì)算法的需求不同,但對(duì)算力的要求是統(tǒng)一的,需要發(fā)展自主可控的嵌入式智能算法推理加速技術(shù)?,F(xiàn)有的航天計(jì)算機(jī)普遍缺乏智能計(jì)算能力,無(wú)法滿(mǎn)足深空探測(cè)、航天群體智能、航天勢(shì)態(tài)感知、天地一體化協(xié)同作戰(zhàn)的需求,與人工智能應(yīng)需求目標(biāo)差距較大,需要航天專(zhuān)用智能計(jì)算機(jī)。
表1 不同應(yīng)用場(chǎng)景對(duì)神經(jīng)網(wǎng)絡(luò)處理器的不同需求
想要滿(mǎn)足上述要求,關(guān)鍵就在于神經(jīng)網(wǎng)絡(luò)處理器的設(shè)計(jì),目前國(guó)內(nèi)外的神經(jīng)網(wǎng)絡(luò)處理器的種類(lèi)較多,具體的情況如下文。
通用的神經(jīng)網(wǎng)絡(luò)處理器領(lǐng)域是學(xué)術(shù)和商業(yè)界的雙重?zé)狳c(diǎn),國(guó)內(nèi)外的神經(jīng)網(wǎng)絡(luò)處理器產(chǎn)品種類(lèi)也十分豐富。
國(guó)外的例如英偉達(dá)的Jetson TX2板卡,它具有1.3TFLOPs的算力,功耗在7.5W~15W,具有8G內(nèi)存和32G固態(tài)存儲(chǔ)器,支持802.11acWLAN和藍(lán)牙;又如英特爾神經(jīng)計(jì)算棒二代,它體積小外形酷似U盤(pán),有著13.9GMACC/s的算力,功耗低至1W,并且ESA已經(jīng)針對(duì)星載應(yīng)用進(jìn)行了測(cè)試,支持Tensor Flow[11]、Caffe[9]的深度學(xué)習(xí)框架。
國(guó)外產(chǎn)品具有計(jì)算能力強(qiáng),功耗較低,配套軟件支持豐富的特點(diǎn),但不具備自主可控性不適用于航天、武器裝備應(yīng)用。
國(guó)內(nèi)的產(chǎn)品比較具有代表性的如寒武紀(jì)相關(guān)的板卡產(chǎn)品,它支持TesnsorFlow、Caffe等多種主流神經(jīng)網(wǎng)絡(luò)框架,支持CNN、RNN等多種深度學(xué)習(xí)模型,算力為16TFLOPs,功耗在80W~110W,配套軟件僅支持桌面端操作系統(tǒng)[4~8];又如華為的麒麟970,該芯片為華為首款“人工智能處理器”SOC,架構(gòu)中包含了寒武紀(jì)的Cambricon-1A神經(jīng)網(wǎng)絡(luò)處理器,采用10nm工藝制造,計(jì)算能力為1.92TFLOPs,目前僅支持安卓操作系統(tǒng)下的開(kāi)發(fā)。
國(guó)內(nèi)的產(chǎn)品計(jì)算能力強(qiáng)但功耗較大,配套軟件支持平臺(tái)有限,不適用于星彈載使用環(huán)境。
總結(jié)來(lái)說(shuō)目前已有的神經(jīng)網(wǎng)絡(luò)處理器,國(guó)外的產(chǎn)品不具備自主可控性,國(guó)內(nèi)的產(chǎn)品耗又偏高,并且這些商用處理器的配套軟件缺乏航天嵌入式軟件環(huán)境的支持,需要發(fā)展自主可控的嵌入式智能算法推理加速技術(shù)。
鑒于國(guó)產(chǎn)化設(shè)計(jì)需求和目前國(guó)產(chǎn)化器件的實(shí)際情況,我們進(jìn)行了國(guó)產(chǎn)化器件選型并由不同的器件提出了兩種不同的解決方案。
器件選型方面目前國(guó)產(chǎn)FPGA芯片廠商有無(wú)錫中微億芯有限公司,成都華微電子科技有限公司,深圳國(guó)微電子有限公司,上海復(fù)旦微電子集團(tuán)股份有限公司和航天科技772所這5家單位,其中復(fù)旦微電子和國(guó)微電子提供的產(chǎn)品指標(biāo)相對(duì)高。對(duì)所有國(guó)產(chǎn)廠商的FPGA器件進(jìn)行性能和指標(biāo)對(duì)比后,我們得出結(jié)論:其中SOC方面只有復(fù)旦微電子可以提供FMQL45T900,對(duì)標(biāo)Xilinx的7代XC7Z045,性能高并且自帶4個(gè)arm核。高性能FP?GA復(fù)旦微電子和國(guó)微電子都可以提供,具體型號(hào)如表2所示。
表2 高性能?chē)?guó)產(chǎn)FPGA對(duì)比
兩者性能上均能滿(mǎn)足計(jì)算需求,不同之處是復(fù)旦微電子不僅可以支持Xilinx開(kāi)發(fā)環(huán)境還支持自主開(kāi)發(fā)環(huán)境,在自主化應(yīng)用方面兩者都是不錯(cuò)的選擇。
通過(guò)器件選型,只有上述三款FPGA滿(mǎn)足國(guó)產(chǎn)化和計(jì)算性能的需求,對(duì)此我們提出了兩種具體的解決方案:一是使用高級(jí)綜合的方法,采用SOC上ARM與FPGA一體化的解決方案;二是使用國(guó)產(chǎn)ARM與FPGA組合方式搭建硬件平臺(tái)的解決方案,神經(jīng)網(wǎng)絡(luò)加速器采用異構(gòu)并行的方式進(jìn)行神經(jīng)網(wǎng)絡(luò)算法處理。
總體方案如圖1所示,分為地面和星彈上兩部分。其中地面部分主要是對(duì)PC端訓(xùn)練成熟的神經(jīng)網(wǎng)絡(luò)算法成果進(jìn)行移植前的預(yù)處理工作,包括主流模型框架適配工作,模型的裁剪與輕量化;星彈上部分的CPU是神經(jīng)網(wǎng)絡(luò)專(zhuān)用的運(yùn)行時(shí)部分,完成對(duì)硬件計(jì)算流程的調(diào)度,PFGA部分是神經(jīng)網(wǎng)絡(luò)加速器的核心,對(duì)神經(jīng)網(wǎng)絡(luò)中計(jì)算密集型[1],如卷積,pooling進(jìn)行并行加速計(jì)算。
圖1 基于SOC高級(jí)綜合的神經(jīng)網(wǎng)絡(luò)加速器整體框架
如表3所示,采用SOC解決方案針對(duì)不同的卷積神經(jīng)網(wǎng)絡(luò)模型,都具有不錯(cuò)的性能來(lái)滿(mǎn)足具體應(yīng)用場(chǎng)景的需求。
表3 基于SOC高級(jí)綜合方式的神經(jīng)網(wǎng)絡(luò)加速器的計(jì)算性能
采用SOC平臺(tái)的優(yōu)點(diǎn)是,是使用簡(jiǎn)單,僅需要一片SOC芯片;開(kāi)發(fā)上利用C++語(yǔ)言統(tǒng)一設(shè)計(jì)運(yùn)行時(shí)軟件和IP核,實(shí)現(xiàn)軟件定義神經(jīng)網(wǎng)絡(luò)加速器,開(kāi)發(fā)方式更加友好;在通用性方面支持AlexNet[3]、VGG-16[10]、GoogLeNet[12]、ResNet-50[13]等主流的卷積神經(jīng)網(wǎng)絡(luò)模型;支持Convolution、Pooling、Decon?volution、FC等計(jì)算密集類(lèi)計(jì)算。
采用ARM+FPGA的異構(gòu)計(jì)算架構(gòu),整體結(jié)構(gòu)如圖2所示,arm處理器和FPGA均采用國(guó)產(chǎn)化芯片,具有自主可控的優(yōu)點(diǎn);支持目前最新的復(fù)雜的多種卷積操作,并可以根據(jù)新的算法隨時(shí)添加新的計(jì)算單元;支持網(wǎng)絡(luò)模型運(yùn)算操作類(lèi)型,如卷積層,逆卷積層,膨脹卷積層,池化層,歸一化層,scale層,非線性化層(實(shí)現(xiàn)函數(shù):ReLU,PReLU,sigmoid等);神經(jīng)網(wǎng)絡(luò)加速器計(jì)算單元之間互連、互通,形成池計(jì)算,根據(jù)計(jì)算需求適配,提高計(jì)算并行性。
圖2 基于自主可控方案的神經(jīng)網(wǎng)絡(luò)加速器整體架構(gòu)
相較于SOC的解決方案,高性能FPGA解決方案采用ARM+FPGA的組合方式,兩者通過(guò)PCIE進(jìn)行通信,開(kāi)發(fā)難度上大于SOC的解決方案,并且高性能FPGA相較于SOC解決方案也會(huì)產(chǎn)生更高的功耗。同時(shí)這種解決方案帶來(lái)的優(yōu)勢(shì)是更高性能的FPGA帶來(lái)更強(qiáng)大的算力,在并行計(jì)算上更具優(yōu)勢(shì),可以滿(mǎn)足比SOC更高算力的智能化計(jì)算需求,同時(shí)采用PCIE通用接口,可以在原有的計(jì)算機(jī)基礎(chǔ)上進(jìn)行智能計(jì)算的拓展升級(jí)而不影響其基礎(chǔ)功能。
本文講述了航天和武器裝備領(lǐng)域?qū)χ悄芑?jì)算的需求,結(jié)合目前國(guó)內(nèi)外神經(jīng)網(wǎng)絡(luò)處理器的發(fā)展情況,為自主可控的嵌入式智能加速技術(shù)提出了基于SOC和基于高性能FPGA的兩種不同的解決方案,給航天和武器裝備領(lǐng)域的智能化發(fā)展提供了思路。