基于Vitis Model Composer進(jìn)行AI Engine(AIE)開(kāi)發(fā),核心優(yōu)勢(shì)體現(xiàn)在AIE專(zhuān)屬優(yōu)化、開(kāi)發(fā)流程簡(jiǎn)化、靈活的適配性、高效驗(yàn)證及量產(chǎn)適配等方面,具體如下:
專(zhuān)屬優(yōu)化的AI Engine庫(kù),降低基礎(chǔ)開(kāi)發(fā)成本:提供AIE專(zhuān)用DSPLib庫(kù),包含F(xiàn)FT、FIR等預(yù)制模塊,適配AIE架構(gòu)且同步開(kāi)源生態(tài),無(wú)需重復(fù)開(kāi)發(fā)基礎(chǔ)算法。
靈活的AIE代碼導(dǎo)入方式,適配多樣開(kāi)發(fā)需求:支持AIE Kernel、Class Kernel、Graph三種導(dǎo)入形式,兼容緩沖區(qū)/流數(shù)據(jù)訪問(wèn),適配不同開(kāi)發(fā)場(chǎng)景。
簡(jiǎn)化的AIE專(zhuān)屬開(kāi)發(fā)流程,提升開(kāi)發(fā)效率:在Simulink環(huán)境中直觀搭建設(shè)計(jì),支持中間信號(hào)查看與調(diào)試,降低開(kāi)發(fā)門(mén)檻。
自動(dòng)化代碼生成,簡(jiǎn)化編程流程:一鍵生成ADF graph、Makefile、Testbench等代碼,無(wú)需手動(dòng)適配底層架構(gòu)。
適配動(dòng)態(tài)場(chǎng)景,配置高度靈活:支持Variable-sized Signals,可建模動(dòng)態(tài)數(shù)據(jù)處理,支持自定義約束,靈活調(diào)整性能。
精準(zhǔn)的AIE仿真與調(diào)試,保障設(shè)計(jì)正確性:支持功能與高精度仿真,快速驗(yàn)證設(shè)計(jì)正確性,確保算法與硬件特性匹配。

01環(huán)境準(zhǔn)備
Ubuntu 22.04
Vitis 2025.1(必須是選擇Vitis完整安裝流程,不能是Vivado ML Enterprise安裝)
Vitis Model Composer
MATLAB R2024b
02獲取Vitis_Libraries
gitclonehttps://gitee.com/light007/Vitis_Libraries.git
03下載依賴(lài)文件
gitclonehttps://gitee.com/qinzhusheng/vmc_duc.git
04啟動(dòng)Model Composer
#!/bin/bash # 設(shè)置 Vitis 環(huán)境 source/tools/Xilinx//2025.1/Vitis/settings64.sh # 設(shè)置 Model Composer 環(huán)境 source/tools/Xilinx/2025.1/Model_Composer/settings64.sh # 設(shè)置 MATLAB 路徑 exportPATH=$PATH:/tools/MATLAB/R2024b/bin # 啟動(dòng) Model Composer model_composer
上述的路徑需要修改為實(shí)際運(yùn)行環(huán)境的安裝路徑。
05在Simulink中創(chuàng)建空白模型
5.1在MATLAB Command Window輸入以下命令切換到工作目錄,$WORK_PATH需替換為實(shí)際目錄。
cd/$WORK_PATH/vmc_duc/lab
5.2在MATLAB Command Window輸入以下命令創(chuàng)建并打開(kāi)空白模型。
new_system('duc_chain')
open_system('duc_chain')
按Ctrl+S保存到/$WORK_PATH/vmc/lab目錄內(nèi)。

06添加模型初始化函數(shù)
6.1回到duc_chain.slx,右鍵空白處,選擇Model Properties,點(diǎn)擊Callbacks窗口,點(diǎn)擊InitFcn,在右側(cè)的框口中輸入下面的腳本:
PreprocIn0data= dataPreProc('data/input_sig_i0.txt');
PreprocIn1data= dataPreProc('data/input_sig_i1.txt');
PreprocOutdata= dataPreProc('data/output_adder.txt');

6.2點(diǎn)擊OK完成設(shè)置。
這些模型初始化函數(shù)在設(shè)計(jì)更新或模擬運(yùn)行時(shí)會(huì)自動(dòng)調(diào)用dataPreProc.m filter配置腳本。
該filter配置腳本會(huì)設(shè)置以下內(nèi)容:
Input 0模塊的輸入數(shù)據(jù)變量PreprocIn0data
Input 1模塊的輸入數(shù)據(jù)變量PreprocIn1data
Golden_Adder 模塊的輸出數(shù)據(jù)變量PreprocOutdata
07查看AI Engine library
按Ctrl+Shift+L打開(kāi)Library Browser,展開(kāi)AMD Toolbox,可看到AI Engine的模型library。

