999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一款人工智能芯片上FCOS模型的應用研究

2023-05-19 07:50:58林廣棟黃光紅陸俊峰
計算機技術與發展 2023年5期
關鍵詞:深度人工智能模型

林廣棟,黃光紅,陸俊峰

(中國電子科技集團公司第三十八研究所,安徽 合肥 230094)

0 引 言

近年來,深度學習模型在計算機視覺、語音處理等人工智能領域得到了越來越廣泛的應用,很多應用領域要求快速且低功耗地完成深度學習模型的推理。例如,在自動駕駛領域,要求深度學習模型在限定的時間內完成圖像傳感器拍攝的圖像中的目標識別任務;在手機等端側設備中,要求進行圖像識別、目標檢測的深度學習模型的能耗盡可能小;在大型數據中心,能耗已經成為其成本的重要組成部分,降低深度學習模型在數據中心推理和訓練的能耗成為降低數據中心成本的重要因素。然而,深度學習模型的參數量和計算量巨大,在傳統的CPU/DSP上難以完成高性能且低功耗的推理。因此,專門用于深度學習模型推理的人工智能芯片成為目前研究的熱點,且已經有成熟的產品出現[1-2]。中國電子科技集團公司第三十八所研制了一款人工智能芯片,該芯片是一個異構的SOC(System On Chip)芯片,由支持通用軟件的中央處理核心(Central Processing Unit,CPU)和神經網絡加速核(Neural Network Accelerator,NNA)構成。其中CPU負責一般的軟件(如Linux或嵌入式操作系統)的運行,而NNA負責在CPU的調度下完成數值計算密集的神經網絡推理任務,兩者配合高效地完成深度學習模型的推理。FCOS模型是目前比較先進的一種單階段無錨框的目標檢測深度學習模型[3],該模型首次提出了對目標框內的所有特征點輸出目標的位置并進行訓練的機制。這種機制在后續很多新的目標檢測深度學習模型中得到應用。該文研究了FCOS模型在該人工智能芯片上的硬件加速技術,介紹了深度學習模型在該人工智能芯片上部署的一般流程,并研究了人工智能芯片的關鍵配置如算力、DDR帶寬、數據類型對推理性能、最終效果的影響。

1 FCOS模型介紹

FCOS是一個一階段的不基于錨框的目標檢測深度學習模型。與其他的一階段深度學習模型類似,它不需要提取候選區域然后在候選區域上執行圖像分類操作。與yolo系列基于錨框的目標檢測模型相反,它不需要預先設計和定義錨框。它針對輸出特征圖的每個位置,輸出這個位置上的目標的左上角、右下角頂點相對于該位置的偏移。FCOS模型由骨干(backbone)網絡、頸(neck)網絡、頭(head)網絡組成,其中骨干網絡負責提取圖像不同層次的特征,頸網絡負責把不同層次的特征融合,而頭網絡負責根據不同尺度的特征得到最終的輸出。它同樣采用了特征金字塔格式的輸出,輸出層共5個分支,分別代表不同尺度下目標的檢測信息。FCOS目標檢測模型的骨干網絡和頸網絡的結構如圖1所示。

圖1 FCOS深度學習模型骨干及頸網絡示意圖

其頭部網絡的結構如圖2所示。該圖僅僅是輸出的五個分支的一個分支示意圖,像這樣的輸出結構在五個分支中都存在。該頭部由三類小分支組成,分別是以softmax方式處理后代表該位置目標屬于各類別的概率的分支,代表該位置處于目標的中心位置的程度的centerness分支,代表目標左上角、右下角位置的偏移的分支。若目標有N個類別,這三個小分支的通道數分別為:N、1、4。整個模型共5*(N+1+4)個輸出通道。

