- Work Directory(Step 1)
The steps for library download and environment setup can be found in l2_vitis_graph. For getting the design,
cd L2/benchmarks/merge
- 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.
make run TARGET=hw PLATFORM=xilinx_u50_gen3x16_xdma_5_202210_1
- Run kernel(Step 3)
To get the benchmark results, please run the following command.
./build_dir.sw_emu.xilinx_u50_gen3x16_xdma_5_202210_1/host.exe -xclbin build_dir.sw_emu.xilinx_u50_gen3x16_xdma_5_202210_1/merge_kernel.xclbin -io merge_data/example/exapmle-wt_offset.mtx -ie merge_data/example/exapmle-wt_edge.mtx -iw merge_data/example/exapmle-wt_weight.mtx -ic merge_data/example/exapmle-wt_c.mtx -oo merge_data/example/exapmle-wt_offset_out.mtx -oe merge_data/example/exapmle-wt_edge_out.mtx -ow merge_data/example/exapmle-wt_weight_out.mtx -go merge_golden/example/exapmle-wt_offset_out.mtx -ge merge_golden/example/exapmle-wt_edge_out.mtx -gw merge_golden/example/exapmle-wt_weight_out.mtx
Merge Input Arguments:
Usage: host.exe -[-xclbin -io -ie -iw -ic -oo -oe -ow -go -ge -gw] -xclbin: the kernel name -io: the input for offsets -ie: the input for edges -iw the input for weights -ic the input for node's community id -oo the output of offsets -oe the output of edges -ow the output of weights -go the golden for offsets -ge the golden for edges -gw the golden for weights
Note: Default arguments are set in Makefile, the data have only one column that the node’s community id is divided by other clustering algorithm, for example louvain.
- Example output(Step 4)
num = 17, numEdges = 56, num_c_out = 4 Found Platform Platform Name: Xilinx Info: Context created Info: Command queue created Found Device=xilinx_u50_gen3x16_xdma_5_202210_1 INFO: Importing build_dir.sw_emu.xilinx_u50_gen3x16_xdma_5_202210_1/merge_kernel.xclbin Loading: 'build_dir.sw_emu.xilinx_u50_gen3x16_xdma_5_202210_1/merge_kernel.xclbin' Kernel Name: merge_kernel, CU Number: 0, Thread creation status: success Info: Program created Info: Kernel created kernel has been created INFO: kernel start------ start ComputeCount start GetC, num_v=16 start UpdateCount, num_v=16 start SetIndexC, num_v=16 start GetC, num_v=4 start GetC, num_v=16 start GetC, num_v=16 start DoMergeHls start LoadCountC, num_c_out=4 start LoadJump, num_v=16 start GetV, num_c_out=4 start GetEW, num_c_out=4 start HashAggregateDataflow start SetV, num_c_out=4 start SetEW, num_c_out=4 SetEW: count = 14 INFO: kernel end------ INFO: Execution time 14.454ms Info: Time in host-to-device: 1.75013ms Info: Time in kernel: 12.2135ms Info: Time in device-to-host: 0.169928ms Test passed device process sw_emu_device done