測試環(huán)境
簡介
VCK5000在vitis ai 3.0對應(yīng)的shell版本為xilinx-vck5000-gen4x8-qdma-base_2,對應(yīng)的XRT和XRM版本為xrt_202220.2.14.354和xrm_202220.1.5.212。舊版本的VCK5000需要首先升級到新的shell上,才能保證vitsi ai的demo正常運(yùn)行。在平臺更新中存在一些需要遵守的規(guī)則,例如xilinx_vck5000_gen3x16_xdma_base_1不能直接升級到最新版本,需要首先升級到vck5000_gen4x8_xdma_base_2。On the fly quantization是Vitis AI 3.0新添加的特性,可以執(zhí)行訓(xùn)練后量化 (PTQ) 以從浮點(diǎn)模型獲取量化模型。
Part1 VCK5000升級
Step 1 使用以下命令檢查當(dāng)前板卡的狀態(tài)
xbmgmt examine --report platform --device
輸出示例:
如果Flash properties: Type is ospi_versal一定需要更新到ospi_xgq。
只要板卡能被Vivado識別,可以通過下載比特流恢復(fù)到這個(gè)狀態(tài),恢復(fù)的方法為:
確認(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平臺
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
完成后等待一分鐘后冷啟動電腦。
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
完成后等待一分鐘后冷啟動電腦。
Step 5 更新到vck5000_gen4x8_qdma_base_2
下一步需要更新到vck5000_gen4x8_qdma_base_2,首先安裝對應(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平臺
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
升級完成后等待一分鐘冷啟動,由于沒有更新SC會出現(xiàn)
將SC版本從4.4.33更新到4.4.35 需要更新兩次。第一次更新SC會以失敗告終。
等待一分鐘后再次燒錄SC
再等待一分鐘后冷啟動電腦,然后檢查板卡狀態(tài)。
到此更新完畢。
Part2 運(yùn)行Vitis-AI 3.0 demo
獲取Vitis-AI倉庫。
git clone ;
以Pytorch為例子,獲取docker容器。
docker pull xilinx/vitis-ai-pytorch-cpu:latest
查詢系統(tǒng)中存在的容器
docker images
啟動容器。
根據(jù)DPU型號設(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
該腳本會設(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)備測試圖像
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é)果
常見錯(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
請往數(shù)據(jù)集添加更多的測試數(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,重新升級。
審核編輯:湯梓紅
-
AI
+關(guān)注
關(guān)注
87文章
30172瀏覽量
268439 -
命令
+關(guān)注
關(guān)注
5文章
678瀏覽量
21987 -
Shell
+關(guān)注
關(guān)注
1文章
363瀏覽量
23297 -
Vitis
+關(guān)注
關(guān)注
0文章
145瀏覽量
7405
發(fā)布評論請先 登錄
相關(guān)推薦
評論