0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

VCK5000運(yùn)行Vitis-AI 3.0 WeGO實(shí)時(shí)量化演示

jf_pJlTbmA9 ? 來(lái)源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-07-07 14:14 ? 次閱讀

測(cè)試環(huán)境

100569455-295990-01.png

簡(jiǎn)介

VCK5000在vitis ai 3.0對(duì)應(yīng)的shell版本為xilinx-vck5000-gen4x8-qdma-base_2,對(duì)應(yīng)的XRT和XRM版本為xrt_202220.2.14.354和xrm_202220.1.5.212。舊版本的VCK5000需要首先升級(jí)到新的shell上,才能保證vitsi ai的demo正常運(yùn)行。在平臺(tái)更新中存在一些需要遵守的規(guī)則,例如xilinx_vck5000_gen3x16_xdma_base_1不能直接升級(jí)到最新版本,需要首先升級(jí)到vck5000_gen4x8_xdma_base_2。On the fly quantization是Vitis AI 3.0新添加的特性,可以執(zhí)行訓(xùn)練后量化 (PTQ) 以從浮點(diǎn)模型獲取量化模型。

Part1 VCK5000升級(jí)

Step 1 使用以下命令檢查當(dāng)前板卡的狀態(tài)
xbmgmt examine --report platform --device

輸出示例:

100569455-295991-02.png

如果Flash properties: Type is ospi_versal一定需要更新到ospi_xgq。

只要板卡能被Vivado識(shí)別,可以通過(guò)下載比特流恢復(fù)到這個(gè)狀態(tài),恢復(fù)的方法為:

100569455-295992-03.png
100569455-295993-04.jpg

確認(rèn)勾選了Erase, Program, and Verify。點(diǎn)擊Apply, 然后點(diǎn)擊OK。等待燒錄完畢即可回到初始狀態(tài)。

Step 2 卸載已安裝的XRT

vck5000_gen4x8_xdma_base_2指定的XRT版本為xrt_202210.2.13.478_18.04-amd64-xrt.deb。如果和這個(gè)XRT版本不符,先卸載XRT。

Remove XRT : 'sudo apt remove xrt'
Remove XRT APU if present : 'sudo apt remove xrt-apu'

安裝所需的XRT
Install XRT 2.13.478 : https://www.xilinx.com/bin/public/openDownload?filename=xrt_202210.2.13....
Install XRT-APU: https://www.xilinx.com/bin/public/openDownload?filename=xrt-apu_202210.2...

安裝Gen3和Gen4XDMA平臺(tái)
Install the gen3x16 platform : https://www.xilinx.com/bin/public/openDownload?filename=xilinx-vck5000-p...
AND install the gen4x8_xdma platform: https://www.xilinx.com/bin/public/openDownload?filename=xilinx-vck5000-g...

Step 3 更新到xilinx_vck5000_gen3x16_xdma_base_1

將Gen3的鏡像燒錄到板卡中
sudo xbmgmt program --base --device --image

完成后等待一分鐘后冷啟動(dòng)電腦。

Step 4 更新到vck5000_gen4x8_xdma_base_2

根據(jù)鏈接可以將VCK5000的platform從vck5000_gen3x16_base_1更新到vck5000_gen4x8_xdma_base_2。
https://xilinx.github.io/Alveo-Versal-Platforms/alveoversalplatforms/bui...
sudo /opt/xilinx/firmware/vck5000/gen4x8-xdma/base/migration/migrate.sh

完成后等待一分鐘后冷啟動(dòng)電腦。

Step 5 更新到vck5000_gen4x8_qdma_base_2

下一步需要更新到vck5000_gen4x8_qdma_base_2,首先安裝對(duì)應(yīng)版本的XRT,XRM和XRT-APU,然后燒寫platform,注意安裝版本要和vitis-ai 3.0匹配。

安裝XRT
https://www.xilinx.com/bin/public/openDownload?filename=xrt_202220.2.14....

安裝XRM
https://www.xilinx.com/bin/public/openDownload?filename=xrm_202220.1.5.2...

安裝vck5000_gen4X8_qdma平臺(tái)

wget
https://www.xilinx.com/bin/public/openDownload?filename=xilinx-vck5000-g...

