各位親愛的老鐵,繼上次《漫談人工智能與國產FPAI芯片》嘮完已經(jīng)過去一個多月了;真的是時間不等人呀,2023年馬上就要over了,最后一個月,大家要繼續(xù)努力卷呀,come on!!!
漫談人工智能與國產FPAI芯片
今天,小弟和大家談一談某國產FPAI芯片的AI系統(tǒng)方案以及參考設計實例。
1)FPAI芯片架構:博采眾長、兼容并蓄
首先,我們簡單了解下FPAI(Field Programmable AI)芯片。FPAI芯片,創(chuàng)新性地采用了異構融合架構,即在一顆die上集成了高性能SOC(PS)、大容量FPGA(PL)、AI加速引擎(AI)三大模塊。該異構融合架構,可謂“博采眾長、兼容并蓄”,融合了各異構模塊優(yōu)勢,特別適合AI計算。其中,高性能SOC優(yōu)勢在于控制和通用計算,使得能在單芯片上運行完成完整的AI計算;大容量FPGA優(yōu)勢在于可重構和高速接口,解決了長尾算子的難題,適應了AI算法不斷的迭代升級趨勢;AI加速引擎優(yōu)勢在于高性能、低功耗地完成卷積等計算密集型算子的計算。
圖1 FPAI芯片架構:異構融合
具體的,以下是某款國產FPAI芯片,該芯片資源很豐富。PS部分,有四核處理器CPU、視頻編解碼模塊VPU、圖像處理模塊GPU等;PL部分,有444K的邏輯資源,16個高速接口GTX;AI部分,有高達27.52TOPS的int8算力,精度支持int8和int16,配合AI編譯器支持快速部署
圖2 某國產FPAI芯片資源
綜上,該顆FPAI芯片支持豐富的AI應用場景,特別適合邊緣融合端的AI應用場景。
2)FPAI系統(tǒng)方案:好馬配好鞍,好船配好帆
從芯片到系統(tǒng)產品,還需設計硬件,開發(fā)FPGA程序,開發(fā)軟件程序,部署AI網(wǎng)絡等。系統(tǒng)方案及對應的參考實現(xiàn),提供了一整套完整的解決方案參考,能夠幫助用戶方便、快速、高效、可靠地完成自己產品的設計。
所謂“好馬配好鞍,好船配好帆”,不同芯片需要適合的系統(tǒng)方案以及對應的參考設計。
首先,F(xiàn)PAI芯片是PS+PL+AI的架構,對外接口管腳位于PS、PL模塊,因此依據(jù)外部數(shù)據(jù)流輸入的管腳,設計了PS_IN、PL_IN的系統(tǒng)方案,以此對應不同的內部控制流數(shù)據(jù)流方案;然后,F(xiàn)PAI芯片的AI峰值算力達27.52Tops,能夠支持多路數(shù)據(jù)流的不同的AI計算,視頻編解碼模塊能支持多路視頻流的壓縮,可編程邏輯資源也支持多輸入的高速數(shù)據(jù)流接口,因此依據(jù)以上算力特點,設計了多源的系統(tǒng)方案,以此也符合了邊緣融合端的AI應用特點;此外,PCIe加速板卡的系統(tǒng)方案,配合主機服務器,完成AI的推理計算加速。
綜上,基于FPAI芯片的架構、算力、資源、輸入數(shù)據(jù)流來源、應用場景等特點,分別制定了如下4種系統(tǒng)方案,基本能夠涵蓋FPAI單芯片下的各種應用場景。
(1)PS_IN系統(tǒng)方案
(2)PL_IN系統(tǒng)方案
(3)多源系統(tǒng)方案
(4)PCIe加速卡系統(tǒng)方案
圖3 FPAI芯片的系統(tǒng)方案
一個系統(tǒng)方案可能有多個具體的參考實現(xiàn),但對應的設計架構是一致的,可能只是具體內部實現(xiàn)有區(qū)別。參考設計會提供一整套參考方案,包括硬件設計、FPGA設計、軟件設計的代碼和相應文檔。因此,想要基于FPAI設計系統(tǒng)的朋友,可以依據(jù)自身的應用場景需求,選擇上述系統(tǒng)方案的參考設計。
3)多路PL_IN+VPU編碼的參考設計實例
好了,說了這么多,大家等不及要看具體的參考設計實例吧。以下會介紹多源系統(tǒng)方案的一個參考設計實例:多路PL_IN+VPU編碼的參考設計,分別從參考設計概述、硬件板卡介紹、FPGA工程介紹、軟件工程介紹、實例功耗介紹等5部分來介紹該實例。
3.1參考設計概述
輸入:4路SDI攝像頭,默認分辨率和幀率設置1080p@30Hz;
輸出:SD卡,H.265/H.264格式文件格式;
VPU:分辨率1080p,YUV422輸入, 輸出 H.265/H.264,默認編碼幀率設置30Hz;
檢測:運行示例網(wǎng)絡Yolov5s AI檢測,帶檢測結果的視頻壓縮到SD卡。
性能:4路1080p@30Hz輸入,AI+VPU編碼,每一路30fps。
圖4 多路PL_IN+VPU編碼的參考實現(xiàn)框圖
3.22
悟空硬件開發(fā)板簡介
如下圖,采用SDI接口攝像頭輸入4路視頻到板卡,悟空硬件板卡上主芯片F(xiàn)PAI芯片;SD卡,儲存和啟動Linux操作系統(tǒng)啟動文件和根文件系統(tǒng);1GB PS DDR和2GB PL DDR,用于運行操作系統(tǒng)和AI;通過子卡接入的4路SDI視頻接口;網(wǎng)口、串口、JTAG調試接口等。
圖5 悟空硬件開發(fā)板
3.32
FPGA設計介紹
首先,整體數(shù)據(jù)流如圖所示:
圖6 多路PL_IN+VPU編碼的數(shù)據(jù)流
Step1:對應圖中的數(shù)據(jù)流1,Cam0~Cam3為4路不同的SDI攝像頭視頻流,幀率1080p@30Hz。對于每一路SDI攝像頭視頻流,復制成兩路,一路經(jīng)過resize、image_make模塊完成AI預處理后存入PL_DDR,供AI檢測使用;另一路經(jīng)過resize、rgb565轉為yuv422(可選)通過HP接口存入PS_DDR,供后續(xù)畫上檢測結果后VPU壓縮用或者HDMI顯示用。
Step2:對應圖中的數(shù)據(jù)流2,啟動AI訪問PL_DDR完成AI的計算。
Step3:對應圖中的數(shù)據(jù)流3,最后一層特征圖,經(jīng)過icore_post模塊處理后,通過HP接口寫入PS_DDR。PS完成剩余后處理計算,得出AI檢測結果,畫在PS DDR上的視頻幀上。
Step4:對應圖中的數(shù)據(jù)流4,啟動VPU,對含有結果的視頻幀壓縮成H.264/H.265格式。
Step5:對應圖中的數(shù)據(jù)流5,將壓縮視頻流寫回SD卡。
Step6(可選):對應圖中數(shù)據(jù)流6,將檢測框的視頻顯示到HDMI顯示屏。
其次,介紹以下子數(shù)據(jù)流通路的實現(xiàn)
(1)Camera -> PLDDR的邏輯通路實現(xiàn)
圖7 子邏輯通路Camera -> PLDDR
輸入的4路視頻流幀率為1080p@30Hz,均以serdes 差分對接入FPGA端口,通過rx_sdi模塊解析為rgb888數(shù)據(jù)格式。然后經(jīng)過frame_trans模塊resize成AI計算所需要的尺寸。
在一些應用場景中,輸入數(shù)據(jù)可能預先存儲在了PS DDR中,因此本工程也預留了2路獨立的PSIN數(shù)據(jù)通路,通過HP口讀取數(shù)據(jù),轉變成AI_MATE接口規(guī)范好的數(shù)據(jù)總線格式。這兩路PSIN數(shù)據(jù)通過img_data_crossbar_0/1模塊分別與CAM2/3視頻流數(shù)據(jù)進行仲裁,各自選出1路輸入給AI_MATE端。
(2)Camera -> PSDDR的邏輯通路實現(xiàn)
圖8 子邏輯通路Camera -> PSDDR
將CAM視頻流數(shù)據(jù)resize成VPU壓縮需要的尺寸,注意此處的resize與CAM->PL DDR通路中的resize相互獨立,即AI計算尺寸和VPU壓縮尺寸獨立配置。為了減少寫入PS DDR的數(shù)據(jù)量,這里將rgb565數(shù)據(jù)格式轉為yuv422(16bit),相比于rgba(32bit)格式,數(shù)據(jù)量可減少50%,而圖像色度分量完整保留,基本不影響圖像質量。
每一路CAM數(shù)據(jù)均需要通過HP口寫入PS DDR,PS端共有4個HP口,有很多模塊會對它發(fā)起請求,因此工程中在BlockDesign中調用axi interconnect IP進行仲裁。
最終,實現(xiàn)的FPGA資源占用情況如下所示:
圖9 FPGA實現(xiàn)資源占用情況
3.42
軟件設計介紹
參考實現(xiàn)軟件整體流程可以歸結如下:
攝像頭輸入視頻數(shù)據(jù) > AI檢測 > AI結果繪制 > vpu編碼h264/h265視頻 > 輸出數(shù)據(jù)流
軟件中按功能將代碼封裝為多個模塊:攝像頭模塊、神經(jīng)網(wǎng)絡模塊、VPU模塊。則在實現(xiàn)一次完整數(shù)據(jù)流通路對應的模塊調用為:攝像頭模塊取幀 > 神經(jīng)網(wǎng)絡模塊計算與后處理 > 攝像頭模塊得到圖像數(shù)據(jù) > vpu模塊壓縮 > vpu模塊輸出數(shù)據(jù)。
在AI調度過程中,采用了任務隊列的實現(xiàn)方式。主要參考了生產者消費者設計模式,前處理、icore前向、后處理運行在各自的線程中,互相之間通過任務隊列的方式通信。
對于多路的情況,則會使用多個前處理線程與多個后處理線程,以4路為例,4路不同的輸入圖像數(shù)據(jù)、icore推理結果會存放在ddr的不同位置,不同路之間數(shù)據(jù)不會相互干擾。任務隊列還提供了可以控制不同路是否做AI或者設置優(yōu)先級的功能。
圖10 軟件任務隊列調度框圖
具體的AI神經(jīng)網(wǎng)絡部署,基于icraft編譯器,直接編譯生成json和raw文件,就能夠更新參考設計的AI網(wǎng)絡部署。
3.52
實例結果介紹
性能:能夠穩(wěn)定完成4路1080p@30Hz視頻的AI檢測和視頻編碼。
功耗:整體芯片功耗(含DDR)是12.32W。
表1 多路PL_IN+VPU編碼的功耗
4)小結:海闊憑魚躍,天高任鳥飛
好了,經(jīng)過以上的參考設計實例的介紹,相信大家對FPAI芯片的系統(tǒng)方案以及參考設計有了更深層次的了解。
近幾年,邊緣端AI計算的市場份額逐年增長明顯,越來越多的落地應用需求提出?!昂i煈{魚躍,天高任鳥飛”,如何選擇一款AI芯片及系統(tǒng)方案,能夠滿足邊緣融合端的各種應用場景,能夠適應算法迭代的需求,能夠解決長尾算子的問題,形成高性能、低功耗、靈活可靠的產品?相信FPAI芯片及系統(tǒng)方案,會是一個不錯的選擇!
審核編輯:湯梓紅
-
FPGA
+關注
關注
1625文章
21620瀏覽量
601231 -
芯片
+關注
關注
452文章
50206瀏覽量
420848 -
半導體
+關注
關注
334文章
26855瀏覽量
214268 -
AI
+關注
關注
87文章
29805瀏覽量
268102
發(fā)布評論請先 登錄
相關推薦
評論