FCOS目標檢測深度學習模型提出了一種新的從圖像中提取更多訓練數據的方法,即位置在真實目標框里的點都可以輸出目標的位置,都會進行訓練。其于FCOS模型的思想,很多新的模型被提出,如FCOS-3D[4]、TTFNet[5]等等。相比于yolo系列目標檢測深度學習模型,FCOS模型不需要設置錨框,更便于訓練,未來將在工業界得到更廣泛的應用。

圖2 FCOS深度學習模型頭部網絡示意圖

2 一款人工智能芯片架構介紹

中國電子科技集團公司第三十八研究所研制了一款人工智能推理芯片,其深度學習推理核心的理論峰值性能達到16TOPS(INT8),支持int8、uint8、int16、float16、bfloat16等數據類型。該芯片的核心SOC架構如圖3所示。

圖3 一款人工智能芯片硬件架構

該芯片是一個由深度學習推理加速核NNA與通用處理器CPU構成的異構計算系統,兩者通過片上總線進行交互。CPU通過AHB總線配置NNA的寄存器,而NNA通過AXI總線訪問片上存儲器與片外的DDR,CPU和DDR通過片上存儲器與片外的DDR共享數據。NNA內部由4個同構的計算核構成,每核理論峰值算力為4 TOPS(INT8),4個核可以一起工作完成同一個任務,也可以分別執行不同的任務。該芯片的高速外設主要包括用于網絡通信的以太網接口(Gigabit Media Access Control,GMAC)和用于PCIE協議通信的PCIE接口。該芯片工作時,首先由CPU配置NNA,使其獲取到待執行的神經網絡模型的信息,如神經網絡模型的結構、權重信息。由CPU控制GMAC或PCIE接口從片外設備(如傳感器芯片)獲取待處理的輸入數據,存儲在DDR上。之后CPU控制NNA讀取輸入數據,執行神經網絡模型的推理過程,并把神經網絡模型的輸出結果寫到DDR上。之后CPU再控制GMAC或PCIE把計算結果傳輸到片外設備,進行下一步處理。該芯片配置了一塊片上存儲器(On Chip Memory,OCM),該存儲器相比DDR的訪問帶寬更高。神經網絡推理過程中產生的需要反復使用的中間數據,如中間特征圖的值,優先存放在OCM上,以提高推理效率。

3 FCOS模型部署步驟

該人工智能芯片提供了完善的軟件工具鏈來支持深度學習模型的部署,包括如下步驟:

①導入:將各種深度學習軟件框架生成的模型文件解析為該人工智能芯片內部的模型表示方式,以便后續處理。

②量化:深度學習軟件框架中一般用浮點數表示深度學習模型,而如果量化為低位寬的定點數在芯片上進行實時推理,將可提高推理速度[6-7]。對深度學習模型的量化有兩種方式:量化敏感的訓練[8](Quantization-Aware Training,QAT)、訓練后量化[9](Post-Training Quantization,PTQ)。前者在量化完成之后再使用訓練數據對量化后的模型進行精調。后者在訓練完成之后根據一些測量數據對激活度的范圍進行測量后直接量化。該人工智能芯片配套工具鏈使用的是訓練后量化方法。量化時,需要提供少量測試數據,軟件工具鏈會對這些輸入數據執行推理過程,以得到深度學習模型各層特征圖的取值范圍,再進行量化,以使量化后的定點數最大程度地覆蓋原始模型的浮點數的取值范圍。深度學習模型的量化分為不同的層次,包括逐層量化[10]、分組量化[11]、逐通道量化[12]等等。該人工智能芯片的軟件工具鏈的量化算法均使用逐層量化的方式。深度學習模型在芯片中的量化推理方式按量化參數是否動態變化又可分為兩類:動態量化[13]、靜態量化[14]。前者的量化參數會在運行時根據實際激活度的變化范圍進行調整;而后者的量化參數在推理前確定,并在運行時保持不變。該人工智能芯片的軟件工具鏈的量化方式是靜態量化方式。

