BeBOP Optimized Sparse Kernel Interface Library  1.0.1h
Data Structures | Files | Defines | Functions
Set explicit workload hints.
Public Interface

Data Structures

struct  oski_structhint_t
 Structural hint record. More...

Files

file  structhint.h
 

Structural hint implementation.


Defines

#define ARGS_NONE   ((int)0)
 Use when not providing arguments with a structural hint (see Set explicit workload hints.).

Functions

int oski_SetHint (oski_matrix_t A_tunable, oski_tunehint_t hint,...)
 Set a matrix structural hint for subsequent tuning.
int oski_SetHintMatMult (oski_matrix_t A_tunable, oski_matop_t opA, oski_value_t alpha, const oski_vecview_t x_view, oski_value_t beta, const oski_vecview_t y_view, int num_calls)
 Workload hint for the kernel operation oski_MatMult.
int oski_SetHintMatTrisolve (oski_matrix_t T_tunable, oski_matop_t opT, oski_value_t alpha, const oski_vecview_t x_view, int num_calls)
 Workload hint for the kernel operation oski_MatTrisolve.
int oski_SetHintMatTransMatMult (oski_matrix_t A_tunable, oski_ataop_t opA, oski_value_t alpha, const oski_vecview_t x_view, oski_value_t beta, const oski_vecview_t y_view, const oski_vecview_t t_view, int num_calls)
 Workload hint for the kernel operation oski_MatTransMatMult.
int oski_SetHintMatMultAndMatTransMult (oski_matrix_t A_tunable, oski_value_t alpha, const oski_vecview_t x_view, oski_value_t beta, const oski_vecview_t y_view, oski_matop_t opA, oski_value_t omega, const oski_vecview_t w_view, oski_value_t zeta, const oski_vecview_t z_view, int num_calls)
 Workload hint for the kernel operation oski_MatMultAndMatTransMult.
int oski_SetHintMatPowMult (oski_matrix_t A_tunable, oski_matop_t opA, int power, oski_value_t alpha, const oski_vecview_t x_view, oski_value_t beta, const oski_vecview_t y_view, const oski_vecview_t T_view, int num_calls)
 Workload hint for the kernel operation oski_MatPowMult.

Function Documentation

int oski_SetHint ( oski_matrix_t  A_tunable,
oski_tunehint_t  hint,
  ... 
)

Set a matrix structural hint for subsequent tuning.

Set a matrix structural hint for subsequent tuning.

If an error occurs (e.g., bad arguments), then the hint record is unchanged.

Precondition:
A_tunable's structural hint field must have been initialized by a call to oski_InitStructHint().
Todo:
Restructure so that va_end() is always called.

Attempt to allocate space for this list. If it fails, we still record that there is a mix of block sizes present, but do not record the list. This behavior is OK because the implementation is free to regard/disregard hints as desired.

Attempt to allocate space for this list. If it fails, we still record that there is a mix of block sizes present, but do not record the list. This behavior is OK because the implementation is free to regard/disregard hints as desired.

References ARGS_NONE, oski_structhint_t::block_size, oski_structhint_t::c_sizes, oski_structhint_t::d_lens, oski_structhint_t::diag_lens, ERR_BAD_HINT_ARG, ERR_BAD_MAT, HINT_ALIGNED_BLOCKS, HINT_CORREL_PATTERN, HINT_DIAGS, HINT_MULTIPLE_BLOCKSIZES, HINT_NO_BLOCKS, HINT_NO_DIAGS, HINT_NONSYMM_PATTERN, HINT_RANDOM_PATTERN, HINT_SINGLE_BLOCKSIZE, HINT_SYMM_PATTERN, HINT_UNALIGNED_BLOCKS, INVALID_MAT, oski_structhint_t::is_random, oski_structhint_t::is_symm, oski_structhint_t::is_unaligned, oski_structhint_t::num_lens, oski_structhint_t::num_sizes, oski_AllocStructHintBlocksizes(), oski_AllocStructHintDiaglens(), OSKI_CHECK_TUNEHINT, OSKI_ERR_BAD_HINT, OSKI_ERR_BAD_HINT_ARG, OSKI_ERR_BAD_MAT, oski_ResetStructHintBlocksizes(), oski_ResetStructHintDiaglens(), oski_structhint_t::r_sizes, and oski_matstruct_t::structhints.

int oski_SetHintMatMult ( oski_matrix_t  A_tunable,
oski_matop_t  opA,
oski_value_t  alpha,
const oski_vecview_t  x_view,
oski_value_t  beta,
const oski_vecview_t  y_view,
int  num_calls 
)

Workload hint for the kernel operation oski_MatMult.

Note:
Returns with no action when num_calls <= 0.

References MACRO_TO_STRING, OSKI_KERNEL_MatMult, oski_RecordCalls(), TIME_NOT_AVAIL, and oski_matstruct_t::workhints.

int oski_SetHintMatTransMatMult ( oski_matrix_t  A_tunable,
oski_ataop_t  opA,
oski_value_t  alpha,
const oski_vecview_t  x_view,
oski_value_t  beta,
const oski_vecview_t  y_view,
const oski_vecview_t  t_view,
int  num_calls 
)

Workload hint for the kernel operation oski_MatTransMatMult.

Note:
Returns with no action when num_calls <= 0.

References MACRO_TO_STRING, OSKI_KERNEL_MatTransMatMult, oski_RecordCalls(), TIME_NOT_AVAIL, and oski_matstruct_t::workhints.