tar xfz shell.tgz
sudo apt install ./xilinx-vck5000-gen4x8-qdma-base_2-20221205_all.deb -y

第一步,只能更新shell。
sudo /opt/xilinx/xrt/bin/xbmgmt program --device 01:00.0 --base shell --image xilinx_vck5000_gen4x8_qdma_base_2

升級(jí)完成后等待一分鐘冷啟動(dòng),由于沒(méi)有更新SC會(huì)出現(xiàn)

100569455-295994-05.png

將SC版本從4.4.33更新到4.4.35 需要更新兩次。第一次更新SC會(huì)以失敗告終。

100569455-295995-06.png

等待一分鐘后再次燒錄SC

100569455-295996-07.png

再等待一分鐘后冷啟動(dòng)電腦,然后檢查板卡狀態(tài)。

100569455-295997-08.png

到此更新完畢。

Part2 運(yùn)行Vitis-AI 3.0 demo

獲取Vitis-AI倉(cāng)庫(kù)。

git clone ;

以Pytorch為例子,獲取docker容器。

docker pull xilinx/vitis-ai-pytorch-cpu:latest

查詢系統(tǒng)中存在的容器

docker images

100569455-295998-09.png

啟動(dòng)容器。

100569455-295999-10.png

根據(jù)DPU型號(hào)設(shè)置vck5000腳本,腳本在setup_board/vck5000目錄下
source ./setup.sh DPUCVDX8H_4pe_miscdwc
source ./setup.sh DPUCVDX8H_6pe_dwc
source ./setup.sh DPUCVDX8H_6PE_MISC
source ./setup.sh DPUCVDX8H_8pe_normal

該腳本會(huì)設(shè)置兩個(gè)環(huán)境變量
XCLBIN_PATH = /opt/xilinx/overlaybins/DPUCVDX8H/4PE
XLNX_VART_FIRMWARE = /opt/xilinx/overlaybins/DPUCVDX8H/4PE/dpu_DPUCVDX8H_4PE_350M_xilinx_vck5000_ge

準(zhǔn)備數(shù)據(jù)集

To use ImageNet, first download it from http://www.image-net.org/. For calibration purpose, only the validation set is needed.

數(shù)據(jù)集結(jié)構(gòu)
# imagenet/train/
# ├── n01440764
# │ ├── n01440764_10026.JPEG
# │ ├── n01440764_10027.JPEG
# │ ├── ......
# imagenet/val/
# ├── n01440764
# │ ├── ILSVRC2012_val_00000293.JPEG
# │ ├── ILSVRC2012_val_00002138.JPEG
# │ ├── ......
# ├── ......

安裝必要的包
pip install -r requirements.txt

準(zhǔn)備浮點(diǎn)模型
wget ;

準(zhǔn)備測(cè)試圖像
wget -O wego_example_recipes.tar.gz

tar xf wego_example_recipes.tar.gz -C /tmp

運(yùn)行腳本
bash quantize_compile_serialize_run.sh ./inception_v3_google-0cc3c7bd.pth ./val

可以得到最終的結(jié)果

100569455-296000-11.png

常見錯(cuò)誤

1.運(yùn)行
bash quantize_compile_serialize_run.sh ./inception_v3_google-0cc3c7bd.pth ./testval/

出現(xiàn)錯(cuò)誤
Traceback (most recent call last):
File "run.py", line 181, in
main()
File "run.py", line 166, in main
wego_mod = get_wego_mod(img_transforms)
File "run.py", line 125, in get_wego_mod
quantized_model = wego_torch.quantize(float_model, [[target_batch] + input_shape], calib_dataloader, calibrator)
File "/opt/vitis_ai/conda/envs/vitis-ai-wego-torch/lib/python3.7/site-packages/wego_torch/quantizer.py", line 130, in quantize
for b_idx, batch in tqdm(enumerate(dataloader), total=len(dataloader)):
File "/opt/vitis_ai/conda/envs/vitis-ai-wego-torch/lib/python3.7/site-packages/tqdm/std.py", line 1195, in __iter__
for obj in iterable:
File "/opt/vitis_ai/conda/envs/vitis-ai-wego-torch/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 681, in __next__
data = self._next_data()
File "/opt/vitis_ai/conda/envs/vitis-ai-wego-torch/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 721, in _next_data
data = self._dataset_fetcher.fetch(index) # may raise StopIteration
File "/opt/vitis_ai/conda/envs/vitis-ai-wego-torch/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 49, in fetch
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/opt/vitis_ai/conda/envs/vitis-ai-wego-torch/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 49, in
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/opt/vitis_ai/conda/envs/vitis-ai-wego-torch/lib/python3.7/site-packages/torch/utils/data/dataset.py", line 290, in __getitem__
return self.dataset[self.indices[idx]]
File "/opt/vitis_ai/conda/envs/vitis-ai-wego-torch/lib/python3.7/site-packages/torchvision/datasets/folder.py", line 229, in __getitem__
path, target = self.samples[index]
IndexError: list index out of range

