加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 2.1 卷積神經(jīng)網(wǎng)絡(luò)原理
    • 2.2?YOLOv5s目標(biāo)檢測網(wǎng)絡(luò)模型
    • 2.4?基于FPGA的動態(tài)重構(gòu)技術(shù)
    • 2.5 ZYNQ軟硬協(xié)同開發(fā)
    • 2.5.1 ZYNQ UltraScale+MPSoC平臺
    • 2.5.2 高層次綜合設(shè)計
    • 2.5.3 深度學(xué)習(xí)處理單元
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

目標(biāo)檢測算法的動態(tài)重構(gòu)硬件加速系統(tǒng)的基礎(chǔ)理論概述

09/04 21:55
1767
閱讀需 25 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

2.1 卷積神經(jīng)網(wǎng)絡(luò)原理

卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是一種前饋人工神經(jīng)網(wǎng)絡(luò),相較于傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò),它具有極強(qiáng)的處理能力,可以直接處理三維圖像中的大量像素數(shù)據(jù),而且具有良好的算法擴(kuò)展性和特征提取能力,因此在機(jī)器視覺領(lǐng)域得到了廣泛的應(yīng)用。如圖2-1所示CNN包含的運(yùn)算層通常由池化運(yùn)算層、卷積運(yùn)算層,全連接運(yùn)算層和激活運(yùn)算層組成的。

卷積神經(jīng)網(wǎng)絡(luò)概念結(jié)構(gòu)圖

(1)卷積層

卷積神經(jīng)網(wǎng)絡(luò)的核心部分之一是卷積層,它利用卷積核來完成大量注入數(shù)據(jù),從而抽取出數(shù)據(jù)中的有用內(nèi)容。卷積核能夠看作是一個過濾器,其大小和形狀能夠參照結(jié)合應(yīng)當(dāng)需要進(jìn)行調(diào)整。卷積操作是一種將圖像中的像素值與輸入圖像中的每一位像素值進(jìn)行相乘并求和的方法,這樣就可以獲得一種新的特征值,即卷積特征值。卷積層通過多個卷積核的組合提取不同的特征信息,同時卷積層還可以保持空間信息的局部連接性,使得其在處理圖像時具有較好的魯棒性。單個卷積層的運(yùn)算公式如式(2-1)所示。

——特征圖的點(x+i,y+j)下的像素值;

k——卷積核的尺寸;

W——輸入特征圖的寬;

H——輸入特征圖的高;

——卷積核對應(yīng)的權(quán)重參數(shù)值;

b——卷積核對應(yīng)的偏差參數(shù)值;

——激活函數(shù);

——輸入特征圖中以(x,y)為中心點坐標(biāo),并且卷積窗口大小為k×k的二維卷積的卷積輸出值。

(2)池化層

池化層也稱為下采樣層,通過降低特征圖維度來降低特征圖冗余度和網(wǎng)絡(luò)計算復(fù)雜度,有效防止過擬合。 池化層的計算公式如式(2-2)所示。它主要用于降低卷積層的輸出維度,減少計算量和內(nèi)存占用,同時增強(qiáng)特征的不變性和泛化性。池化層通常包括最大池化和平均池化。最大池化是在一個固定尺寸的矩陣窗口內(nèi)尋找最大的值作為輸出值,而平均池化則是計算窗口內(nèi)所有值的平均值作為輸出值。通過多次卷積操作和池化操作,卷積神經(jīng)網(wǎng)絡(luò)能夠逐層提取圖像特征圖,并且不改變其深度。

式中:

——第n層卷積層輸出的第j個特征圖;

——激活函數(shù);

——池化層的池化方式,常用的有平均池化、最大池化、混合池化和隨機(jī)池化。

以最大池化方式為例,當(dāng)池化步長為2時,最大池化的過程如圖2-2所示。

最大池化層概念示意圖

(3)全連接層

全連接層通常作為CNN中的最后一層,將卷積層和池化層提取的特征映射到輸出的類別標(biāo)簽,是每個節(jié)點與上一層中的節(jié)點相互連接,組成一個全連接的神經(jīng)網(wǎng)絡(luò)層。全連接層通常采用softmax函數(shù)將最終的輸出值映射到不同的標(biāo)簽上,從而實現(xiàn)分類任務(wù)。

