Developer Reference


Graph Objects

The graph API in
Intel® oneAPI
Math Kernel Library
makes use of the following graph objects, which are implemented as opaque structures (following the direction of the
GraphBLAS C API Specification
). The user is required to operate them only through the provided graph API (refer to the Graph API Glossary for other types specific to the graph API).
Graph objects must be created by calling
prior to any operations with them, and destroyed by calling
when they are no longer needed in order to avoid memory leaks.
Graph objects can take in user data through the APIs of
or can have their data created as a result of calling a graph operation (for example,
can create data for an output graph matrix). In the former case, the library assumes that any buffers passed as arguments to
routines persist for the life of the graph object or until a set routine is called for an existing format, whichever is shorter. Calling a set routine for an existing format resets the data of the graph object to the new data. After destroying the graph object or resetting its data, you can safely deallocate data used as input to an
Intel® oneAPI Math Kernel Library
will never deallocate user-allocated memory.
Graph Object
A graph matrix (internal storage format can be changed throughout execution)
A graph vector (internal storage format can be changed throughout execution)
A descriptor for a graph operation. It is a lightweight object which enables the user to provide additional modifiers for the operands in a graph operation (for example, set a transposition flag for one of the matrices in
, or use the complement of the mask’s structure).

Product and Performance Information


Performance varies by use, configuration and other factors. Learn more at