Software Acceleration Classes¶
enum xf::data_analytics::text::re::ErrCode¶
Overview¶
Error code enumerations. More…
// enum values SUCCESS = 0 PATTERN_ERR = 1 MEM_ERR = 2 DEV_ERR = 3 OPCODE_ERR = 4 INSTR_NM_ERR = 5 CCLASS_NM_ERR = 6 CPGP_NM_ERR = 7
Detailed Documentation¶
Error code enumerations.
Enum Values¶
SUCCESS
RE pre-compilation success
PATTERN_ERR
Invalid RE pattern
MEM_ERR
CL buffer allocation failed
DEV_ERR
Kernel creation failed
OPCODE_ERR
Wrong OP code
INSTR_NM_ERR
Wrong number of instructions
CCLASS_NM_ERR
Wrong number of character classes
CPGP_NM_ERR
Wrong number of capturing groups
class xf::data_analytics::text::re::RegexEngine¶
#include "xf_data_analytics/text/regex_engine.hpp"
Methods¶
RegexEngine¶
RegexEngine ( const std::string& xclbin, const int dev_index = 0, const int instr_depth = 4096, const int char_class_num = 128, const int capture_grp_num = 512, const int msg_size = 4096, const int max_slice_size = 5242880, const int max_slice_num = 256 )
Default constructor for loading and programming binary.
Parameters:
xclbin | Path to FPGA binary. |
dev_index | The index of Xilinx OpenCL device. |
instr_depth | Max number of instructions. |
char_class_num | Max number of character classes. |
capture_grp_num | Max number of capturing groups. |
msg_size | Max size for each message, in number of bytes. max_slice_size Max message slice size, in number of bytes. |
max_slice_num | Max message slice number. |
compile¶
ErrCode compile (std::string pattern)
Pre-compiles pattern and gives error code correspondingly.
Parameters:
pattern | Input regular expression |
match¶
ErrCode match ( uint32_t total_lnm, const uint64_t* msg_buff, uint32_t* offt_buff, uint16_t* len_buff, uint32_t* out_buff )
Prepares configurations for RegexEngineKernel
, and performs the actual matching process.
Parameters:
total_lnm | Total number of lines in current message block |
msg_buff | Buffer for saving messages line-by-line, pads white-space if not hit the boundary of 64-bit |
offt_buff | Buffer for saving starting address of each line, aligned with 64-bit |
len_buff | Buffer for saving length of each message, in byte |
out_buff | Buffer for saving output results including match flag & corresponding start/end offset address for each capturing group |
RegexEngine¶
RegexEngine ( const int instr_depth = 4096, const int char_class_num = 128, const int capture_grp_num = 512, const int msg_size = 4096, const int max_slice_size = 5242880, const int max_slice_num = 256 )
Default constructor for loading and programming binary.
Parameters:
instr_depth | Max number of instructions. |
char_class_num | Max number of character classes. |
capture_grp_num | Max number of capturing groups. |
msg_size | Max size for each message, in number of bytes. max_slice_size Max message slice size, in number of bytes. |
max_slice_num | Max message slice number. |
class sssd_engine::DataEngineConfig¶
#include "data_engine_config.hpp"
Methods¶
genConfigBits¶
ErrorCode genConfigBits ( bool gzip, sssd_scandesc_t* sd, uint64_t* cfg )
generate configuration bits for kernel
Parameters:
gzip | file under gzip or not |
sd | schema for describing the table |
cfg | kernel configurations |
Returns:
error code
class sssd_engine::data_engine_sc::DataEngine¶
#include "data_engine_sc.hpp"
Methods¶
DataEngine¶
DataEngine ( int t_id, VPP_BP& _csvInBufPool, VPP_BP& _cfgInBufPool, VPP_BP& _outBufPool, VPP_BP& _metaBufPool, VPP_CC* _cuCluster )
constructor of data engine. context, program, command queue are created and ready after FPGA init
Parameters:
t_id | targeted device id. |
_csvInBufPool | input CSV buffer pool |
_cfgInBufPool | input configuration buffer pool |
_outBufPool | output result buffer pool |
_metaBufPool | output meta buffer pool |
_cuCluster | CU clusters |
class sssd_engine::SmartSSDCache¶
#include "smart_ssd_cache.hpp"
Methods¶
SmartSSDCache¶
SmartSSDCache ( const char* xclbin_path, int card_num, sssd_info_t* disks, FILE* log )
default constructor, instantiate data engine
Parameters:
xclbin_path | path of xclbin |
card_num | number of availabe SmartSSD cards |
disks | information of the SSDs |
log | file handler for dumping the logs |
addFile¶
ErrorCode addFile ( std::unique_ptr <char[]> data, size_t size, const std::string& filename )
store file to managed SmartSSD cards. Copy data from CPU memory to SSD cards
Parameters:
data | pointer to file content in memory. Before return, the block of storage will be released |
size | file size |
filename | file to store |
Returns:
success or fail status
scanFile¶
char* scanFile ( const char* fname, sssd_scandesc_t* sd, ErrorCode& err )
scan files from managed SmartSSD cards.
Parameters:
fname | file name; |
sd | pointer to configuration including schema, projection and filter conditions filenames. |
err | return the status of exectution. |
Returns:
pointer the selected row. It is stored in format defined by data type in schema.
listFiles¶
ErrorCode listFiles ( const char* path_pattern, std::vector <std::string>& file_list )
list all the file name that matche the path_pattern
Parameters:
path_pattern | specify the path_pattern for regex |
file_list | store the file name that matched the path_pattern |
Returns:
fail/success
print_input¶
void print_input (const sssd_scandesc_t* sd)
print input information
Parameters:
sd | the input schema |
print_output¶
void print_output ( const int64_t value [], const bool isnull [], int32_t hash, const sssd_scandesc_t* sd )
print output information
Parameters:
value | values |
isnull | is null flags |
hash | hash value |
sd | the schema |
release¶
void release ( const char* file_path, char* buf_ptr )
release specified buffer
Parameters:
file_path | path to the file |
buf_ptr | buffer to be released |