除了以上三個基本組件外,卷積神經(jīng)網(wǎng)絡(luò)還包括其他一些重要的技術(shù)和概念,如批標(biāo)準(zhǔn)化、Dropout、損失函數(shù)、優(yōu)化算法等。其中,批標(biāo)準(zhǔn)化可以使得神經(jīng)網(wǎng)絡(luò)的訓(xùn)練更加穩(wěn)定和快速,Dropout可以防止神經(jīng)網(wǎng)絡(luò)過擬合,損失函數(shù)可以衡量神經(jīng)網(wǎng)絡(luò)的訓(xùn)練效果,優(yōu)化算法可以通過梯度下降等方式對神經(jīng)網(wǎng)絡(luò)的參數(shù)進(jìn)行更新和優(yōu)化。

在卷積神經(jīng)網(wǎng)絡(luò)中,數(shù)據(jù)通常被表示為多維數(shù)組,如二維的圖像數(shù)據(jù)、三維的音頻數(shù)據(jù)等。對于圖像數(shù)據(jù),通常使用RGB三個通道來表示不同顏色的像素值,因此其維度為寬×高×通道數(shù)。而對于音頻數(shù)據(jù),通常使用頻譜圖或Mel頻譜圖來表示音頻的特征,其維度為時間步數(shù)×頻譜數(shù)。

卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練通常需要大量的數(shù)據(jù)和計算資源。為了避免過擬合和提高泛化性能,常常使用數(shù)據(jù)增強(qiáng)和正則化等技術(shù)來擴(kuò)充數(shù)據(jù)集和減小模型的復(fù)雜度。此外,還可以使用預(yù)訓(xùn)練模型和遷移學(xué)習(xí)等技術(shù)來加速訓(xùn)練和提高模型的準(zhǔn)確性。

2.2?YOLOv5s目標(biāo)檢測網(wǎng)絡(luò)模型

YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)圖

YOLOv5(You Only Look Once version?5)是由Jocher在2020年提出的一種基于深度學(xué)習(xí)的目標(biāo)檢測網(wǎng)絡(luò),它可以用于對輸入圖像進(jìn)行實時的目標(biāo)檢測和分類,在目標(biāo)檢測方面具有優(yōu)異的性能和精度[80]。YOLOv5目標(biāo)檢測算法的原理是將輸入圖像分割成不同的網(wǎng)格,對每個網(wǎng)格預(yù)測其包含的物體類別和位置。對于YOLOv4、YOLOv5、YOLOv6、YOLOv7、YOLOv8的不同模型用PASCAL VOC數(shù)據(jù)集訓(xùn)練并進(jìn)行參數(shù)量、運(yùn)算量和精度的對比,如表2-1所示。

相比于YOLOv3和YOLOv4,YOLOv5的主要創(chuàng)新點在于引入了多種改進(jìn)方法,包括更輕量級的網(wǎng)絡(luò)架構(gòu)、更高效的特征提取方法、更準(zhǔn)確的邊界框預(yù)測和更豐富的數(shù)據(jù)增強(qiáng)方法等,從而減少了總運(yùn)算量,提高了檢測準(zhǔn)確率和速度;相比較對YOLOv6、YOLOv7和YOLOv8模型的大小和精度,YOLOv5系列的模型更加輕量,而其精度與其他模型僅有細(xì)微差距,使其更加適合在邊緣計算硬件平臺部署。

近年來,隨著深度學(xué)習(xí)網(wǎng)絡(luò)模型的發(fā)展,性能得到了極大的提高,同時其參數(shù)量和計算量也得到了極大的增加,這限制了其在資源受限的邊緣計算設(shè)備中的嵌入。為了滿足邊緣移動端的武器硬件平臺資源有限條件下對軍用飛機(jī)目標(biāo)檢測的要求,則需要一種兼顧輕量化、平均精度和檢測速度的軍用目標(biāo)檢測算法,又因為YOLOv5n的參數(shù)量非常少,在硬件部署過程中經(jīng)過量化會導(dǎo)致檢測效果大幅下滑,故選取參數(shù)量較少而精度僅比YOLOv5m稍低的YOLOv5s作為基準(zhǔn)算法。

