Executable Usage - 2023.2 English

Vitis Libraries

Release Date
2023-12-20
Version
2023.2 English
  • Work Directory(Step 1)

The steps for library download and environment setup can be found in README of L3 folder. For getting the design,

cd L3/examples/cornertracker
  • Build kernel(Step 2)

Run the following make command to build your XCLBIN and host binary targeting a specific device. Please be noticed that this process will take a long time, maybe couple of hours.

export OPENCV_INCLUDE=< path-to-opencv-include-folder >
export OPENCV_LIB=< path-to-opencv-lib-folder >
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:< path-to-opencv-lib-folder >
export PLATFORM=< path-to-platform-directory >/< platform >.xpfm
make host xclbin TARGET=hw
  • Run kernel(Step 3)

To get the benchmark results, please run the following command.

make run TARGET=hw
  • Example output(Step 4)
-----------Corner Tracker Design---------------
Found Platform
Platform Name: Xilinx
XCLBIN File Name: krnl_cornertracker
INFO: Importing vision/L3/tests/cornertracker/cornertrack/Xilinx_Cornertrack_L3_Test_vitis_hw_u200/build_dir.hw.xilinx_u200_xdma_201830_2/krnl_cornertracker.xclbin
Loading: 'vision/L3/tests/cornertracker/cornertrack/Xilinx_Cornertrack_L3_Test_vitis_hw_u200/build_dir.hw.xilinx_u200_xdma_201830_2/krnl_cornertracker.xclbin'
***************************************************
Test Case no: 1

 Harris Execution

 Harris: Buffers created

 Harris: data copied to device

 Harris: args set

 Harris kernel called


 Harris Done

 Pyrdown Execution

 Pyrdown: Buffers created

 Pyrdown: data copied to device

 Pyrdown Args set

 pyr in ht = 144
 pyr in wd = 256
 pyr out ht = 72
 pyr out wd = 128

 Pyrdown kernel called


 Pyrdown data copied to host

 Pyrdown Execution done

 Pyrdown: Buffers created

 Pyrdown: data copied to device

 Pyrdown Args set

 pyr in ht = 72
 pyr in wd = 128
 pyr out ht = 36
 pyr out wd = 64

 Pyrdown kernel called


 Pyrdown data copied to host

 Pyrdown Execution done

 Pyrdown: Buffers created

 Pyrdown: data copied to device

 Pyrdown Args set

 pyr in ht = 36
 pyr in wd = 64
 pyr out ht = 18
 pyr out wd = 32

 Pyrdown kernel called


 Pyrdown data copied to host

 Pyrdown Execution done

 Pyrdown: Buffers created

 Pyrdown: data copied to device

 Pyrdown Args set

 pyr in ht = 18
 pyr in wd = 32
 pyr out ht = 9
 pyr out wd = 16

 Pyrdown kernel called


 Pyrdown data copied to host

 Pyrdown Execution done

 **********Optical Flow Computation*******************

 Buffers created

  *********OF Computation Level =4*********

  *********OF Computation iteration =0*********

 Data copied from host to device

 kernel args set

 flow_rows =9flow_cols=16flow_in_rows =9flow_in_cols =16

 level4calls done0

  *********OF Computation iteration =1*********

 Data copied from host to device

 kernel args set

 flow_rows =9flow_cols=16flow_in_rows =9flow_in_cols =16

 level4calls done1

  *********OF Computation iteration =2*********

 Data copied from host to device

 kernel args set

 flow_rows =9flow_cols=16flow_in_rows =9flow_in_cols =16

 level4calls done2

  *********OF Computation iteration =3*********

 Data copied from host to device

 kernel args set

 flow_rows =9flow_cols=16flow_in_rows =9flow_in_cols =16

 level4calls done3

  *********OF Computation iteration =4*********

 Data copied from host to device

 kernel args set

 flow_rows =9flow_cols=16flow_in_rows =9flow_in_cols =16

 level4calls done4

 Buffers created

  *********OF Computation Level =3*********

  *********OF Computation iteration =0*********

 Data copied from host to device

 kernel args set

 flow_rows =18flow_cols=32flow_in_rows =9flow_in_cols =16

 level3calls done0

  *********OF Computation iteration =1*********

 Data copied from host to device

 kernel args set

 flow_rows =18flow_cols=32flow_in_rows =18flow_in_cols =32

 level3calls done1

  *********OF Computation iteration =2*********

 Data copied from host to device

 kernel args set

 flow_rows =18flow_cols=32flow_in_rows =18flow_in_cols =32

 level3calls done2

  *********OF Computation iteration =3*********

 Data copied from host to device

 kernel args set

 flow_rows =18flow_cols=32flow_in_rows =18flow_in_cols =32

 level3calls done3

  *********OF Computation iteration =4*********

 Data copied from host to device

 kernel args set

 flow_rows =18flow_cols=32flow_in_rows =18flow_in_cols =32

 level3calls done4

 Buffers created

  *********OF Computation Level =2*********

  *********OF Computation iteration =0*********

 Data copied from host to device

 kernel args set

 flow_rows =36flow_cols=64flow_in_rows =18flow_in_cols =32

 level2calls done0

  *********OF Computation iteration =1*********

 Data copied from host to device

 kernel args set

 flow_rows =36flow_cols=64flow_in_rows =36flow_in_cols =64

 level2calls done1

  *********OF Computation iteration =2*********

 Data copied from host to device

 kernel args set

 flow_rows =36flow_cols=64flow_in_rows =36flow_in_cols =64

 level2calls done2

  *********OF Computation iteration =3*********

 Data copied from host to device

 kernel args set

 flow_rows =36flow_cols=64flow_in_rows =36flow_in_cols =64

 level2calls done3

  *********OF Computation iteration =4*********

 Data copied from host to device

 kernel args set

 flow_rows =36flow_cols=64flow_in_rows =36flow_in_cols =64

 level2calls done4

 Buffers created

  *********OF Computation Level =1*********

  *********OF Computation iteration =0*********

 Data copied from host to device

 kernel args set

 flow_rows =72flow_cols=128flow_in_rows =36flow_in_cols =64

 level1calls done0

  *********OF Computation iteration =1*********

 Data copied from host to device

 kernel args set

 flow_rows =72flow_cols=128flow_in_rows =72flow_in_cols =128

 level1calls done1

  *********OF Computation iteration =2*********

 Data copied from host to device

 kernel args set

 flow_rows =72flow_cols=128flow_in_rows =72flow_in_cols =128

 level1calls done2

  *********OF Computation iteration =3*********

 Data copied from host to device

 kernel args set

 flow_rows =72flow_cols=128flow_in_rows =72flow_in_cols =128

 level1calls done3

  *********OF Computation iteration =4*********

 Data copied from host to device

 kernel args set

 flow_rows =72flow_cols=128flow_in_rows =72flow_in_cols =128

 level1calls done4

 Buffers created

  *********OF Computation Level =0*********

  *********OF Computation iteration =0*********

 Data copied from host to device

 kernel args set

 flow_rows =144flow_cols=256flow_in_rows =72flow_in_cols =128

 level0calls done0

  *********OF Computation iteration =1*********

 Data copied from host to device

 kernel args set

 flow_rows =144flow_cols=256flow_in_rows =144flow_in_cols =256

 level0calls done1

  *********OF Computation iteration =2*********

 Data copied from host to device

 kernel args set

 flow_rows =144flow_cols=256flow_in_rows =144flow_in_cols =256

 level0calls done2

  *********OF Computation iteration =3*********

 Data copied from host to device

 kernel args set

 flow_rows =144flow_cols=256flow_in_rows =144flow_in_cols =256

 level0calls done3

  *********OF Computation iteration =4*********

 Data copied from host to device

 kernel args set

 flow_rows =144flow_cols=256flow_in_rows =144flow_in_cols =256

 level0calls done4

 OF done

 **********Corner Update Computation*******************

 kernel args set

 flow_rows =144flow_cols=256num of corners=47harris_flag=1

 Corner Update called

 Corner Update done

 OF done

 Num of corners = 47