AI Engine library包含:
用于導(dǎo)入Versal AI Engine使用的kernels和graphs
與FIRs、FFTs、Mixers和直接數(shù)字合成器相關(guān)的AI Engine DSP模塊
08添加FIR Resampler Filter
8.1依次展開(kāi)AMD Toolbox>AI Engine>DSP>Buffer IO library,找到FIR Resampler Filter。

8.2按住左鍵將FIR Resampler Filter拖入到duc_chain.slx當(dāng)中,雙擊進(jìn)行配置,按圖中紅框部分進(jìn)行修改,配置為一個(gè)3/2分?jǐn)?shù)采樣器,實(shí)際采樣點(diǎn)數(shù)為71個(gè)。
Filter coefficients:
[-8,-15,2,27,38,-1,-67,-86,1,139,171,-2,-257,-309,2,443,522,-3,-724,-842,4,1144,1324,-4,-1789,-2078,5,2866,3402,-5,-5080,-6495,6,13412,27026,32762,27026,13412,6,-6495,-5080,-5,3402,2866,5,-2078,-1789,-4,1324,1144,4,-842,-724,-3,522,443,2,-309,-257,-2,171,139,1,-86,-67,-1,38,27,2,-15,-8]

8.3點(diǎn)擊OK完成配置。
09添加三個(gè)FIR Halfband Interpolator blocks
9.1依次展開(kāi)AMD Toolbox>AI Engine>DSP>Buffer IO library,找到FIR Halfband Interpolator。

9.2按住左鍵將FIR Halfband Interpolator拖入到duc_chain.slx當(dāng)中,重復(fù)三次添加三個(gè)FIR Halfband Interpolator,依次雙擊配置,配置如下:

10添加Mixer
10.1依次展開(kāi)AMD Toolbox>AI Engine>DSP>Buffer IO library,找到Mixer。

10.2按住左鍵將Mixer拖入到duc_chain.slx當(dāng)中,配置如下:
Input window size (Number of samples): 3072
Rounding mode: Round symmetrical to infinity
Saturation mode: 3-Symmetric
Phase Increment: 715827883
11添加PLIO
依次展開(kāi)AMD Toolbox>AI Engine>Interfaces library,找到PLIO,按住左鍵將PLIO拖入到duc_chain.slx當(dāng)中,雙擊修改如下配置:

將各模塊按下圖連接。

按住左鍵框選上面的所有blocks,復(fù)制并粘貼出另一信號(hào)通道,如下圖所示:

雙擊粘貼出來(lái)的Mixer,把Phase Increment修改為3042268501。
12從Reference_design_blocks內(nèi)復(fù)制信號(hào)輸入模塊
在MATLAB Command Window輸入以下命令打開(kāi)本設(shè)計(jì)參考模塊合集。
Reference_design_blocks
復(fù)制如下幾個(gè)blocks到duc_chain.slx當(dāng)中。

這些模塊主要是包含預(yù)定義的信號(hào)輸入、用Simulink原生blocks搭建的對(duì)比模塊、用于自定義AIE block的AIE Class Kernel以及相減對(duì)比結(jié)果的波形查看器。
修改粘貼出來(lái)的PLIO2 block的配置PLIO width(bits):64
13配置自定義AIE block的AIE Class Kernel
雙擊AIE Class Kernel打開(kāi)配置窗口,按下圖配置點(diǎn)擊Import導(dǎo)入C++設(shè)計(jì)的AIE加法器Kernel。

14完成所有模塊的連接
把未連接的模塊按如下示意分別連接信號(hào)輸入和輸出。


15添加Vitis Model Composer Hub block
Vitis Model Composer Hub block本質(zhì)是個(gè)控制面板,用于控制系統(tǒng)與仿真參數(shù)、選擇AMD芯片板卡型號(hào)以及調(diào)用代碼生成流程。
只要Simulink模型包含AMD Toolbox的任一Block,就必須添加Vitis Model Composer Hub block,才能進(jìn)行自定義代碼生成和仿真。
15.1依次展開(kāi)AMD Toolbox>Utilities>Code Generation,找到Vitis Model Composer Hub block,按住左鍵將其拖入到duc_chain.slx當(dāng)中。

15.2雙擊Vitis Model Composer Hub block打開(kāi)配置窗口,點(diǎn)擊右側(cè)紅框的按鈕打開(kāi)硬件平臺(tái)選擇窗口。

15.3選擇platform窗口,下拉選擇VCK190,點(diǎn)擊OK關(guān)閉窗口。

15.4點(diǎn)擊OK關(guān)閉Vitis Model Composer Hub block配置窗口。
16編譯工程并運(yùn)行仿真
16.1按Ctrl+S保存工程,按Ctrl+D執(zhí)行編譯,等待編譯完成。

