基于Vitis Model Composer進(jìn)行AI Engine(AIE)開發(fā),核心優(yōu)勢體現(xiàn)在AIE專屬優(yōu)化、開發(fā)流程簡化、靈活的適配性、高效驗(yàn)證及量產(chǎn)適配等方面,具體如下:
專屬優(yōu)化的AI Engine庫,降低基礎(chǔ)開發(fā)成本:提供AIE專用DSPLib庫,包含F(xiàn)FT、FIR等預(yù)制模塊,適配AIE架構(gòu)且同步開源生態(tài),無需重復(fù)開發(fā)基礎(chǔ)算法。
靈活的AIE代碼導(dǎo)入方式,適配多樣開發(fā)需求:支持AIE Kernel、Class Kernel、Graph三種導(dǎo)入形式,兼容緩沖區(qū)/流數(shù)據(jù)訪問,適配不同開發(fā)場景。
簡化的AIE專屬開發(fā)流程,提升開發(fā)效率:在Simulink環(huán)境中直觀搭建設(shè)計(jì),支持中間信號查看與調(diào)試,降低開發(fā)門檻。
自動(dòng)化代碼生成,簡化編程流程:一鍵生成ADF graph、Makefile、Testbench等代碼,無需手動(dòng)適配底層架構(gòu)。
適配動(dòng)態(tài)場景,配置高度靈活:支持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下載依賴文件
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)建并打開空白模型。
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打開Library Browser,展開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依次展開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依次展開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依次展開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
依次展開AMD Toolbox>AI Engine>Interfaces library,找到PLIO,按住左鍵將PLIO拖入到duc_chain.slx當(dāng)中,雙擊修改如下配置:

將各模塊按下圖連接。

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

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

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

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


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

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

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對照組相減后的結(jié)果,可以從波形上看到基本為0,說明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打開配置窗口,點(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

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