YOLOv5s的網(wǎng)絡(luò)結(jié)構(gòu)采用了一階式的目標(biāo)檢測模型設(shè)計,即在一個卷積神經(jīng)網(wǎng)絡(luò)中同時進(jìn)行物體的定位和分類。這種結(jié)構(gòu)相比于傳統(tǒng)的兩階式目標(biāo)檢測模型(如Faster R-CNN)速度更快,但相對精度略低,也更適合部署在邊緣計算設(shè)備中。YOLOv5s采用了一種全新的骨干網(wǎng)絡(luò)結(jié)構(gòu),即C3模塊,它可以在不影響網(wǎng)絡(luò)深度和寬度的前提下,大大降低計算量和參數(shù)量。如圖2-3所示,YOLOv5s的網(wǎng)絡(luò)結(jié)構(gòu)主要分為輸入端、骨干網(wǎng)絡(luò)、頭部網(wǎng)絡(luò)和檢測層。

2.2.1 輸入端

YOLOv5s網(wǎng)絡(luò)模型在輸入端部分主要進(jìn)行了Mosaic數(shù)據(jù)增強(qiáng)、自適應(yīng)錨框計算和自適應(yīng)圖像縮放,具體如下所示:

(1)Mosaic數(shù)據(jù)增強(qiáng)

為了改善待檢測圖像中的小目標(biāo)分布不均勻和待檢測目標(biāo)所在環(huán)境惡劣導(dǎo)致模型在訓(xùn)練階段的平均精度低的問題,在數(shù)據(jù)訓(xùn)練階段,Mosaic數(shù)據(jù)增強(qiáng)方式將從訓(xùn)練集中隨機(jī)選取的4張圖片,然后以裁剪、排布和縮放等方式進(jìn)行圖片拼接,有效的豐富了輸入端的訓(xùn)練數(shù)據(jù)集,通過以上操作來增強(qiáng)模型對小目標(biāo)的檢測性能,提高訓(xùn)練效率,適用于小目標(biāo)檢測。

(2)自適應(yīng)錨框計算

YOLO算法中,針對不同數(shù)據(jù)集,計算預(yù)定義錨框。在網(wǎng)絡(luò)訓(xùn)練中,以真實框位置相對于預(yù)設(shè)邊框的偏移以進(jìn)行擬合。網(wǎng)絡(luò)在預(yù)定義錨框的基礎(chǔ)上輸出新錨點框位置信息,然后與真實框的位置進(jìn)行比對,計算前后兩個位置信息的差異,再反向更新迭代網(wǎng)絡(luò)參數(shù),使其能夠更加精確的定位錨框的位置。

(3)自適應(yīng)圖像縮放

數(shù)據(jù)集中的圖像存在長寬不相同的情況,在網(wǎng)絡(luò)訓(xùn)練中,針對這種情況的做法通常是將原始圖像的比例縮放到同一個尺寸,然后空余部分用灰白色進(jìn)行填充,再送入網(wǎng)絡(luò)中訓(xùn)練,即可以設(shè)置不同尺寸的圖像作為輸入圖像。但如果縮放效果只是單純的縮小,很有可能造成圖片中的信息丟失。

2.2.2骨干網(wǎng)絡(luò)

YOLOv5s網(wǎng)絡(luò)模型主要采用CBS、C3和SPPF的模塊結(jié)構(gòu)。CBS模塊是由YOLOv5網(wǎng)絡(luò)提出的,其目的是為了防止下采樣過程中的信息丟失。C3模塊由三個卷積和一個CSP模塊組成,CSP結(jié)構(gòu)借鑒了CSP網(wǎng)絡(luò)的思想,取消了殘差輸出后的卷積模塊,其結(jié)構(gòu)分為兩支,分別為修正單元結(jié)構(gòu)和基本卷積模塊,最后將兩個結(jié)構(gòu)拼接并得到輸出,其目的是通過局部的跨層融合獲得更豐富的特征圖,減少計算量;SPPF模塊將步長固定為5,進(jìn)行了三次最大池化,每次池化層的輸出特征圖會成為下一個池化層的輸入特征圖,從而減少操作數(shù)。對于CBS、C3和SPPF模塊的具體細(xì)節(jié)如下所示:

