Tuning Module
[Overview of the Implementation]


Detailed Description

This module implements a run-time manager for applying automatic tuning heuristics.

The following is a high-level overview of this manager and the concept of a heuristic.

The heuristic manager maintains a list of heuristics that may be applied to a matrix at run-time.

A heuristic implements a "strategy" for optimizing a given input matrix, and is generally specific to a particular kernel and/or matrix type. Each heuristic must implement the public interface in heurexport.h . Among other things, these routines allow the OSKI library to ask each heuristic whether it applies to a given input matrix, or to ask approximately how much the heuristic costs (in units of naive SpMV operations).

When the user calls oski_TuneMat, the library determines how much time may be used for tuning, and then uses the procedure described in src/tune.c to apply the various heuristics, one-by-one, until either the time remaining for tuning elapses or a heuristic can be applied.

New heuristics may be registered with the library at run-time via a call to oski_RegisterHeur.


Files

file  estfill.h
 BCSR fill ratio estimator.
file  mregblock.h
 Implementation of the register blocking heuristic based on modified block compressed sparse row (MBCSR) format.
file  regblock.h
 Implementation of the basic register blocking heuristic for sparse matrix-vector multiply (as described in the Sparsity SC'02 and IJHPCA'04 papers), based on block compressed sparse row format.
file  symmrb.h
 Implementation of the register blocking heuristic for symmetric matrices, as described in the paper by Lee, et al., in ICPP'04, but extended to the Symmetric or Hermitian cases and based on MBCSR format.
file  heur.h
 Heuristic management module.
file  heur_internal.h
 Heuristic management module.
file  heur_typedep.h
 Matrix type-dependent part of the heuristic module.
file  heurexport.h
 Matrix type-dependent part of the heuristic management module.
file  hint.h
 Set-hint routines.
file  tune.h
 Tuning interface.
file  estfill.c
 BCSR fill ratio estimator.
file  hint.c
 Implementation of hint tracking for the tuning module.
file  structhint.c
 Implementation of structural tuning hint data structure.
file  tune.c
 Tuning module implementation.
file  xforms.c
 Save/restore tuning transformations.

Modules

 Offline Benchmarking Utilities
 These executable programs benchmark various aspects of the library for run-time tuning.
 Permutations
 These routines allow the user to access underlying matrix row and column permutations, as well as a permuted form of the matrix, in the special case that tuning produces a permuted representation.


Generated on Wed Sep 19 16:41:23 2007 for BeBOP Optimized Sparse Kernel Interface Library by  doxygen 1.4.6