③優化:該人工智能芯片的軟件工具鏈內部以計算圖的方式表示深度學習模型,基于計算圖,可以執行如算子合并、冗余計算刪除等計算圖優化操作,在不降低精度的基礎上提高性能。

④導出:把經過量化、優化后的深度學習模型保存下來,輸出為模型文件。該人工智能芯片的模型文件同時包含模型的結構與量化后的權重。

⑤推理:芯片上的驅動在應用程序的調用下,加載并解析模型文件,根據具體的硬件配置對計算圖執行進一步的優化,并執行實時的模型推理任務。

4 量化方式

由于深度學習模型中的權重存在一定冗余性,因此把權重及激活度量化為低位寬的數據,可以在不明顯降低模型精度的前提下減少模型的計算量、減小模型的大小,進而減少模型推理時對于片外數據傳輸帶寬的需求,最終提高模型推理的效率。量化算法主要分為兩類:對稱量化[15]和非對稱量化[16]。當以對稱量化算法量化為8位時,數據類型稱為int8;當以非對稱量化算法量化為8位時,數據類型稱為uint8;當以對稱量化算法量化為16位時,數據類型稱為int16。

4.1 INT8

量化為INT8方式時,由浮點數轉換為定點數的計算方式為:

首先計算中間值:

data=round(fdata*2fl)

然后計算最終量化值:

而由量化后的INT8值計算原始浮點值的方式如下:

fdata=qdata*2-fl

其中,fl是進行INT8量化后的常數,每一層的權重與每一層的激活度在量化后有不同的fl值,分別根據該層權重與激活度的分布計算得到。其中權重的fl的計算方法如下:

fl=7-「log2(max(abs(w)))?

其中,max(abs(w))代表一層的權重的絕對值的最大值。激活度的fl按類似的方法根據激活度的分布計算得到。

4.2 UINT8

UINT8型量化將權重和激活度都量化為無符號的8位數,量化后的數值范圍在0~255之間。由浮點數計算UINT8量化數的計算方式如下:

首先計算中間值:

data=round(fdata/scale+zeropoint)

然后計算最終量化值:

而由量化后的UINT8型數據轉換為浮點數據的計算方式為:

fdata=(qdata-zeropoint)*scale

其中,scale和zeropoint為根據特定算法計算得到的縮放因子與零點。以計算某一層的權重的scale和zeropoint為例,記神經網絡某層的權重的最大值為max(w),最小值為min(w),則該層的權重量化為UINT8時的scale和zeropoint的計算方式如下:

scale=

4.3 INT16

量化為INT16方式時,由浮點數轉換為定點數的計算方式為:

首先計算中間值:

data=round(fdata*2fl)

然后計算最終量化值:

而由量化后的INT8值計算原始浮點值的方式如下:

fdata=qdata*2-fl

其中,fl是進行INT8量化后的常數,每一層的權重與每一層的激活度在量化后有不同的fl值,分別根據該層權重與激活度的分布計算得到。其中權重的fl的計算方法如下:

fl=15-「log2(max(abs(w)))?

其中,max(abs(w))代表一層的權重的絕對值的最大值。激活度的fl按類似的方法根據激活度的分布計算得到。

4.4 FLOAT16

FLOAT16是IEEE規定的標準數據格式,共16位,各位的含義如表1所示。

表1 FLOAT16數據類型

4.5 BFLOAT16

在深度學習領域,由于網絡模型中存在大量參數,這些參數具有大量的冗余性,精確地表示這些參數的重要性降低。在深度學習模型推理領域,人們開始使用bfloat16數據類型,這種數據類型相對于常規的float16數據類型降低了尾數的位寬,增加了指數的位寬,其效果是增加了其表示的數值的范圍,減少了表示的精度。這種數據類型能在與float16相同的數據位寬下以較低的精度表示更大的數據范圍,比較適合深度學習領域。這種數據類型各位的含義如表2所示。

表2 BFLOAT16數據類型

5 實 驗