(1)C3模塊

C3模塊由兩個嵌套的殘差模塊組成。在不影響特征信息的情況下,簡化了模型,減少了卷積模塊的數(shù)量。根據(jù)應(yīng)用位置的不同,C3模塊可分為C3_1_X和C3_2_X。C3_1_X用在Backbone卷積神經(jīng)網(wǎng)絡(luò)部分,包含X個殘差分量;X越大,網(wǎng)絡(luò)結(jié)構(gòu)越深。另一方面,C3_2_X應(yīng)用于 Neck 并包含2X殘差分量,其結(jié)構(gòu)與C3_1_X的不同之處僅在于殘差分量的數(shù)量。增加Resunit的個數(shù)可以增加不同層間反向傳播的梯度值,防止網(wǎng)絡(luò)結(jié)構(gòu)更深導(dǎo)致的梯度退化問題。而且,增強(qiáng)了模型提取和融合網(wǎng)絡(luò)特征的能力。因此,隨著網(wǎng)絡(luò)學(xué)習(xí)能力的提高,計算量和參數(shù)要求的降低,C3模塊也提高了網(wǎng)絡(luò)的目標(biāo)檢測精度。

(2)CBS模塊

CBS模塊是由卷積層、數(shù)據(jù)歸一化層和激活函數(shù)層組成的復(fù)合卷積模塊,是很多模塊的重要組成部分。數(shù)據(jù)歸一化層主要是對數(shù)據(jù)進(jìn)行歸一化,促進(jìn)快速收斂,加速網(wǎng)絡(luò)。激活函數(shù)層使用SiLU作為新的激活函數(shù),本質(zhì)上是對激活函數(shù)sigmoid的加權(quán)線性組合。SiLU函數(shù)是連續(xù)且平滑的。在更深的模型上,它可以增加模型的非線性并提高檢測精度,它比原始激活函數(shù)LeakyRelu表現(xiàn)更好。它們的表達(dá)式如下:

(3)SPPF模塊

如圖2-4所示,SPPF和SPP的模塊都是由三個最大池化層和連接層構(gòu)成。首先使用CBS模塊將特征圖中的通道數(shù)減半,然后通過最大池化層對其進(jìn)行下采樣,最大池化層使用串聯(lián)的三個大小為5×5的最大池化而不是并行的三個最大池化在SPP模塊中進(jìn)一步融合圖像特征,之后將三個最大池化層的輸出結(jié)果與圖片的初始特征圖進(jìn)行疊加,將其局部特征與全局特征進(jìn)行特征融合,以較小的代價將通道數(shù)變?yōu)樵瓉淼?倍,不僅提高了感受野,還可以解決多目標(biāo)尺度的問題,即在一定程度上縮放和融合目標(biāo)圖像特征圖。此外,SPPF模塊還可以將任意維度的特征圖轉(zhuǎn)化為固定維度的特征向量,以此提高感受野。

2.3.3 頭部網(wǎng)絡(luò)

YOLOv5s網(wǎng)絡(luò)模型的頭部網(wǎng)絡(luò)主要借鑒了PAN網(wǎng)絡(luò)的思想,引入了特征金字塔網(wǎng)絡(luò)(Feature Pyramid Network,F(xiàn)PN)與路徑聚合網(wǎng)絡(luò)(Path Aggregation Network,PAN)的結(jié)構(gòu)。FPN是一種特征金字塔網(wǎng)絡(luò)結(jié)構(gòu),它形式上是自上而下且向上采樣,融合了多種尺度的特征圖,因為網(wǎng)絡(luò)的上層比較深,包含的語義信息比較多,這使得底層特征圖的語義信息更加豐富。PAN是一種特征金字塔網(wǎng)絡(luò)結(jié)構(gòu),它形式上是自下而上向下采樣,也融合了多個尺度的特征圖,因為下層的卷積層較少,能夠獲得更多的特征定位信息。FPN和PAN結(jié)構(gòu)通過融合對方處理過的特征圖而相互補(bǔ)充,使輸出的特征圖具有很強(qiáng)的語義特征和很強(qiáng)的定位特征,同時輸出多尺度預(yù)測圖。

