- Work Directory (Step 1)
The steps for library download and environment setup can be found in l2_vitis_database. For getting the design:
cd L1/benchmarks/hash_group_aggregate
- Build Kernel (Step 2)
Run the following make command to build your XCLBIN and host binary targeting a specific device. This process will take a long time, maybe couple of hours.
make run TARGET=hw PLATFORM=xilinx_u280_xdma_201920_3
- Run Kernel (Step 3)
To get the benchmark results, run the following command:
./build_dir.hw.xilinx_u280_xdma_201920_3/test_aggr.exe -xclbin build_dir.hw.xilinx_u280_xdma_201920_3/hash_aggr_kernel.xclbin
Hash Group Aggregate Input Arguments:
Usage: test_aggr.exe -xclbin -xclbin: the kernel name
Note
The default arguments are set in the Makefile; you can use other platforms to build and run.
- Example Output (Step 4)
---------- Query with TPC-H 1G Data ---------- select max(l_extendedprice), min(l_extendedprice), sum(l_extendedprice), count(l_extendedprice) from lineitem group by l_orderkey --------------------------------------------- Host map Buffer has been allocated. Lineitem 6000000 rows Lineitem table has been read from disk insert: idx=0 key=180 i_pld=30bca4 insert: idx=1 key=377 i_pld=6137c ... Checking: idx=3e5 key:192 pld:d20c5351 Checking: idx=3e6 key:385 pld:c074aacf Checking: idx=3e7 key:104 pld:e6713746 No error found! kernel done! kernel_result_num=0x3e8 FPGA execution time of 3 runs: 104107 usec Average execution per run: 34702 usec INFO: kernel 0: execution time 31273 usec INFO: kernel 1: execution time 56554 usec INFO: kernel 2: execution time 43182 usec read_config: pu_end_status_a[0]=0x22222222 read_config: pu_end_status_b[0]=0x22222222 read_config: pu_end_status_a[1]=0x08 read_config: pu_end_status_b[1]=0x08 read_config: pu_end_status_a[2]=0x08 read_config: pu_end_status_b[2]=0x08 read_config: pu_end_status_a[3]=0x3e8 read_config: pu_end_status_b[3]=0x3e8 ref_result_num=3e8 --------------------------------------------- PASS! ---------------------------------------------