以下實驗基于中國電子科技集團公司開發的針對該人工智能芯片的演示板卡完成,該演示板卡實物圖如圖4所示。

圖4 一款人工智能芯片演示板卡實物圖

以下實驗中,FCOS模型的輸入圖像寬度為1 216,高度為800,總卷積計算量約為138 GOPS。

5.1 片上存儲器的影響

該人工智能芯片內部設置了4 MB大小的片上存儲器。片上存儲器的訪問延遲比片外的DDR小得多,并且其帶寬可以達到片上總線傳輸帶寬的上限。將FOCS模型量化為精度比較高的INT16數據類型,分別控制使用不同大小的片上存儲器,對性能的影響如表3所示。

表3 片上存儲器大小對FCOS模型推理時間的影響

由表3可以看出,使用芯片內部的片上存儲器可以提高深度學習模型的推理速度。當然,片上存儲器會增加芯片的面積與功耗,其容量不可能設置太大,需要在推理性能與芯片的面積和功耗之間進行平衡。

5.2 DDR帶寬的影響

深度學習模型推理時,其中間層的通道數量很大,使得中間層特征圖無法在片上存儲器全部存儲,需要在片外容量更大的DDR中暫存。這就導致深度學習模型推理時需要進行大量片上數據與片外數據的傳輸,因此,DDR的帶寬對模型推理的性能影響很大。將FCOS模型量化為INT16數據類型,然后分別配置DDR控制器的頻率為不同的數值,在不同的DDR帶寬下進行推理,模型推理的性能如表4所示。該芯片使用DDR控制器數據位寬為64位,理論峰值帶寬(bandwidth)與頻率(frequency)的關系為:

bandwidth=frequency*64

其中,頻率的單位為MHz,而帶寬的單位為Mbit/s。

表4 DDR帶寬對FCOS模型推理時間的影響

可見,隨著DDR頻率的降低,推理性能也呈現明顯的降低。顯然,DDR帶寬對推理性能有著重要的影響。

5.3 DDR配置的影響

DDR有很多配置選項,包括配置各AXI端口的優先級、帶寬限制、是否使能bank group、寫命令重排、命令隊列選擇等等。對DDR控制器的不同屬性進行配置的寄存器數量多達三百多個。同DDR的帶寬配置一樣,DDR的各項配置也會對推理性能產生影響。該文無法窮盡所有的DDR配置,僅就是否使能bank group、是否打開寫重排功能、是否打開命令選擇功能三個選項進行實驗,檢驗這些配置對推理性能的影響。表5為幾種典型的DDR配置及不同的DDR帶寬下FCOS模型的推理性能,該表中的數據均是在模型量化為INT16數據類型、使用4核推理、片上存儲器容量為4 MB時統計出來的。

其中bank group是DDR4設備專用的概念,它把區分bank group的第[0]地址放到區分DRR顆粒“列”的地址位中,使DDR控制器同時維護兩個bank group的狀態,可以以更高的效率支持連續的burst讀寫。在本芯片的DDR配置中,支持bank group時,bank group的第[0]位位于軟件視角的地址的第[6]位。當DDR收到的burst請求大于64 byte時,使能bank group的效果更好。但實驗表明,使能bank group這個功能(bg_rotate_en)反而會降低性能,這是因為NNA發出的burst請求大小一般為64個byte或更小,而很少發出更大burst請求,這是由NNA的核心架構決定的。因此,NNA無法利用bank group的優勢。

表5 不同DDR配置下FCOS模型推理時間 ms

DDR控制器維護了一個命令隊列,按照一定的邏輯把來自不同總線端口的訪問請求放入隊列中,并支持按一定的邏輯從隊列頭部的4個命令中選擇最適當的命令發送給DDR顆粒。DDR控制器一般根據bank是否沖突、地址是否沖突等規則決定從命令隊列前4個命令中取出命令的順序。若關閉命令隊列選擇(in_order_accept)功能,則DDR控制器總是選擇隊列頭部的命令發送給顆粒。實驗表明,打開命令隊列選擇的推理性能更好,這是因為DDR控制器會在隊列頭部的命令因為顆粒未準備好等原因而無法執行時,選擇隊列頭部前4個命令中的其他命令執行,從而提高了效率。