2.3.4 檢測層

YOLOv5s網(wǎng)絡(luò)模型的檢測層采用CIoU_Loss的回歸損失函數(shù)和非極大值抑制(Non-Maximum Suppression,NMS)進(jìn)行預(yù)測以提高模型檢測性能?;貧w損失函數(shù)是一種深度學(xué)習(xí)中非常重要的評估模型訓(xùn)練效果的工具,它可以幫助我們將模型快速達(dá)到收斂狀態(tài),減少預(yù)測誤差。損失函數(shù)越小,說明建模的學(xué)習(xí)效果越好,可以更有效地提高目標(biāo)檢測算法網(wǎng)絡(luò)建模的準(zhǔn)確度和可信度。近年來,回歸損失函數(shù)被研究者重視,并做了很多研究相繼提出了如IoU_Loss、DIoU_Loss、CIoU_Loss、SIoU_Loss等損失函數(shù)。其中IoU_Loss損失函數(shù)的缺點是對圖像尺度不夠靈敏,且只能得到真實邊界框和預(yù)測邊界框之間的交疊區(qū)域面積;DIoU_Loss損失函數(shù)把邊界框的中心距離信息引入損失函數(shù)中;CIoU_Loss損失函數(shù)則是在DIOU的研究上,引入了邊界框的尺度。SIoU_Loss損失函數(shù)在CIoU損失函數(shù)的研究上,引入了真實邊界框和預(yù)測邊界框之間的向量角度,重新定義了懲罰指標(biāo),提高了網(wǎng)絡(luò)訓(xùn)練速度和網(wǎng)絡(luò)推理準(zhǔn)確度。在選擇最優(yōu)預(yù)測邊界框時,采用NMS方法可以去除多余的預(yù)測邊界框,當(dāng)預(yù)測邊界框和實際邊界框的重合度高于設(shè)定的闕值時,可以認(rèn)為它是同一類物體,并將最高值所在的預(yù)測邊界框最終選擇框。

2.4?基于FPGA的動態(tài)重構(gòu)技術(shù)

基于FPGA的動態(tài)重構(gòu)技術(shù)是一種能夠根據(jù)實時應(yīng)用需求重新配置硬件邏輯的技術(shù)。通過使用這種技術(shù)設(shè)計的動態(tài)重構(gòu)硬件系統(tǒng)可以在運(yùn)行時改變其硬件電路結(jié)構(gòu)和性能,以適應(yīng)不同的應(yīng)用場景和任務(wù),從而提高應(yīng)用程序的效率和可靠性。又因為FPGA具備優(yōu)異的可重編程能力來實現(xiàn)硬件邏輯的重構(gòu),故通常使用FPGA作為硬件部署平臺。動態(tài)重構(gòu)技術(shù)已經(jīng)應(yīng)用在很多技術(shù)領(lǐng)域,例如網(wǎng)絡(luò)處理、高性能計算、數(shù)字信號處理、信息加密、圖像和視頻處理等。由于動態(tài)重構(gòu)技術(shù)可以根據(jù)實時應(yīng)用需求重新配置硬件邏輯,因此它可以提高系統(tǒng)的效率和靈活性,同時減少開發(fā)和維護(hù)成本,因而得到研究者們廣泛的關(guān)注。

基于FPGA的動態(tài)重構(gòu)系統(tǒng)在硬件邏輯層面可分為完全重構(gòu)和部分重構(gòu)。完全動態(tài)重構(gòu)通過FPGA重新配置其所有硬件資源以改變其功能。部分動態(tài)重構(gòu)(Dynamic Partial Reconfiguration,DPR)將整個FPGA的邏輯區(qū)域分為靜態(tài)邏輯區(qū)域和動態(tài)邏輯區(qū)域,靜態(tài)邏輯區(qū)域就是在FPGA中電路結(jié)構(gòu)固定不變的區(qū)域,動態(tài)邏輯區(qū)域即部分可重構(gòu)分區(qū),它是FPGA中電路結(jié)構(gòu)可以通過加載和卸載不同硬件配置文件而發(fā)生改變的區(qū)域。在實際硬件部署中,DPR允許通過加載動態(tài)配置文件來修改運(yùn)行中的FPGA應(yīng)用,當(dāng)完整的硬件配置文件配置到FPGA后,通過板上系統(tǒng)加載配置文件的方式來修改FPGA的動態(tài)重構(gòu)區(qū)域,而不會擾亂和破壞未動態(tài)重構(gòu)配置的邏輯區(qū)域上正在運(yùn)行中的工程應(yīng)用。

