Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

libdax (3LIB)

Name

libdax - functions for using the DAX (Data Analytics Accelerator)

Description

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.


Note -  libdax is available only for 64-bit applications.

INTERFACES

The shared object libdax.so.1 provides the public interfaces listed below.

dax_thread_init
dax_scan_value
dax_scan_value_post
dax_thread_fini
dax_scan_range
dax_scan_range_post
dax_queue_create
dax_extract
dax_extract_post
dax_queue_destroy
dax_translate
dax_translate_post
dax_poll
dax_select
dax_select_post
dax_cancel
dax_copy
dax_copy_post
dax_cancel_all
dax_fill
dax_fill_post
dax_encode
dax_and
dax_and_post
dax_zip
dax_or
dax_or_post
dax_zip_create
dax_xor
dax_xor_post
dax_zip_create_contig
dax_zip_get_contig
dax_zip_free
dax_get_props
dax_set_debug
dax_set_log
dax_set_log_file
dax_set_log_callback
dax_int_create

Files

/lib/64/libdax.so.1

shared object

Attributes

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Availability
system/library
Interface Stability
Committed

See Also

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)

Bugs

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.