- Work Directory(Step 1)
The steps for library download and environment setup can be found in l2_vitis_graph. To get 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. This process might take hours.
make run TARGET=hw PLATFORM=xilinx_u50_gen3x16_xdma_5_202210_1
- Run kernel(Step 3)
To get the benchmark results, 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 has 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