DDR控制器對來自不同端口的寫命令有三種策略(wr_order_req):(1)不論是否是來自相同的總線端口的寫請求,也不論命令ID是否相同,都可以改變寫的順序;(2)來自相同總線端口的帶有相同寫命令ID的請求不會被重排,其他的寫命令可以被重排;(3)只要是來自相同總線端口的寫請求,都會按發送到DDR控制器的順序執行,不會被重排;來自不同總線端口的寫請求會被重排。顯然,根據DDR顆粒的狀態及時改變寫命令的執行順序,將可以提高寫命令的執行效率。實驗表明,寫重排功能打開時的推理性能要優于寫重排關閉時的推理性能。

5.4 算力的影響

該人工智能芯片中,深度學習推理加速核內部由4個結構相同的核構成,每個核的理論峰值算力為4 TOPS(int8),這4個核可以組合配置為不同的算力。作為深度學習推理的核心部件,算力的配置顯然也對推理性能產生影響。表6統計出不同算力配置下FCOS模型的推理性能,此表中的數據均是模型量化為INT16數據類型、片上存儲器容量設為4 MB時統計出的。

表6 算力配置對FCOS模型推理時間的影響

顯然,算力配置越高,推理性能越強。但推理性能與算力之間并不是線性關系。例如,四核配置下的推理時間并不是單核配置下推理時間的1/4,主要原因有兩點:(1)算力提高,計算需要的數據量線性增長,對帶寬的要求也相應提高,但芯片的整體帶寬不變,因此推理性能不能線性增長;(2)核數量增加,需要額外的操作進行特征圖的切分與計算結果的合并、核之間計算的同步,帶來額外的負擔。因此,推理性能并不能隨著算力配置的增加而線性增加。

5.5 數據類型的影響

部分硬件電路可復用為支持不同的數據類型。例如,一個計算INT16乘法的電路可以復用為4個INT8乘法的電路。同樣,該電路也可復用于計算浮點數據類型尾數的乘法。理論上,本芯片計算INT8數據類型的算力是計算INT16數據類型時算力的4倍。由于芯片帶寬、片上存儲器容量等其他因素限制,實際執行推理運算時,INT8與INT16數據類型的表現并不完全是4倍的關系。在CPU運行在1 200 MHz、NNA運行在660 MHz、DDR運行在2 400 MHz頻率下,片上存儲器容量固定為4 MB時,量化為各種數據類型的FCOS模型的運行速度如表7所示。

表7 數據類型對FCOS模型推理時間的影響

從推理性能上看,int8和uint8數據類型的推理性能幾乎相同,int16和float16的推理性能約是int8和uint8的3~4倍。Bfloat16由于需要在推理前和推理后執行向常規數據類型的轉換,性能最差。

使用不同數據類型對FCOS模型進行量化后進行目標檢測的實際效果如表8所示。

表8 FCOS模型量化為不同數據類型后的實際目標檢測效果

從以上結果可以看出,量化為BFLOAT和INT16數量類型的FCOS模型可以檢測出最左側一列中從網球到網球拍、人三種不同尺度的物體,表現最好。最終推理的結果精度上看,效果從好到差依次為:bfloat16=int16>float16>uint8>int8。其中int16數據類型等效于對同一層的特征圖,使用統一的指數來表示,由于其尾數位數大于float16數據類型的尾數位數(10位),因此,其最終的效果比float16更高。

6 結束語