部分動態(tài)重構(gòu)示意圖

動態(tài)部分重構(gòu)結(jié)構(gòu)示意圖如圖2-5所示,圖中將FPGA區(qū)域分為兩個可重構(gòu)區(qū)域A和B,每個可重構(gòu)區(qū)域中分配了足夠的資源空間,通過空間復(fù)用的方式映射到A1,A2的可重構(gòu)模塊,在系統(tǒng)運(yùn)行的過程中可以動態(tài)的從比特流庫中配置所需要的可重構(gòu)模塊比特流配置文件,通過這種動態(tài)組合硬件系統(tǒng)的方式構(gòu)建不同的硬件架構(gòu),而不需要讓系統(tǒng)中斷,即可完成不同的硬件計算任務(wù),還能有效的解決了FPGA硬件資源受限的問題。

2.5 ZYNQ軟硬協(xié)同開發(fā)

2.5.1 ZYNQ UltraScale+MPSoC平臺

ZYNQ UltraScale+MPSoC是一款由XILINX公司開發(fā)的高度集成的多處理器片上系統(tǒng)。它所承載的ZYNQ?MPSoC系列芯片采用基于FPGA和ARM處理器的異構(gòu)架構(gòu),擁有可編程性強(qiáng)、低功耗、高性能等特點。該芯片的架構(gòu)包括ARM Cortex-A53處理器、ARM Cortex-R5處理器和FPGA邏輯,這些模塊可以實現(xiàn)高性能計算、實時控制、硬件加速、接口協(xié)議轉(zhuǎn)換、數(shù)字信號處理等應(yīng)用。其PS端的主控制處理器核心采用了ARM Cortex-A53和Cortex-R5架構(gòu),能夠運(yùn)行Linux等操作系統(tǒng)和FreeRTOS等實時操作系統(tǒng)。其中Cortex-A53處理器適用于應(yīng)用程序處理和控制,而Cortex-R5處理器則適用于實時任務(wù)和硬實時控制。兩個處理器能夠協(xié)同工作,提供卓越的性能和實時性。此外,芯片的FPGA邏輯非常靈活,支持多種不同的應(yīng)用擴(kuò)展接口。如多個高速串行接口、千兆以太網(wǎng)接口、USB接口和PCIe接口等,可以滿足各種高速通信數(shù)據(jù)傳輸需求。以XILINX KV260 FPGA的邊緣嵌入式計算平臺為例,ZYNQ UltraScale+MPSoC系統(tǒng)架構(gòu)框圖,如圖2-6所示。

2.5.2 高層次綜合設(shè)計

高層次綜合(High-level Synthesis,HLS)是一種自動將用高級語言描述的邏輯結(jié)構(gòu)轉(zhuǎn)換為低抽象級別語言描述的電路模型的過程。HLS通常使用高級語言,如C、C++和SystemC,這些語言具有更高的抽象性和可操作性,常常沒有時鐘或時序的概念,同時HLS已經(jīng)被融入到Vitis統(tǒng)一軟件平臺中,能夠通過在Vitis?HLS開發(fā)設(shè)計平臺上調(diào)用Vitis的視覺庫,加速硬件設(shè)計的流程。而低層設(shè)計語言如Verilog、VHDL和SystemVerilog則通常用于描述時鐘周期精確的寄存器傳輸級電路模型,這是目前用于ASIC或FPGA設(shè)計的最常見的電路建模和描述方法,但是其開發(fā)效率低,設(shè)計的復(fù)雜度高。

