GQE Kernel APIs¶
gqeAggr¶
#include "gqe_aggr.hpp"
void gqeAggr ( ap_uint <8*sizeof (int32_t)*16> buf_in [], ap_uint <8*sizeof (int32_t)*16> buf_out [], ap_uint <8*sizeof (int32_t)> buf_cfg [], ap_uint <8*sizeof (int32_t)> buf_result_info [], ap_uint <8*sizeof (int32_t)*16> ping_buf0 [], ap_uint <8*sizeof (int32_t)*16> ping_buf1 [], ap_uint <8*sizeof (int32_t)*16> ping_buf2 [], ap_uint <8*sizeof (int32_t)*16> ping_buf3 [], ap_uint <8*sizeof (int32_t)*16> pong_buf0 [], ap_uint <8*sizeof (int32_t)*16> pong_buf1 [], ap_uint <8*sizeof (int32_t)*16> pong_buf2 [], ap_uint <8*sizeof (int32_t)*16> pong_buf3 [] )
GQE Aggr Kernel.
For detailed document, see GQE Kernel Design.
Parameters:
buf_in | input table buffer. |
buf_out | output table buffer. |
buf_cfg | input configuration buffer. |
buf_result_info | output information buffer. |
ping_buf0 | gqeAggr’s temporal buffer for storing overflow. |
ping_buf1 | gqeAggr’s temporal buffer for storing overflow. |
ping_buf2 | gqeAggr’s temporal buffer for storing overflow. |
ping_buf3 | gqeAggr’s temporal buffer for storing overflow. |
pong_buf0 | gqeAggr’s temporal buffer for storing overflow. |
pong_buf1 | gqeAggr’s temporal buffer for storing overflow. |
pong_buf2 | gqeAggr’s temporal buffer for storing overflow. |
pong_buf3 | gqeAggr’s temporal buffer for storing overflow. |
gqeJoin¶
#include "gqe_join.hpp"
void gqeJoin ( ap_uint <8*sizeof (int32_t)*16> buf_A [], ap_uint <8*sizeof (int32_t)*16> buf_B [], ap_uint <8*sizeof (int32_t)*16> buf_C [], ap_uint <8*sizeof (int32_t)*16> buf_D [], ap_uint <8*sizeof (int32_t)*2> htb_buf0 [], ap_uint <8*sizeof (int32_t)*2> htb_buf1 [], ap_uint <8*sizeof (int32_t)*2> htb_buf2 [], ap_uint <8*sizeof (int32_t)*2> htb_buf3 [], ap_uint <8*sizeof (int32_t)*2> htb_buf4 [], ap_uint <8*sizeof (int32_t)*2> htb_buf5 [], ap_uint <8*sizeof (int32_t)*2> htb_buf6 [], ap_uint <8*sizeof (int32_t)*2> htb_buf7 [], ap_uint <8*sizeof (int32_t)*2> stb_buf0 [], ap_uint <8*sizeof (int32_t)*2> stb_buf1 [], ap_uint <8*sizeof (int32_t)*2> stb_buf2 [], ap_uint <8*sizeof (int32_t)*2> stb_buf3 [], ap_uint <8*sizeof (int32_t)*2> stb_buf4 [], ap_uint <8*sizeof (int32_t)*2> stb_buf5 [], ap_uint <8*sizeof (int32_t)*2> stb_buf6 [], ap_uint <8*sizeof (int32_t)*2> stb_buf7 [] )
GQE Join Kernel.
For detailed document, see GQE Kernel Design.
Parameters:
buf_A | input table A buffer. |
buf_B | input table B buffer. |
buf_C | output table C buffer. |
buf_D | configuration buffer. |
htb_buf0 | gqeJoin’s temporal buffer for storing small table. |
htb_buf1 | gqeJoin’s temporal buffer for storing small table. |
htb_buf2 | gqeJoin’s temporal buffer for storing small table. |
htb_buf3 | gqeJoin’s temporal buffer for storing small table. |
htb_buf4 | gqeJoin’s temporal buffer for storing small table. |
htb_buf5 | gqeJoin’s temporal buffer for storing small table. |
htb_buf6 | gqeJoin’s temporal buffer for storing small table. |
htb_buf7 | gqeJoin’s temporal buffer for storing small table. |
stb_buf0 | gqeJoin’s temporal buffer for storing small table. |
stb_buf1 | gqeJoin’s temporal buffer for storing small table. |
stb_buf2 | gqeJoin’s temporal buffer for storing small table. |
stb_buf3 | gqeJoin’s temporal buffer for storing small table. |
stb_buf4 | gqeJoin’s temporal buffer for storing small table. |
stb_buf5 | gqeJoin’s temporal buffer for storing small table. |
stb_buf6 | gqeJoin’s temporal buffer for storing small table. |
stb_buf7 | gqeJoin’s temporal buffer for storing small table. |
gqePart¶
#include "gqe_part.hpp"
void gqePart ( const int k_depth, const int col_index, const int bit_num, ap_uint <8*4*16> buf_A [], ap_uint <8*4*16> buf_B [], ap_uint <8*4*16> buf_D [] )
GQE partition kernel.
Parameters:
k_depth | depth of each hash bucket in URAM |
col_index | index of input column |
bit_num | number of defined partition, log2(number of partition) |
buf_A | input table buffer |
buf_B | output table buffer |
buf_D | configuration buffer |