16.2把仿真的停止時(shí)間設(shè)置為100,點(diǎn)擊Run運(yùn)行仿真。

16.3仿真結(jié)果,中間一個(gè)窗口波形是AIE仿真結(jié)果和Simulink對(duì)照組相減后的結(jié)果,可以從波形上看到基本為0,說(shuō)明AIE仿真結(jié)果達(dá)到預(yù)期效果。

17創(chuàng)建子系統(tǒng)并生成graph代碼
17.1按住左鍵選中如下的Blocks。

17.2按Ctrl+G將這些Blocks創(chuàng)建為一個(gè)子系統(tǒng),如下圖所示。

17.3雙擊上圖藍(lán)色部分,把子系統(tǒng)重命名為DUCchain,雙擊Vitis Model Composer Hub block打開(kāi)配置窗口,點(diǎn)擊Code Generation窗口,選中DUCchain,右側(cè)窗口切換到Analyze,點(diǎn)擊Analyzer按鈕。

17.4隨后會(huì)自動(dòng)運(yùn)行仿真、編譯生成graph代碼。

17.5完成后如下圖所示,點(diǎn)擊。

17.6生成的graph源代碼在如下目錄中。

/$WORK_PATH/vmc_duc/lab/code/ip/DUCchain/src

通過(guò)上述流程,可基于Vitis Model Composer完成從模型搭建、配置、仿真驗(yàn)證到代碼生成的全流程AIE開(kāi)發(fā)。借助其可視化設(shè)計(jì)與自動(dòng)化工具鏈,能顯著降低開(kāi)發(fā)復(fù)雜度,提升設(shè)計(jì)效率與可靠性,為AIE應(yīng)用的快速實(shí)現(xiàn)提供有力支撐。
關(guān)于安富利
安富利是全球領(lǐng)先的技術(shù)分銷(xiāo)商和解決方案提供商,在過(guò)去一個(gè)多世紀(jì)里一直秉持初心,致力于滿(mǎn)足客戶(hù)不斷變化的需求。通過(guò)遍布全球的專(zhuān)業(yè)化和區(qū)域化業(yè)務(wù)覆蓋,安富利可在產(chǎn)品生命周期的每個(gè)階段為客戶(hù)和供應(yīng)商提供支持。安富利能夠幫助各種類(lèi)型的公司適應(yīng)不斷變化的市場(chǎng)環(huán)境,在產(chǎn)品開(kāi)發(fā)過(guò)程中加快設(shè)計(jì)和供應(yīng)速度。安富利在整個(gè)技術(shù)價(jià)值鏈中處于中心位置,這種獨(dú)特的地位和視角讓其成為了值得信賴(lài)的合作伙伴,能夠幫助客戶(hù)解決復(fù)雜的設(shè)計(jì)和供應(yīng)鏈難題,從而更快地實(shí)現(xiàn)營(yíng)收。
-
仿真
+關(guān)注
關(guān)注
54文章
4480瀏覽量
138208 -
AI
+關(guān)注
關(guān)注
91文章
39703瀏覽量
301297 -
ENGINE
+關(guān)注
關(guān)注
0文章
8瀏覽量
7465 -
Vitis
+關(guān)注
關(guān)注
0文章
157瀏覽量
8340
原文標(biāo)題:AMD技術(shù)干貨 | 基于Vitis Model Composer進(jìn)行AIE開(kāi)發(fā)
文章出處:【微信號(hào):AvnetAsia,微信公眾號(hào):安富利】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
閑談Vitis AI|DPU在UltraScale平臺(tái)下的軟硬件流程(1)
Vitis AI Model Zone軟件平臺(tái)具備哪些功能?
【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】部署vitis-ai環(huán)境以及測(cè)試demo
【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】部署DPU鏡像并運(yùn)行Vitis AI圖像分類(lèi)示例程序
【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】五、VITis AI (人臉檢測(cè)和人體檢測(cè))
【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】六、VITis AI車(chē)牌檢測(cè)&車(chē)牌識(shí)別
【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】八、VITis AI自動(dòng)駕駛多任務(wù)執(zhí)行MultiTask V3
【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】基于Vitis AI的ADAS目標(biāo)識(shí)別
【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】Vitis-AI加速的YOLOX視頻目標(biāo)檢測(cè)示例體驗(yàn)和原理解析
【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】Vitis AI 構(gòu)建開(kāi)發(fā)環(huán)境,并使用inspector檢查模型
【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】Vitis AI Library體驗(yàn)之OCR識(shí)別
Vitis? Model Composer 2023.1現(xiàn)已更新
Vitis Model Composer用戶(hù)指南
Vitis Model Composer教程
Model Composer入門(mén)指南
基于Vitis Model Composer完成全流程AI Engine開(kāi)發(fā)
評(píng)論