在近幾十年中,特別是在FPGA領(lǐng)域,HLS已經(jīng)引起了很多關(guān)注并得到了快速發(fā)展。近年來,F(xiàn)PGA學(xué)術(shù)大會上,HLS已作為學(xué)界和產(chǎn)業(yè)界最熱點的課題,受到了關(guān)注和深入研究。其原因主要有以下幾點:

(1)?采用更高級別的抽象技術(shù)來構(gòu)建集成電路是當(dāng)今芯片設(shè)計發(fā)展的必要步驟。RTL邏輯抽象技術(shù)無法滿足當(dāng)今芯片設(shè)計的要求,會給產(chǎn)品設(shè)計、測試和集成化提供巨大的挑戰(zhàn)。相比之下,采用更高級的語言,如C和C++,能夠?qū)⒕幋a密度縮小7至10倍,進(jìn)而大大簡化工程設(shè)計,大大提高設(shè)計效率。

(2) 對于FPGA,現(xiàn)代FPGA具有大量成熟的固定功能和資源量的IP軟核,可以被Vitis HLS開發(fā)設(shè)計工具充分利用。這將簡化綜合算法,提高綜合電路的性能,同時增加IP重用的效率。

(3)?HLS可以為軟件系統(tǒng)和計算工程人員提供一種全新的方式來設(shè)計芯片和FPGA,它可以將硬件實現(xiàn)細(xì)節(jié)包裝起來,使得軟件系統(tǒng)和工程人員可以更加注重于上層計算的實施,從而更好地發(fā)揮芯片和FPGA的潛力。這意味著,不需要具備底層硬件設(shè)計知識的工程師也可以參與到FPGA的設(shè)計中來。

2.5.3 深度學(xué)習(xí)處理單元

深度學(xué)習(xí)處理單元(Deep Learning Processor Unit,DPU)是一種專門為深度學(xué)習(xí)任務(wù)設(shè)計的運(yùn)算IP核,能夠高效地執(zhí)行深度學(xué)習(xí)算法[95]。DPU的硬件架構(gòu)如圖2-7所示,DPU從片外存儲器中取指令來控制計算引擎的運(yùn)算,這些指令由Vitis AI開發(fā)工具中的AI編譯器生成[96]。AI編譯器將模型映射到高效的指令集,并執(zhí)行復(fù)雜的優(yōu)化,如層融合、指令調(diào)度,并盡可能地重用片上系統(tǒng)級芯片上的存儲器資源;存儲器用于緩沖輸入、中間和輸出的數(shù)據(jù),以實現(xiàn)高吞吐量和效率;計算引擎采用的是深度流水線設(shè)計;處理單元(PE)充分利用了Xilinx器件中的精細(xì)顆粒度構(gòu)建塊,如乘法器、加法器累加器。

DPU IP核可以配置與卷積單元的并行性相關(guān)的各種卷積架構(gòu)。DPU IP 的架構(gòu)包括B512、B800、B1024、B1152、B1600、B2304、B3136和B4096。B是DPU大小的符號,后面數(shù)字的大小代表計算并行度,等于每個周期的峰值運(yùn)算數(shù)。同時,每個周期的峰值操作數(shù)等于 DPU 卷積架構(gòu)中并行度的三個維度的乘積:像素并行度、輸入通道并行度和輸出通道并行度。并行度越高,消耗的FPGA資源就越多。同時,如果資源充足,F(xiàn)PGA最多可以支持部署三個核心DPU。

DPU架構(gòu)

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
DSC1033CE2-002.0480T 1 Microchip Technology Inc OSC MEMS 2.048MHZ CMOS SMD
暫無數(shù)據(jù) 查看
TJA1051T/CM,118 1 NXP Semiconductors TJA1051 - High-speed CAN transceiver SOIC 8-Pin

ECAD模型

下載ECAD模型
$1.02 查看
ZL62034UBJA 1 Microsemi Corporation FIBER OPTIC RECEIVER, 6250Mbps
暫無數(shù)據(jù) 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

公益知識星球:95后創(chuàng)業(yè)者;CCF學(xué)生會員;知識星球:ESTJ-A,森森FPGA學(xué)術(shù)技術(shù)分享;微信公眾號:Lucky時先生;需要合作,請聯(lián)系微信:c1996sks,備注合作+單位

知乎