請(qǐng)往數(shù)據(jù)集添加更多的測(cè)試數(shù)據(jù)。

2.更新VCK5000到xilinx_vck5000_gen4x8_xdma_base_2出錯(cuò)

EXE: /opt/xilinx/xrt/bin/unwrapped/xbmgmt2
[xbmgmt] ERROR: Failded to update base: Invalid argument

檢查platform是否存已經(jīng)安裝且名字輸入正確。

聯(lián)系FAE回退到Gen3X16,重新升級(jí)。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    29383

    瀏覽量

    267679
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    669

    瀏覽量

    21956
  • Shell
    +關(guān)注

    關(guān)注

    1

    文章

    361

    瀏覽量

    23234
  • Vitis
    +關(guān)注

    關(guān)注

    0

    文章

    145

    瀏覽量

    7360
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【KV260視覺(jué)入門套件試用體驗(yàn)】部署vitis-ai環(huán)境以及測(cè)試demo

    cmake 創(chuàng)建一個(gè)cmake項(xiàng)目 加入最簡(jiǎn)單的代碼 執(zhí)行cmake . make 然后運(yùn)行kv260_test 首先下載vitis-ai的runtime組件 下載地址 https
    發(fā)表于 08-27 23:35

    【KV260視覺(jué)入門套件試用體驗(yàn)】部署DPU鏡像并運(yùn)行Vitis AI圖像分類示例程序

    /root目錄下已經(jīng)有了兩個(gè)目錄。 使用tree命令,可以看到Vitis-AI目錄結(jié)構(gòu): 接下來(lái)我們將會(huì)嘗試運(yùn)行vai_runtime下的resnet50示例程序,我們先看看這個(gè)目錄下的文件結(jié)構(gòu)
    發(fā)表于 09-10 23:01

    【KV260視覺(jué)入門套件試用體驗(yàn)】五、VITis AI (人臉檢測(cè)和人體檢測(cè))

    Vitis-AI/board_setup/vek280 $ ./host_cross_compiler_setup.sh 直接運(yùn)行權(quán)限不夠,使用chmod 進(jìn)行授權(quán)
    發(fā)表于 09-26 16:22

    【KV260視覺(jué)入門套件試用體驗(yàn)】六、VITis AI車牌檢測(cè)&車牌識(shí)別

    , [model] { return vitis::ai::PlateNum::create(model); }, process_result, 2); } 四、實(shí)踐效果 4.1、車牌檢測(cè) 使用命令運(yùn)行
    發(fā)表于 09-26 16:28

    【KV260視覺(jué)入門套件試用體驗(yàn)】八、VITis AI自動(dòng)駕駛多任務(wù)執(zhí)行MultiTask V3

    vitis::ai::MultiTask8UC3::create(model); }, process_result, 2); } 四、實(shí)踐效果 使用命令運(yùn)行代碼程序。 cd /home/root
    發(fā)表于 09-26 16:43

    【KV260視覺(jué)入門套件試用體驗(yàn)】基于Vitis AI的ADAS目標(biāo)識(shí)別

    Model Zoo下載個(gè)V3.0的xmodel就好了,說(shuō)干就干! root@xilinx-kv260-starterkit-20222:~/Vitis-AI/examples/vai_runtime
    發(fā)表于 09-27 23:21

    【KV260視覺(jué)入門套件試用體驗(yàn)】Vitis-AI加速的YOLOX視頻目標(biāo)檢測(cè)示例體驗(yàn)和原理解析

    本文將介紹如何使用Vitis-AI加速YOLOX模型實(shí)現(xiàn)視頻中的目標(biāo)檢測(cè),并對(duì)相關(guān)源碼進(jìn)行解讀。由于演示的示例程序源碼是Vitis-AI開源項(xiàng)目提供的,本文演示之前會(huì)介紹所需要的準(zhǔn)備工
    發(fā)表于 10-06 23:32

    【KV260視覺(jué)入門套件試用體驗(yàn)】Vitis AI 構(gòu)建開發(fā)環(huán)境,并使用inspector檢查模型

    一些挑戰(zhàn)和困難,但也會(huì)帶來(lái)很多樂(lè)趣和收獲。 Xilixn官方對(duì)于構(gòu)建Vitis AI環(huán)境有非常詳細(xì)的說(shuō)明,我主要參考這個(gè)鏈接: https://xilinx.github.io/Vitis-AI/
    發(fā)表于 10-14 15:34

    Vitis AI 1.4賦予 AI 產(chǎn)品化更多可能性

    吞吐量 AI 推理和信號(hào)處理應(yīng)用,可幫助設(shè)計(jì)者使用 AI 和 DSP 引擎開發(fā)解決方案。 VCK190 VCK5000 Versal 開發(fā)卡面向需要高吞吐量
    的頭像 發(fā)表于 08-09 10:54 ?1649次閱讀

    Xilinx KV260 Vitis-AI 1.4人臉檢測(cè)

    電子發(fā)燒友網(wǎng)站提供《Xilinx KV260 Vitis-AI 1.4人臉檢測(cè).zip》資料免費(fèi)下載
    發(fā)表于 06-14 10:34 ?0次下載
    Xilinx KV260 <b class='flag-5'>Vitis-AI</b> 1.4人臉檢測(cè)

    使用Vitis-AI進(jìn)行車牌識(shí)別

    電子發(fā)燒友網(wǎng)站提供《使用Vitis-AI進(jìn)行車牌識(shí)別.zip》資料免費(fèi)下載
    發(fā)表于 06-27 09:49 ?2次下載
    使用<b class='flag-5'>Vitis-AI</b>進(jìn)行車牌識(shí)別

    VCK5000數(shù)據(jù)中心加速開發(fā)套件硬件安裝指南

    電子發(fā)燒友網(wǎng)站提供《VCK5000數(shù)據(jù)中心加速開發(fā)套件硬件安裝指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-14 14:33 ?4次下載
    <b class='flag-5'>VCK5000</b>數(shù)據(jù)中心加速開發(fā)套件硬件安裝指南

    用于AI推理的VCK5000產(chǎn)品簡(jiǎn)介

    電子發(fā)燒友網(wǎng)站提供《用于AI推理的VCK5000產(chǎn)品簡(jiǎn)介.pdf》資料免費(fèi)下載
    發(fā)表于 09-14 09:39 ?0次下載
    用于<b class='flag-5'>AI</b>推理的<b class='flag-5'>VCK5000</b>產(chǎn)品簡(jiǎn)介

    Vitis AI校準(zhǔn)和量化代碼

    Vitis AI 校準(zhǔn)和量化代碼導(dǎo)入必要的模塊執(zhí)行校準(zhǔn)過(guò)程評(píng)估量化模型準(zhǔn)確度導(dǎo)出量化模型?
    發(fā)表于 10-15 17:14 ?2次下載

    如何使用Vitis-AI加速YOLOX模型實(shí)現(xiàn)視頻中的目標(biāo)檢測(cè)

    本文將介紹如何使用Vitis-AI加速YOLOX模型實(shí)現(xiàn)視頻中的目標(biāo)檢測(cè),并對(duì)相關(guān)源碼進(jìn)行解讀。由于演示的示例程序源碼是Vitis-AI開源項(xiàng)目提供的,本文演示之前會(huì)介紹所需要的準(zhǔn)備工
    的頭像 發(fā)表于 10-16 15:43 ?988次閱讀
    如何使用<b class='flag-5'>Vitis-AI</b>加速YOLOX模型實(shí)現(xiàn)視頻中的目標(biāo)檢測(cè)