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

01環(huá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啟動Model Composer
#!/bin/bash # 設置 Vitis 環(huán)境 source/tools/Xilinx//2025.1/Vitis/settings64.sh # 設置 Model Composer 環(huán)境 source/tools/Xilinx/2025.1/Model_Composer/settings64.sh # 設置 MATLAB 路徑 exportPATH=$PATH:/tools/MATLAB/R2024b/bin # 啟動 Model Composer model_composer
上述的路徑需要修改為實際運行環(huán)境的安裝路徑。
05在Simulink中創(chuàng)建空白模型
5.1在MATLAB Command Window輸入以下命令切換到工作目錄,$WORK_PATH需替換為實際目錄。
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,點擊Callbacks窗口,點擊InitFcn,在右側(cè)的框口中輸入下面的腳本:
PreprocIn0data= dataPreProc('data/input_sig_i0.txt');
PreprocIn1data= dataPreProc('data/input_sig_i1.txt');
PreprocOutdata= dataPreProc('data/output_adder.txt');

6.2點擊OK完成設置。
這些模型初始化函數(shù)在設計更新或模擬運行時會自動調(diào)用dataPreProc.m filter配置腳本。
該filter配置腳本會設置以下內(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包含:
用于導入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當中,雙擊進行配置,按圖中紅框部分進行修改,配置為一個3/2分數(shù)采樣器,實際采樣點數(shù)為71個。
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點擊OK完成配置。
09添加三個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當中,重復三次添加三個FIR Halfband Interpolator,依次雙擊配置,配置如下:

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

10.2按住左鍵將Mixer拖入到duc_chain.slx當中,配置如下:
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當中,雙擊修改如下配置:

將各模塊按下圖連接。

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

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

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

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


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

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

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

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

16.2把仿真的停止時間設置為100,點擊Run運行仿真。

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

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

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

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

17.4隨后會自動運行仿真、編譯生成graph代碼。

17.5完成后如下圖所示,點擊。

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

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

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