林廣棟,黃光紅,陸俊峰
(中國電子科技集團(tuán)公司第三十八研究所,安徽 合肥 230094)
近年來,深度學(xué)習(xí)模型在計算機(jī)視覺、語音處理等人工智能領(lǐng)域得到了越來越廣泛的應(yīng)用,很多應(yīng)用領(lǐng)域要求快速且低功耗地完成深度學(xué)習(xí)模型的推理。例如,在自動駕駛領(lǐng)域,要求深度學(xué)習(xí)模型在限定的時間內(nèi)完成圖像傳感器拍攝的圖像中的目標(biāo)識別任務(wù);在手機(jī)等端側(cè)設(shè)備中,要求進(jìn)行圖像識別、目標(biāo)檢測的深度學(xué)習(xí)模型的能耗盡可能小;在大型數(shù)據(jù)中心,能耗已經(jīng)成為其成本的重要組成部分,降低深度學(xué)習(xí)模型在數(shù)據(jù)中心推理和訓(xùn)練的能耗成為降低數(shù)據(jù)中心成本的重要因素。然而,深度學(xué)習(xí)模型的參數(shù)量和計算量巨大,在傳統(tǒng)的CPU/DSP上難以完成高性能且低功耗的推理。因此,專門用于深度學(xué)習(xí)模型推理的人工智能芯片成為目前研究的熱點(diǎn),且已經(jīng)有成熟的產(chǎn)品出現(xiàn)[1-2]。中國電子科技集團(tuán)公司第三十八所研制了一款人工智能芯片,該芯片是一個異構(gòu)的SOC(System On Chip)芯片,由支持通用軟件的中央處理核心(Central Processing Unit,CPU)和神經(jīng)網(wǎng)絡(luò)加速核(Neural Network Accelerator,NNA)構(gòu)成。其中CPU負(fù)責(zé)一般的軟件(如Linux或嵌入式操作系統(tǒng))的運(yùn)行,而NNA負(fù)責(zé)在CPU的調(diào)度下完成數(shù)值計算密集的神經(jīng)網(wǎng)絡(luò)推理任務(wù),兩者配合高效地完成深度學(xué)習(xí)模型的推理。FCOS模型是目前比較先進(jìn)的一種單階段無錨框的目標(biāo)檢測深度學(xué)習(xí)模型[3],該模型首次提出了對目標(biāo)框內(nèi)的所有特征點(diǎn)輸出目標(biāo)的位置并進(jìn)行訓(xùn)練的機(jī)制。這種機(jī)制在后續(xù)很多新的目標(biāo)檢測深度學(xué)習(xí)模型中得到應(yīng)用。該文研究了FCOS模型在該人工智能芯片上的硬件加速技術(shù),介紹了深度學(xué)習(xí)模型在該人工智能芯片上部署的一般流程,并研究了人工智能芯片的關(guān)鍵配置如算力、DDR帶寬、數(shù)據(jù)類型對推理性能、最終效果的影響。
FCOS是一個一階段的不基于錨框的目標(biāo)檢測深度學(xué)習(xí)模型。與其他的一階段深度學(xué)習(xí)模型類似,它不需要提取候選區(qū)域然后在候選區(qū)域上執(zhí)行圖像分類操作。與yolo系列基于錨框的目標(biāo)檢測模型相反,它不需要預(yù)先設(shè)計和定義錨框。它針對輸出特征圖的每個位置,輸出這個位置上的目標(biāo)的左上角、右下角頂點(diǎn)相對于該位置的偏移。FCOS模型由骨干(backbone)網(wǎng)絡(luò)、頸(neck)網(wǎng)絡(luò)、頭(head)網(wǎng)絡(luò)組成,其中骨干網(wǎng)絡(luò)負(fù)責(zé)提取圖像不同層次的特征,頸網(wǎng)絡(luò)負(fù)責(zé)把不同層次的特征融合,而頭網(wǎng)絡(luò)負(fù)責(zé)根據(jù)不同尺度的特征得到最終的輸出。它同樣采用了特征金字塔格式的輸出,輸出層共5個分支,分別代表不同尺度下目標(biāo)的檢測信息。FCOS目標(biāo)檢測模型的骨干網(wǎng)絡(luò)和頸網(wǎng)絡(luò)的結(jié)構(gòu)如圖1所示。
圖1 FCOS深度學(xué)習(xí)模型骨干及頸網(wǎng)絡(luò)示意圖
其頭部網(wǎng)絡(luò)的結(jié)構(gòu)如圖2所示。該圖僅僅是輸出的五個分支的一個分支示意圖,像這樣的輸出結(jié)構(gòu)在五個分支中都存在。該頭部由三類小分支組成,分別是以softmax方式處理后代表該位置目標(biāo)屬于各類別的概率的分支,代表該位置處于目標(biāo)的中心位置的程度的centerness分支,代表目標(biāo)左上角、右下角位置的偏移的分支。若目標(biāo)有N個類別,這三個小分支的通道數(shù)分別為:N、1、4。整個模型共5*(N+1+4)個輸出通道。
FCOS目標(biāo)檢測深度學(xué)習(xí)模型提出了一種新的從圖像中提取更多訓(xùn)練數(shù)據(jù)的方法,即位置在真實目標(biāo)框里的點(diǎn)都可以輸出目標(biāo)的位置,都會進(jìn)行訓(xùn)練。其于FCOS模型的思想,很多新的模型被提出,如FCOS-3D[4]、TTFNet[5]等等。相比于yolo系列目標(biāo)檢測深度學(xué)習(xí)模型,FCOS模型不需要設(shè)置錨框,更便于訓(xùn)練,未來將在工業(yè)界得到更廣泛的應(yīng)用。
圖2 FCOS深度學(xué)習(xí)模型頭部網(wǎng)絡(luò)示意圖
中國電子科技集團(tuán)公司第三十八研究所研制了一款人工智能推理芯片,其深度學(xué)習(xí)推理核心的理論峰值性能達(dá)到16TOPS(INT8),支持int8、uint8、int16、float16、bfloat16等數(shù)據(jù)類型。該芯片的核心SOC架構(gòu)如圖3所示。
圖3 一款人工智能芯片硬件架構(gòu)
該芯片是一個由深度學(xué)習(xí)推理加速核NNA與通用處理器CPU構(gòu)成的異構(gòu)計算系統(tǒng),兩者通過片上總線進(jìn)行交互。CPU通過AHB總線配置NNA的寄存器,而NNA通過AXI總線訪問片上存儲器與片外的DDR,CPU和DDR通過片上存儲器與片外的DDR共享數(shù)據(jù)。NNA內(nèi)部由4個同構(gòu)的計算核構(gòu)成,每核理論峰值算力為4 TOPS(INT8),4個核可以一起工作完成同一個任務(wù),也可以分別執(zhí)行不同的任務(wù)。該芯片的高速外設(shè)主要包括用于網(wǎng)絡(luò)通信的以太網(wǎng)接口(Gigabit Media Access Control,GMAC)和用于PCIE協(xié)議通信的PCIE接口。該芯片工作時,首先由CPU配置NNA,使其獲取到待執(zhí)行的神經(jīng)網(wǎng)絡(luò)模型的信息,如神經(jīng)網(wǎng)絡(luò)模型的結(jié)構(gòu)、權(quán)重信息。由CPU控制GMAC或PCIE接口從片外設(shè)備(如傳感器芯片)獲取待處理的輸入數(shù)據(jù),存儲在DDR上。之后CPU控制NNA讀取輸入數(shù)據(jù),執(zhí)行神經(jīng)網(wǎng)絡(luò)模型的推理過程,并把神經(jīng)網(wǎng)絡(luò)模型的輸出結(jié)果寫到DDR上。之后CPU再控制GMAC或PCIE把計算結(jié)果傳輸?shù)狡庠O(shè)備,進(jìn)行下一步處理。該芯片配置了一塊片上存儲器(On Chip Memory,OCM),該存儲器相比DDR的訪問帶寬更高。神經(jīng)網(wǎng)絡(luò)推理過程中產(chǎn)生的需要反復(fù)使用的中間數(shù)據(jù),如中間特征圖的值,優(yōu)先存放在OCM上,以提高推理效率。
該人工智能芯片提供了完善的軟件工具鏈來支持深度學(xué)習(xí)模型的部署,包括如下步驟:
①導(dǎo)入:將各種深度學(xué)習(xí)軟件框架生成的模型文件解析為該人工智能芯片內(nèi)部的模型表示方式,以便后續(xù)處理。
②量化:深度學(xué)習(xí)軟件框架中一般用浮點(diǎn)數(shù)表示深度學(xué)習(xí)模型,而如果量化為低位寬的定點(diǎn)數(shù)在芯片上進(jìn)行實時推理,將可提高推理速度[6-7]。對深度學(xué)習(xí)模型的量化有兩種方式:量化敏感的訓(xùn)練[8](Quantization-Aware Training,QAT)、訓(xùn)練后量化[9](Post-Training Quantization,PTQ)。前者在量化完成之后再使用訓(xùn)練數(shù)據(jù)對量化后的模型進(jìn)行精調(diào)。后者在訓(xùn)練完成之后根據(jù)一些測量數(shù)據(jù)對激活度的范圍進(jìn)行測量后直接量化。該人工智能芯片配套工具鏈?zhǔn)褂玫氖怯?xùn)練后量化方法。量化時,需要提供少量測試數(shù)據(jù),軟件工具鏈會對這些輸入數(shù)據(jù)執(zhí)行推理過程,以得到深度學(xué)習(xí)模型各層特征圖的取值范圍,再進(jìn)行量化,以使量化后的定點(diǎn)數(shù)最大程度地覆蓋原始模型的浮點(diǎn)數(shù)的取值范圍。深度學(xué)習(xí)模型的量化分為不同的層次,包括逐層量化[10]、分組量化[11]、逐通道量化[12]等等。該人工智能芯片的軟件工具鏈的量化算法均使用逐層量化的方式。深度學(xué)習(xí)模型在芯片中的量化推理方式按量化參數(shù)是否動態(tài)變化又可分為兩類:動態(tài)量化[13]、靜態(tài)量化[14]。前者的量化參數(shù)會在運(yùn)行時根據(jù)實際激活度的變化范圍進(jìn)行調(diào)整;而后者的量化參數(shù)在推理前確定,并在運(yùn)行時保持不變。該人工智能芯片的軟件工具鏈的量化方式是靜態(tài)量化方式。
③優(yōu)化:該人工智能芯片的軟件工具鏈內(nèi)部以計算圖的方式表示深度學(xué)習(xí)模型,基于計算圖,可以執(zhí)行如算子合并、冗余計算刪除等計算圖優(yōu)化操作,在不降低精度的基礎(chǔ)上提高性能。
④導(dǎo)出:把經(jīng)過量化、優(yōu)化后的深度學(xué)習(xí)模型保存下來,輸出為模型文件。該人工智能芯片的模型文件同時包含模型的結(jié)構(gòu)與量化后的權(quán)重。
⑤推理:芯片上的驅(qū)動在應(yīng)用程序的調(diào)用下,加載并解析模型文件,根據(jù)具體的硬件配置對計算圖執(zhí)行進(jìn)一步的優(yōu)化,并執(zhí)行實時的模型推理任務(wù)。
由于深度學(xué)習(xí)模型中的權(quán)重存在一定冗余性,因此把權(quán)重及激活度量化為低位寬的數(shù)據(jù),可以在不明顯降低模型精度的前提下減少模型的計算量、減小模型的大小,進(jìn)而減少模型推理時對于片外數(shù)據(jù)傳輸帶寬的需求,最終提高模型推理的效率。量化算法主要分為兩類:對稱量化[15]和非對稱量化[16]。當(dāng)以對稱量化算法量化為8位時,數(shù)據(jù)類型稱為int8;當(dāng)以非對稱量化算法量化為8位時,數(shù)據(jù)類型稱為uint8;當(dāng)以對稱量化算法量化為16位時,數(shù)據(jù)類型稱為int16。
量化為INT8方式時,由浮點(diǎn)數(shù)轉(zhuǎn)換為定點(diǎn)數(shù)的計算方式為:
首先計算中間值:
data=round(fdata*2fl)
然后計算最終量化值:
而由量化后的INT8值計算原始浮點(diǎn)值的方式如下:
fdata=qdata*2-fl
其中,fl是進(jìn)行INT8量化后的常數(shù),每一層的權(quán)重與每一層的激活度在量化后有不同的fl值,分別根據(jù)該層權(quán)重與激活度的分布計算得到。其中權(quán)重的fl的計算方法如下:
fl=7-「log2(max(abs(w)))?
其中,max(abs(w))代表一層的權(quán)重的絕對值的最大值。激活度的fl按類似的方法根據(jù)激活度的分布計算得到。
UINT8型量化將權(quán)重和激活度都量化為無符號的8位數(shù),量化后的數(shù)值范圍在0~255之間。由浮點(diǎn)數(shù)計算UINT8量化數(shù)的計算方式如下:
首先計算中間值:
data=round(fdata/scale+zeropoint)
然后計算最終量化值:
而由量化后的UINT8型數(shù)據(jù)轉(zhuǎn)換為浮點(diǎn)數(shù)據(jù)的計算方式為:
fdata=(qdata-zeropoint)*scale
其中,scale和zeropoint為根據(jù)特定算法計算得到的縮放因子與零點(diǎn)。以計算某一層的權(quán)重的scale和zeropoint為例,記神經(jīng)網(wǎng)絡(luò)某層的權(quán)重的最大值為max(w),最小值為min(w),則該層的權(quán)重量化為UINT8時的scale和zeropoint的計算方式如下:
scale=
量化為INT16方式時,由浮點(diǎn)數(shù)轉(zhuǎn)換為定點(diǎn)數(shù)的計算方式為:
首先計算中間值:
data=round(fdata*2fl)
然后計算最終量化值:
而由量化后的INT8值計算原始浮點(diǎn)值的方式如下:
fdata=qdata*2-fl
其中,fl是進(jìn)行INT8量化后的常數(shù),每一層的權(quán)重與每一層的激活度在量化后有不同的fl值,分別根據(jù)該層權(quán)重與激活度的分布計算得到。其中權(quán)重的fl的計算方法如下:
fl=15-「log2(max(abs(w)))?
其中,max(abs(w))代表一層的權(quán)重的絕對值的最大值。激活度的fl按類似的方法根據(jù)激活度的分布計算得到。
FLOAT16是IEEE規(guī)定的標(biāo)準(zhǔn)數(shù)據(jù)格式,共16位,各位的含義如表1所示。
表1 FLOAT16數(shù)據(jù)類型
在深度學(xué)習(xí)領(lǐng)域,由于網(wǎng)絡(luò)模型中存在大量參數(shù),這些參數(shù)具有大量的冗余性,精確地表示這些參數(shù)的重要性降低。在深度學(xué)習(xí)模型推理領(lǐng)域,人們開始使用bfloat16數(shù)據(jù)類型,這種數(shù)據(jù)類型相對于常規(guī)的float16數(shù)據(jù)類型降低了尾數(shù)的位寬,增加了指數(shù)的位寬,其效果是增加了其表示的數(shù)值的范圍,減少了表示的精度。這種數(shù)據(jù)類型能在與float16相同的數(shù)據(jù)位寬下以較低的精度表示更大的數(shù)據(jù)范圍,比較適合深度學(xué)習(xí)領(lǐng)域。這種數(shù)據(jù)類型各位的含義如表2所示。
表2 BFLOAT16數(shù)據(jù)類型
以下實驗基于中國電子科技集團(tuán)公司開發(fā)的針對該人工智能芯片的演示板卡完成,該演示板卡實物圖如圖4所示。
圖4 一款人工智能芯片演示板卡實物圖
以下實驗中,FCOS模型的輸入圖像寬度為1 216,高度為800,總卷積計算量約為138 GOPS。
該人工智能芯片內(nèi)部設(shè)置了4 MB大小的片上存儲器。片上存儲器的訪問延遲比片外的DDR小得多,并且其帶寬可以達(dá)到片上總線傳輸帶寬的上限。將FOCS模型量化為精度比較高的INT16數(shù)據(jù)類型,分別控制使用不同大小的片上存儲器,對性能的影響如表3所示。
表3 片上存儲器大小對FCOS模型推理時間的影響
由表3可以看出,使用芯片內(nèi)部的片上存儲器可以提高深度學(xué)習(xí)模型的推理速度。當(dāng)然,片上存儲器會增加芯片的面積與功耗,其容量不可能設(shè)置太大,需要在推理性能與芯片的面積和功耗之間進(jìn)行平衡。
深度學(xué)習(xí)模型推理時,其中間層的通道數(shù)量很大,使得中間層特征圖無法在片上存儲器全部存儲,需要在片外容量更大的DDR中暫存。這就導(dǎo)致深度學(xué)習(xí)模型推理時需要進(jìn)行大量片上數(shù)據(jù)與片外數(shù)據(jù)的傳輸,因此,DDR的帶寬對模型推理的性能影響很大。將FCOS模型量化為INT16數(shù)據(jù)類型,然后分別配置DDR控制器的頻率為不同的數(shù)值,在不同的DDR帶寬下進(jìn)行推理,模型推理的性能如表4所示。該芯片使用DDR控制器數(shù)據(jù)位寬為64位,理論峰值帶寬(bandwidth)與頻率(frequency)的關(guān)系為:
bandwidth=frequency*64
其中,頻率的單位為MHz,而帶寬的單位為Mbit/s。
表4 DDR帶寬對FCOS模型推理時間的影響
可見,隨著DDR頻率的降低,推理性能也呈現(xiàn)明顯的降低。顯然,DDR帶寬對推理性能有著重要的影響。
DDR有很多配置選項,包括配置各AXI端口的優(yōu)先級、帶寬限制、是否使能bank group、寫命令重排、命令隊列選擇等等。對DDR控制器的不同屬性進(jìn)行配置的寄存器數(shù)量多達(dá)三百多個。同DDR的帶寬配置一樣,DDR的各項配置也會對推理性能產(chǎn)生影響。該文無法窮盡所有的DDR配置,僅就是否使能bank group、是否打開寫重排功能、是否打開命令選擇功能三個選項進(jìn)行實驗,檢驗這些配置對推理性能的影響。表5為幾種典型的DDR配置及不同的DDR帶寬下FCOS模型的推理性能,該表中的數(shù)據(jù)均是在模型量化為INT16數(shù)據(jù)類型、使用4核推理、片上存儲器容量為4 MB時統(tǒng)計出來的。
其中bank group是DDR4設(shè)備專用的概念,它把區(qū)分bank group的第[0]地址放到區(qū)分DRR顆?!傲小钡牡刂肺恢?使DDR控制器同時維護(hù)兩個bank group的狀態(tài),可以以更高的效率支持連續(xù)的burst讀寫。在本芯片的DDR配置中,支持bank group時,bank group的第[0]位位于軟件視角的地址的第[6]位。當(dāng)DDR收到的burst請求大于64 byte時,使能bank group的效果更好。但實驗表明,使能bank group這個功能(bg_rotate_en)反而會降低性能,這是因為NNA發(fā)出的burst請求大小一般為64個byte或更小,而很少發(fā)出更大burst請求,這是由NNA的核心架構(gòu)決定的。因此,NNA無法利用bank group的優(yōu)勢。
表5 不同DDR配置下FCOS模型推理時間 ms
DDR控制器維護(hù)了一個命令隊列,按照一定的邏輯把來自不同總線端口的訪問請求放入隊列中,并支持按一定的邏輯從隊列頭部的4個命令中選擇最適當(dāng)?shù)拿畎l(fā)送給DDR顆粒。DDR控制器一般根據(jù)bank是否沖突、地址是否沖突等規(guī)則決定從命令隊列前4個命令中取出命令的順序。若關(guān)閉命令隊列選擇(in_order_accept)功能,則DDR控制器總是選擇隊列頭部的命令發(fā)送給顆粒。實驗表明,打開命令隊列選擇的推理性能更好,這是因為DDR控制器會在隊列頭部的命令因為顆粒未準(zhǔn)備好等原因而無法執(zhí)行時,選擇隊列頭部前4個命令中的其他命令執(zhí)行,從而提高了效率。
DDR控制器對來自不同端口的寫命令有三種策略(wr_order_req):(1)不論是否是來自相同的總線端口的寫請求,也不論命令I(lǐng)D是否相同,都可以改變寫的順序;(2)來自相同總線端口的帶有相同寫命令I(lǐng)D的請求不會被重排,其他的寫命令可以被重排;(3)只要是來自相同總線端口的寫請求,都會按發(fā)送到DDR控制器的順序執(zhí)行,不會被重排;來自不同總線端口的寫請求會被重排。顯然,根據(jù)DDR顆粒的狀態(tài)及時改變寫命令的執(zhí)行順序,將可以提高寫命令的執(zhí)行效率。實驗表明,寫重排功能打開時的推理性能要優(yōu)于寫重排關(guān)閉時的推理性能。
該人工智能芯片中,深度學(xué)習(xí)推理加速核內(nèi)部由4個結(jié)構(gòu)相同的核構(gòu)成,每個核的理論峰值算力為4 TOPS(int8),這4個核可以組合配置為不同的算力。作為深度學(xué)習(xí)推理的核心部件,算力的配置顯然也對推理性能產(chǎn)生影響。表6統(tǒng)計出不同算力配置下FCOS模型的推理性能,此表中的數(shù)據(jù)均是模型量化為INT16數(shù)據(jù)類型、片上存儲器容量設(shè)為4 MB時統(tǒng)計出的。
表6 算力配置對FCOS模型推理時間的影響
顯然,算力配置越高,推理性能越強(qiáng)。但推理性能與算力之間并不是線性關(guān)系。例如,四核配置下的推理時間并不是單核配置下推理時間的1/4,主要原因有兩點(diǎn):(1)算力提高,計算需要的數(shù)據(jù)量線性增長,對帶寬的要求也相應(yīng)提高,但芯片的整體帶寬不變,因此推理性能不能線性增長;(2)核數(shù)量增加,需要額外的操作進(jìn)行特征圖的切分與計算結(jié)果的合并、核之間計算的同步,帶來額外的負(fù)擔(dān)。因此,推理性能并不能隨著算力配置的增加而線性增加。
部分硬件電路可復(fù)用為支持不同的數(shù)據(jù)類型。例如,一個計算INT16乘法的電路可以復(fù)用為4個INT8乘法的電路。同樣,該電路也可復(fù)用于計算浮點(diǎn)數(shù)據(jù)類型尾數(shù)的乘法。理論上,本芯片計算INT8數(shù)據(jù)類型的算力是計算INT16數(shù)據(jù)類型時算力的4倍。由于芯片帶寬、片上存儲器容量等其他因素限制,實際執(zhí)行推理運(yùn)算時,INT8與INT16數(shù)據(jù)類型的表現(xiàn)并不完全是4倍的關(guān)系。在CPU運(yùn)行在1 200 MHz、NNA運(yùn)行在660 MHz、DDR運(yùn)行在2 400 MHz頻率下,片上存儲器容量固定為4 MB時,量化為各種數(shù)據(jù)類型的FCOS模型的運(yùn)行速度如表7所示。
表7 數(shù)據(jù)類型對FCOS模型推理時間的影響
從推理性能上看,int8和uint8數(shù)據(jù)類型的推理性能幾乎相同,int16和float16的推理性能約是int8和uint8的3~4倍。Bfloat16由于需要在推理前和推理后執(zhí)行向常規(guī)數(shù)據(jù)類型的轉(zhuǎn)換,性能最差。
使用不同數(shù)據(jù)類型對FCOS模型進(jìn)行量化后進(jìn)行目標(biāo)檢測的實際效果如表8所示。
表8 FCOS模型量化為不同數(shù)據(jù)類型后的實際目標(biāo)檢測效果
從以上結(jié)果可以看出,量化為BFLOAT和INT16數(shù)量類型的FCOS模型可以檢測出最左側(cè)一列中從網(wǎng)球到網(wǎng)球拍、人三種不同尺度的物體,表現(xiàn)最好。最終推理的結(jié)果精度上看,效果從好到差依次為:bfloat16=int16>float16>uint8>int8。其中int16數(shù)據(jù)類型等效于對同一層的特征圖,使用統(tǒng)一的指數(shù)來表示,由于其尾數(shù)位數(shù)大于float16數(shù)據(jù)類型的尾數(shù)位數(shù)(10位),因此,其最終的效果比float16更高。
該文介紹了FCOS目標(biāo)檢測模型的基本網(wǎng)絡(luò)結(jié)構(gòu)。同時介紹了一款人工智能芯片的基本硬件結(jié)構(gòu)。研究了把FCOS深度學(xué)習(xí)模型應(yīng)用到該人工智能芯片的方法,并研究了片上存儲器大小、DDR帶寬、DDR配置、算力、不同的量化算法等因素對推理效果的影響。研究表明,從對推理精度的影響來看,int16量化方法和bfloat16數(shù)據(jù)類型的精度最高,float16、uint8數(shù)據(jù)類型的精度依次降低,int8最差。從對推理時間的影響來看,bfloat16數(shù)據(jù)類型的效果最差,int16和float16的性能次之,int8和uint8的推理時間最短。研究結(jié)果證實,片上存儲器容量越大、DDR帶寬都對推理時間產(chǎn)生重要的影響,片上存儲器容量越大、DDR帶寬越大,推理時間越短;反之則越長。另外,研究還表明,DDR的配置,如是否使能bank group、是否使能命令隊列選擇功能、是否支持寫重排,也會對推理時間產(chǎn)生影響,但影響的程度不如DDR帶寬的影響。研究成果將為人工智能芯片、深度學(xué)習(xí)模型推理算法的研究者提供參考。