libdax - functions for using the DAX (Data Analytics Accelerator)
The libdax library provides access to DAX units on a SPARC processor. DAX is a hardware unit that accelerates in-memory data analysis operations. On non-DAX systems, the libdax operations are implemented in software. Functions in the libdax library perform the following operations.
Scan – The dax_scan_xxxx functions scan a vector of input elements and compare each input element with a user specified value. These functions output a bit vector with values set to 1 where the comparison is true.
Select – The dax_select() function selects a subset of the input vector elements and copies them to the output vector.
Extract – The dax_extract() function converts a vector of input elements from one form to another, and decompresses data.
Translate – The dax_translate() function looks up each input vector element in a user-provided table and writes the 1-bit table value to a output vector.
Compress – The dax_zip() and dax_encode() functions compress a vector of input elements and write the compressed data to an output buffer.
Trace – dax_dtrace provides DTrace probes for the libdax library. A DTrace script can inspect command arguments, results, and performance data by using the probes. You can use this data for debugging, performance analysis and tuning.
Debug – The dax_set_debug(), dax_set_log(), and dax_debug() functions provide information that helps you debug problems.
There are other functions such as dax_copy(), dax_fill(), dax_and(), dax_or(), and dax_xor() that perform miscellaneous operations on the input and output vectors.
You can perform asynchronous DAX operations by using the dax_post family of functions.
The shared object libdax.so.1 provides the public interfaces listed below.
|
shared object
See attributes(7) for descriptions of the following attributes:
|
See man pages for each of the above, plus dax_vec_t(3DAX), dax_dtrace(3DAX), dax_adi(3DAX), dax_set_debug(3DAX), dax_debug(3DAX)
After a fork(2) system call or any of its variants, the threads of the child process cannot use the inherited dax_context_t for libdax operations. They must call the dax_thread_init() function again to use libdax.