本文转载自: 硬码农二毛哥微信公众号
在Vitis AI设计中,构建模型是其中非常重要的一步。如果使用调用的模型库呢?
获取DPU Kernel
下载Vitis AI
git clone https://github.com/Xilinx/Vitis-AI.git git checkout v1.2
修改DPU配置文件
将Vitis-AI中的DPU-TRD文件夹拷贝到工程目录中,DPU-TRD文件夹中修改dpu_conf.vh和prj_config。
将dpu_conf.vh中做如下修改:
$cd DPU-TRD/prj/Vitis/ $vim dpu_conf.vh //`define B4096 `define B1024
修改prj_config文件:
$cd DPU-TRD/prj/Vitis/config_file $vim prj_config [clock] id=0:DPUCZDX8G_1.aclk id=1:DPUCZDX8G_1.ap_clk_2 [connectivity] sp=DPUCZDX8G_1.M_AXI_GP0:HPC0 sp=DPUCZDX8G_1.M_AXI_HP0:HP0 sp=DPUCZDX8G_1.M_AXI_HP2:HP1 [advanced] misc=:solution_name=link [vivado] prop=run.impl_1.strategy=Performance_Explore #param=place.runPartPlacer=0
生成.xo文件
make binary_container_1/dpu.xo DEVICE=fzu3_custom
编译模型
下载模型
$cd Vitis-AI/AI-Model-Zoo $source ./get_model.sh
下载文件all_models_1.2.zip,解压模型
$unzip all_models_1.2.zip
运行docker
$cd Vitis-AI $./docker_run.sh xilinx/vitis-ai:1.2.82 $conda activate vitis-ai-caffe
进入Tool-Example文件夹,新建modelzoo文件夹,将system.hwh拷贝到modelzoo。
$cd Tool-Example $mkdir modelzoo $cd modelzoo $cp ../system.hwh ./
生成.dcf文件
$dlet -f system.hwh
修改.json文件
将arch.json文件拷贝到modelzoo。
Caffe
创建编译脚本
新建编译输出文件夹compiled_output,新建脚本文件complie_cf_model.sh,内容如下:
model_name=$1 modelzoo_name=$2 vai_c_caffe \ --prototxt ../../AI-Model-Zoo/all_models_1.2/caffe/${modelzoo_name}/quantized/Edge/deploy.prototxt \ --caffemodel ../../AI-Model-Zoo/all_models_1.2/caffe/${modelzoo_name}/quantized/Edge/deploy.caffemodel \ --arch ./arch.json \ --output_dir ./compiled_output/${modelzoo_name} \ --net_name ${model_name} \ --options "{'mode': 'normal'}"
运行编译脚本
resnet50
source ./compile_cf_model.sh resnet50 cf_resnet50_imagenet_244_244_7.7G_1.2
densebox
source ./compile_cf_model.sh densebox cf_densebox_wider_360_640_1.11G_1.2
退出docker
Vitis编译