該文介紹了FCOS目標檢測模型的基本網絡結構。同時介紹了一款人工智能芯片的基本硬件結構。研究了把FCOS深度學習模型應用到該人工智能芯片的方法,并研究了片上存儲器大小、DDR帶寬、DDR配置、算力、不同的量化算法等因素對推理效果的影響。研究表明,從對推理精度的影響來看,int16量化方法和bfloat16數據類型的精度最高,float16、uint8數據類型的精度依次降低,int8最差。從對推理時間的影響來看,bfloat16數據類型的效果最差,int16和float16的性能次之,int8和uint8的推理時間最短。研究結果證實,片上存儲器容量越大、DDR帶寬都對推理時間產生重要的影響,片上存儲器容量越大、DDR帶寬越大,推理時間越短;反之則越長。另外,研究還表明,DDR的配置,如是否使能bank group、是否使能命令隊列選擇功能、是否支持寫重排,也會對推理時間產生影響,但影響的程度不如DDR帶寬的影響。研究成果將為人工智能芯片、深度學習模型推理算法的研究者提供參考。

猜你喜歡
深度人工智能模型
一半模型
深度理解一元一次方程
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
深度觀察
深度觀察
2019:人工智能
商界(2019年12期)2019-01-03 06:59:05
人工智能與就業
IT經理世界(2018年20期)2018-10-24 02:38:24
深度觀察
數讀人工智能
小康(2017年16期)2017-06-07 09:00:59
主站蜘蛛池模板: 99久久精品免费看国产电影| 美女视频黄频a免费高清不卡| 国产一区二区三区日韩精品| 国产欧美另类| 中国一级特黄大片在线观看| 亚洲精品国产精品乱码不卞| 啊嗯不日本网站| 波多野结衣久久高清免费| 无码精油按摩潮喷在线播放 | 免费jjzz在在线播放国产| 韩日免费小视频| 国产av色站网站| 国产国语一级毛片| 97成人在线观看| 亚洲精品亚洲人成在线| 国产精品永久在线| 美女啪啪无遮挡| 欧美黄网在线| 国产成人亚洲毛片| 呦视频在线一区二区三区| 欧美69视频在线| 国内精品免费| 欧美在线黄| 色综合成人| 亚洲成人在线免费| 丁香婷婷激情网| 视频在线观看一区二区| 91黄视频在线观看| 熟妇丰满人妻| 高清色本在线www| 精品人妻AV区| 久久永久视频| 中文成人在线视频| 91极品美女高潮叫床在线观看| 国产精品福利一区二区久久| 97影院午夜在线观看视频| 成年A级毛片| 亚洲天堂网站在线| 亚洲黄网视频| 少妇露出福利视频| 日本午夜三级| 日韩午夜福利在线观看| 国产精品白浆无码流出在线看| 婷婷综合色| 亚洲日韩在线满18点击进入| 国产精彩视频在线观看| 日韩欧美一区在线观看| 热伊人99re久久精品最新地| 91丝袜乱伦| 欧美国产日韩一区二区三区精品影视| 亚洲一道AV无码午夜福利| 亚洲高清在线天堂精品| 99这里只有精品在线| 91色老久久精品偷偷蜜臀| 亚洲黄网视频| 免费中文字幕一级毛片| 国产麻豆91网在线看| 国产青榴视频| 国产精品毛片一区| 一级毛片免费观看久| 992tv国产人成在线观看| 精品国产欧美精品v| 欧美亚洲激情| 日日摸夜夜爽无码| 国产肉感大码AV无码| 伊在人亞洲香蕉精品區| 国产91蝌蚪窝| 欧美人与牲动交a欧美精品| 四虎在线观看视频高清无码| 久99久热只有精品国产15| 欧美国产成人在线| 国产乱子伦精品视频| 大陆精大陆国产国语精品1024 | 色欲不卡无码一区二区| 亚洲第一国产综合| 少妇极品熟妇人妻专区视频| 四虎成人免费毛片| 久久久久久久97| 欧美日韩一区二区在线播放| 久久婷婷综合色一区二区| www.91中文字幕| 国产99在线观看|