***************************************************
***************************************************
Test Case no: 2

 Harris Execution

 Harris: Buffers created

 Harris: data copied to device

 Harris: args set

 Harris kernel called


 Harris Done

 Pyrdown Execution

 Pyrdown: Buffers created

 Pyrdown: data copied to device

 Pyrdown Args set

 pyr in ht = 144
 pyr in wd = 256
 pyr out ht = 72
 pyr out wd = 128

 Pyrdown kernel called


 Pyrdown data copied to host

 Pyrdown Execution done

 Pyrdown: Buffers created

 Pyrdown: data copied to device

 Pyrdown Args set

 pyr in ht = 72
 pyr in wd = 128
 pyr out ht = 36
 pyr out wd = 64

 Pyrdown kernel called


 Pyrdown data copied to host

 Pyrdown Execution done

 Pyrdown: Buffers created

 Pyrdown: data copied to device

 Pyrdown Args set

 pyr in ht = 36
 pyr in wd = 64
 pyr out ht = 18
 pyr out wd = 32

 Pyrdown kernel called


 Pyrdown data copied to host

 Pyrdown Execution done

 Pyrdown: Buffers created

 Pyrdown: data copied to device

 Pyrdown Args set

 pyr in ht = 18
 pyr in wd = 32
 pyr out ht = 9
 pyr out wd = 16

 Pyrdown kernel called


 Pyrdown data copied to host

 Pyrdown Execution done

 **********Optical Flow Computation*******************

 Buffers created

  *********OF Computation Level =4*********

  *********OF Computation iteration =0*********

 Data copied from host to device

 kernel args set

 flow_rows =9flow_cols=16flow_in_rows =9flow_in_cols =16

 level4calls done0

  *********OF Computation iteration =1*********

 Data copied from host to device

 kernel args set

 flow_rows =9flow_cols=16flow_in_rows =9flow_in_cols =16

 level4calls done1

  *********OF Computation iteration =2*********

 Data copied from host to device

 kernel args set

 flow_rows =9flow_cols=16flow_in_rows =9flow_in_cols =16

 level4calls done2

  *********OF Computation iteration =3*********

 Data copied from host to device

 kernel args set

 flow_rows =9flow_cols=16flow_in_rows =9flow_in_cols =16

 level4calls done3

  *********OF Computation iteration =4*********

 Data copied from host to device

 kernel args set

 flow_rows =9flow_cols=16flow_in_rows =9flow_in_cols =16

 level4calls done4

 Buffers created

  *********OF Computation Level =3*********

  *********OF Computation iteration =0*********

 Data copied from host to device

 kernel args set

 flow_rows =18flow_cols=32flow_in_rows =9flow_in_cols =16

 level3calls done0

  *********OF Computation iteration =1*********

 Data copied from host to device

 kernel args set

 flow_rows =18flow_cols=32flow_in_rows =18flow_in_cols =32

 level3calls done1

  *********OF Computation iteration =2*********

 Data copied from host to device

 kernel args set

 flow_rows =18flow_cols=32flow_in_rows =18flow_in_cols =32

 level3calls done2

  *********OF Computation iteration =3*********

 Data copied from host to device

 kernel args set

 flow_rows =18flow_cols=32flow_in_rows =18flow_in_cols =32

 level3calls done3

  *********OF Computation iteration =4*********

 Data copied from host to device

 kernel args set

 flow_rows =18flow_cols=32flow_in_rows =18flow_in_cols =32

 level3calls done4

 Buffers created

  *********OF Computation Level =2*********

  *********OF Computation iteration =0*********

 Data copied from host to device

 kernel args set

 flow_rows =36flow_cols=64flow_in_rows =18flow_in_cols =32

 level2calls done0

  *********OF Computation iteration =1*********

 Data copied from host to device

 kernel args set

 flow_rows =36flow_cols=64flow_in_rows =36flow_in_cols =64

 level2calls done1

  *********OF Computation iteration =2*********

 Data copied from host to device

 kernel args set

 flow_rows =36flow_cols=64flow_in_rows =36flow_in_cols =64

 level2calls done2

  *********OF Computation iteration =3*********

 Data copied from host to device

 kernel args set

 flow_rows =36flow_cols=64flow_in_rows =36flow_in_cols =64

 level2calls done3

  *********OF Computation iteration =4*********

 Data copied from host to device

 kernel args set

 flow_rows =36flow_cols=64flow_in_rows =36flow_in_cols =64

 level2calls done4

 Buffers created

  *********OF Computation Level =1*********

  *********OF Computation iteration =0*********

 Data copied from host to device

 kernel args set

 flow_rows =72flow_cols=128flow_in_rows =36flow_in_cols =64

 level1calls done0

  *********OF Computation iteration =1*********

 Data copied from host to device

 kernel args set

 flow_rows =72flow_cols=128flow_in_rows =72flow_in_cols =128

 level1calls done1

  *********OF Computation iteration =2*********

 Data copied from host to device

 kernel args set

 flow_rows =72flow_cols=128flow_in_rows =72flow_in_cols =128

 level1calls done2

  *********OF Computation iteration =3*********

 Data copied from host to device

 kernel args set

 flow_rows =72flow_cols=128flow_in_rows =72flow_in_cols =128

 level1calls done3

  *********OF Computation iteration =4*********

 Data copied from host to device

 kernel args set

 flow_rows =72flow_cols=128flow_in_rows =72flow_in_cols =128

 level1calls done4

 Buffers created

  *********OF Computation Level =0*********

  *********OF Computation iteration =0*********

 Data copied from host to device

 kernel args set

 flow_rows =144flow_cols=256flow_in_rows =72flow_in_cols =128

 level0calls done0

  *********OF Computation iteration =1*********

 Data copied from host to device

 kernel args set

 flow_rows =144flow_cols=256flow_in_rows =144flow_in_cols =256

 level0calls done1

  *********OF Computation iteration =2*********

 Data copied from host to device

 kernel args set

 flow_rows =144flow_cols=256flow_in_rows =144flow_in_cols =256

 level0calls done2

  *********OF Computation iteration =3*********

 Data copied from host to device

 kernel args set

 flow_rows =144flow_cols=256flow_in_rows =144flow_in_cols =256

 level0calls done3

  *********OF Computation iteration =4*********

 Data copied from host to device

 kernel args set

 flow_rows =144flow_cols=256flow_in_rows =144flow_in_cols =256

 level0calls done4

 OF done

 **********Corner Update Computation*******************

 kernel args set

 flow_rows =144flow_cols=256num of corners=47harris_flag=0

 Corner Update called

 Corner Update done

 OF done

 Num of corners = 47
***************************************************
------------------------------------------------------------