Join Flow - 2024.1 English

Vitis Libraries

Release Date
2024-08-06
Version
2024.1 English

Internal multi-join supports three reconfigurable modes, namely inner-join, anti-join, and semi-join. To join efficiently at a different data scale, the join process is divided into two phases: build and probe. The build phase takes Table A as the input to build the hash table, while the probe phase takes Table B as the input and probes the conflicting rows from the built hash table. By calling Table B multiple iterations, Table B that with arbitrary size can be joined. On the other hand, by spliting Table A into multiple slice and running mutli-(build + Nx probe), Table A with any size can be employed as the left table.

This kernel works with three types of input buffers, 1x kernel configuration buffer, 1x meta info buffer, 1x validation-bit buffer, and 3x column data buffers. The result buffers are 1x result data meta and 4x the output column data.

The hash join type option indicates the work mode of multi-join, 0 for inner-join, 1 for semi-join, and 2 for anti-join.

Caution

The 3-columns input data are scanned in via 3x 256-bit AXI ports. However, only 1x 256-bit AXI port is employed to the JOIN output (up to four cols data). When the resulting data is huge, the write out module performance would be the bottleneck of the kernel.