SkePU  1.2
 All Classes Namespaces Files Functions Variables Enumerations Friends Macros Groups Pages
Classes | Functions
Tuning

Classes

struct  skepu::ExtraData
 Any extra information that User want to pass to the function wrapper for implementations can be specified here.... More...
 
struct  skepu::Point
 
struct  skepu::Node
 
class  skepu::Trainer
 end Node class... More...
 
struct  skepu::Tuner< StructType, type, StructType2 >
 Tuner class: generic definition.... Multiple class specializations are defined for this class, one for each skeleton type. It allows to avoid possible compiler errors considering differences in function arguments for different skeleton types. More...
 
struct  skepu::Tuner< StructType, MAPREDUCE, StructType2 >
 Tuner class specilization for MapReduce skeleton. More...
 
struct  skepu::Tuner< StructType, MAP, StructType >
 Tuner class specilization for Map skeleton. More...
 
struct  skepu::Tuner< StructType, REDUCE, StructType >
 Tuner class specilization for Reduce skeleton. More...
 
struct  skepu::Tuner< StructType, MAPARRAY, StructType >
 Tuner class specilization for MapArray skeleton. More...
 
struct  skepu::Tuner< StructType, MAPOVERLAP, StructType >
 Tuner class specilization for MapOverlap skeleton. More...
 
class  skepu::ExecPlan
 A class that describes an execution plan. More...
 
class  skepu::TuneData< Tx, Ty >
 A class that can be used to collect tuning data. More...
 

Functions

std::ostream & skepu::operator<< (std::ostream &os, ExecPlanNew< 1 > &plan)
 
std::ostream & skepu::operator<< (std::ostream &os, ExecPlanNew< 2 > &plan)
 
template<typename StructType , typename StructType2 >
void skepu::cpu_tune_wrapper_map (void *arg)
 Do training execution for a single performance context for Map skeleton and sequential CPU implementation. More...
 
template<typename StructType , typename StructType2 >
void skepu::cpu_tune_wrapper_reduce (void *arg)
 Do training execution for a single performance context for Reduce skeleton and sequential CPU implementation. More...
 
template<typename StructType , typename StructType2 >
void skepu::cpu_tune_wrapper_mapoverlap (void *arg)
 Do training execution for a single performance context for MapOverlap skeleton and sequential CPU implementation. More...
 
template<typename StructType , typename StructType2 >
void skepu::cpu_tune_wrapper_maparray (void *arg)
 Do training execution for a single performance context for MapArray skeleton and sequential CPU implementation. More...
 
template<typename StructType , typename StructType2 >
void skepu::cpu_tune_wrapper_mapreduce (void *arg)
 Do training execution for a single performance context for MapReduce skeleton and sequential CPU implementation. More...
 
template<typename StructType , typename StructType2 >
void skepu::omp_tune_wrapper_map (void *arg)
 the following section contains function that can train OpenMP implementations. Only enabled when OpenMP is enabled in SkePU library More...
 
template<typename StructType , typename StructType2 >
void skepu::omp_tune_wrapper_reduce (void *arg)
 Do training execution for a single performance context for Reduce skeleton and parallel OpenMP implementation. More...
 
template<typename StructType , typename StructType2 >
void skepu::omp_tune_wrapper_mapoverlap (void *arg)
 Do training execution for a single performance context for MapOverlap skeleton and parallel OpenMP implementation. More...
 
template<typename StructType , typename StructType2 >
void skepu::omp_tune_wrapper_maparray (void *arg)
 Do training execution for a single performance context for MapArray skeleton and parallel OpenMP implementation. More...
 
template<typename StructType , typename StructType2 >
void skepu::omp_tune_wrapper_mapreduce (void *arg)
 Do training execution for a single performance context for MapReduce skeleton and parallel OpenMP implementation. More...
 
template<typename StructType , typename StructType2 >
void skepu::cuda_tune_wrapper_map (void *arg)
 the following functions train for CUDA implementations for different skeletons... More...
 
template<typename StructType , typename StructType2 >
void skepu::cuda_tune_wrapper_reduce (void *arg)
 Do training execution for a single performance context for Reduce skeleton and CUDA implementation. More...
 
template<typename StructType , typename StructType2 >
void skepu::cuda_tune_wrapper_mapoverlap (void *arg)
 Do training execution for a single performance context for MapOverlap skeleton and CUDA implementation. More...
 
template<typename StructType , typename StructType2 >
void skepu::cuda_tune_wrapper_maparray (void *arg)
 Do training execution for a single performance context for MapArray skeleton and CUDA implementation. More...
 
template<typename StructType , typename StructType2 >
void skepu::cuda_tune_wrapper_mapreduce (void *arg)
 Do training execution for a single performance context for MapReduce skeleton and CUDA implementation. More...
 
void skepu::createDefaultConfiguration (BackEndParams &bp)
 A helper function that creates the default configuration. More...
 
bool skepu::loadExecPlan (std::string id, ExecPlan &plan)
 Loads an execution plan for a file into the structure passes as argument. More...
 
bool skepu::storeExecPlan (std::string id, const ExecPlan &plan)
 Stores an execution plan for the structure passed as argument to a file. More...
 
bool skepu::loadExecPlanArray (std::string id, ExecPlan *planArray)
 Loads execution plans for a file into the structure passes as argument. More...
 
bool skepu::storeExecPlanArray (std::string id, const ExecPlan *planArray, unsigned int nImpls)
 Stores execution plans for the structure passed as argument to a file. More...
 

Detailed Description

Functionality which helps with (auto) tuning of the library.

Function Documentation

template<typename StructType , typename StructType2 >
void skepu::cpu_tune_wrapper_map ( void *  arg)

Do training execution for a single performance context for Map skeleton and sequential CPU implementation.

Parameters
arga structure that includes information about performance context to train.

to allow user control e.g. setting constant value etc..

References skepu::Map< MapFunc >::CPU(), skepu::Environment< T >::getInstance(), and skepu::Vector< T >::resize().

Here is the call graph for this function:

template<typename StructType , typename StructType2 >
void skepu::cpu_tune_wrapper_maparray ( void *  arg)

Do training execution for a single performance context for MapArray skeleton and sequential CPU implementation.

Parameters
arga structure that includes information about performance context to train.

TODO: fix it in future

to allow user control e.g. setting constant value etc..

References skepu::MapArray< MapArrayFunc >::CPU(), skepu::Environment< T >::getInstance(), and skepu::Vector< T >::resize().

Here is the call graph for this function:

template<typename StructType , typename StructType2 >
void skepu::cpu_tune_wrapper_mapoverlap ( void *  arg)

Do training execution for a single performance context for MapOverlap skeleton and sequential CPU implementation.

Parameters
arga structure that includes information about performance context to train.

to allow user control e.g. setting constant value etc..

References skepu::MapOverlap< MapOverlapFunc >::CPU(), skepu::Environment< T >::getInstance(), and skepu::Vector< T >::resize().

Here is the call graph for this function:

template<typename StructType , typename StructType2 >
void skepu::cpu_tune_wrapper_mapreduce ( void *  arg)

Do training execution for a single performance context for MapReduce skeleton and sequential CPU implementation.

Parameters
arga structure that includes information about performance context to train.

to allow user control e.g. setting constant value etc..

References skepu::MapReduce< MapFunc, ReduceFunc >::CPU(), skepu::Environment< T >::getInstance(), and skepu::Vector< T >::resize().

Here is the call graph for this function:

template<typename StructType , typename StructType2 >
void skepu::cpu_tune_wrapper_reduce ( void *  arg)

Do training execution for a single performance context for Reduce skeleton and sequential CPU implementation.

Parameters
arga structure that includes information about performance context to train.

to allow user control e.g. setting constant value etc..

References skepu::Reduce< ReduceFuncRowWise, ReduceFuncColWise >::CPU(), skepu::Environment< T >::getInstance(), and skepu::Vector< T >::resize().

Here is the call graph for this function:

void skepu::createDefaultConfiguration ( BackEndParams &  bp)
template<typename StructType , typename StructType2 >
void skepu::cuda_tune_wrapper_map ( void *  arg)

the following functions train for CUDA implementations for different skeletons...

Do training execution for a single performance context for Map skeleton and CUDA implementation

Parameters
arga structure that includes information about performance context to train.

measuring communication cost...

transfer all operands to the memory...

to allow user control e.g. setting constant value etc..

References skepu::Map< MapFunc >::CU(), skepu::Environment< T >::getInstance(), skepu::Vector< T >::resize(), and skepu::Vector< T >::updateDevice_CU().

Here is the call graph for this function:

template<typename StructType , typename StructType2 >
void skepu::cuda_tune_wrapper_maparray ( void *  arg)

Do training execution for a single performance context for MapArray skeleton and CUDA implementation.

Parameters
arga structure that includes information about performance context to train.

measuring communication cost...

transfer all operand to the memory...

to allow user control e.g. setting constant value etc..

References skepu::MapArray< MapArrayFunc >::CU(), skepu::Environment< T >::getInstance(), skepu::Vector< T >::resize(), and skepu::Vector< T >::updateDevice_CU().

Here is the call graph for this function:

template<typename StructType , typename StructType2 >
void skepu::cuda_tune_wrapper_mapoverlap ( void *  arg)

Do training execution for a single performance context for MapOverlap skeleton and CUDA implementation.

Parameters
arga structure that includes information about performance context to train.

measuring communication cost...

transfer all operand to the memory...

to allow user control e.g. setting constant value etc..

References skepu::MapOverlap< MapOverlapFunc >::CU(), skepu::Environment< T >::getInstance(), skepu::Vector< T >::resize(), and skepu::Vector< T >::updateDevice_CU().

Here is the call graph for this function:

template<typename StructType , typename StructType2 >
void skepu::cuda_tune_wrapper_mapreduce ( void *  arg)

Do training execution for a single performance context for MapReduce skeleton and CUDA implementation.

Parameters
arga structure that includes information about performance context to train.

measuring communication cost...

transfer all operand to the memory...

to allow user control e.g. setting constant value etc..

References skepu::MapReduce< MapFunc, ReduceFunc >::CU(), skepu::Environment< T >::getInstance(), skepu::Vector< T >::resize(), and skepu::Vector< T >::updateDevice_CU().

Here is the call graph for this function:

template<typename StructType , typename StructType2 >
void skepu::cuda_tune_wrapper_reduce ( void *  arg)

Do training execution for a single performance context for Reduce skeleton and CUDA implementation.

Parameters
arga structure that includes information about performance context to train.

measuring communication cost...

transfer all operand to the memory...

to allow user control e.g. setting constant value etc..

References skepu::Reduce< ReduceFuncRowWise, ReduceFuncColWise >::CU(), skepu::Environment< T >::getInstance(), skepu::Vector< T >::resize(), and skepu::Vector< T >::updateDevice_CU().

Here is the call graph for this function:

bool skepu::loadExecPlan ( std::string  id,
ExecPlan &  plan 
)

Loads an execution plan for a file into the structure passes as argument.

This functionality only for non-windows platform

Parameters
idThe identifier for skeletonlet being tuned (skeleton type + user function). It defines the filename.
planThe execution plan where plan is loaded.

References skepu::ExecPlan::calibrated, and skepu::trimSpaces().

Referenced by skepu::Tuner< StructType, MAPREDUCE, StructType2 >::operator()(), skepu::Tuner< StructType, MAP, StructType >::operator()(), skepu::Tuner< StructType, REDUCE, StructType >::operator()(), skepu::Tuner< StructType, MAPARRAY, StructType >::operator()(), and skepu::Tuner< StructType, MAPOVERLAP, StructType >::operator()().

Here is the call graph for this function:

bool skepu::loadExecPlanArray ( std::string  id,
ExecPlan *  planArray 
)

Loads execution plans for a file into the structure passes as argument.

Parameters
idThe identifier for skeletonlet being tuned (skeleton type + user function). It defines the filename.
planArrayThe execution plan array where plans are loaded.

References skepu::ExecPlan::calibrated, and skepu::trimSpaces().

Referenced by skepu::Tuner< StructType, MAPREDUCE, StructType2 >::operator()(), skepu::Tuner< StructType, MAP, StructType >::operator()(), skepu::Tuner< StructType, REDUCE, StructType >::operator()(), skepu::Tuner< StructType, MAPARRAY, StructType >::operator()(), and skepu::Tuner< StructType, MAPOVERLAP, StructType >::operator()().

Here is the call graph for this function:

template<typename StructType , typename StructType2 >
void skepu::omp_tune_wrapper_map ( void *  arg)

the following section contains function that can train OpenMP implementations. Only enabled when OpenMP is enabled in SkePU library

Do training execution for a single performance context for Map skeleton and parallel OpenMP implementation

Parameters
arga structure that includes information about performance context to train.

to allow user control e.g. setting constant value etc..

References skepu::Environment< T >::getInstance(), skepu::Map< MapFunc >::OMP(), and skepu::Vector< T >::resize().

Here is the call graph for this function:

template<typename StructType , typename StructType2 >
void skepu::omp_tune_wrapper_maparray ( void *  arg)

Do training execution for a single performance context for MapArray skeleton and parallel OpenMP implementation.

Parameters
arga structure that includes information about performance context to train.

TODO: fix it in future

to allow user control e.g. setting constant value etc..

References skepu::Environment< T >::getInstance(), skepu::MapArray< MapArrayFunc >::OMP(), and skepu::Vector< T >::resize().

Here is the call graph for this function:

template<typename StructType , typename StructType2 >
void skepu::omp_tune_wrapper_mapoverlap ( void *  arg)

Do training execution for a single performance context for MapOverlap skeleton and parallel OpenMP implementation.

Parameters
arga structure that includes information about performance context to train.

to allow user control e.g. setting constant value etc..

References skepu::Environment< T >::getInstance(), skepu::MapOverlap< MapOverlapFunc >::OMP(), and skepu::Vector< T >::resize().

Here is the call graph for this function:

template<typename StructType , typename StructType2 >
void skepu::omp_tune_wrapper_mapreduce ( void *  arg)

Do training execution for a single performance context for MapReduce skeleton and parallel OpenMP implementation.

Parameters
arga structure that includes information about performance context to train.

to allow user control e.g. setting constant value etc..

References skepu::Environment< T >::getInstance(), skepu::MapReduce< MapFunc, ReduceFunc >::OMP(), and skepu::Vector< T >::resize().

Here is the call graph for this function:

template<typename StructType , typename StructType2 >
void skepu::omp_tune_wrapper_reduce ( void *  arg)

Do training execution for a single performance context for Reduce skeleton and parallel OpenMP implementation.

Parameters
arga structure that includes information about performance context to train.

to allow user control e.g. setting constant value etc..

References skepu::Environment< T >::getInstance(), skepu::Reduce< ReduceFuncRowWise, ReduceFuncColWise >::OMP(), and skepu::Vector< T >::resize().

Here is the call graph for this function:

std::ostream& skepu::operator<< ( std::ostream &  os,
ExecPlanNew< 1 > &  plan 
)

The helper method that can print the ExecPlanNew<1> objects

std::ostream& skepu::operator<< ( std::ostream &  os,
ExecPlanNew< 2 > &  plan 
)

The helper method that can print the ExecPlanNew<2> objects

bool skepu::storeExecPlan ( std::string  id,
const ExecPlan &  plan 
)

Stores an execution plan for the structure passed as argument to a file.

Parameters
idThe identifier for skeletonlet being tuned (skeleton type + user function). It defines the filename.
planArrayThe execution plan from where plan is stored.

Referenced by skepu::Tuner< StructType, MAPREDUCE, StructType2 >::operator()(), skepu::Tuner< StructType, MAP, StructType >::operator()(), skepu::Tuner< StructType, REDUCE, StructType >::operator()(), skepu::Tuner< StructType, MAPARRAY, StructType >::operator()(), and skepu::Tuner< StructType, MAPOVERLAP, StructType >::operator()().

bool skepu::storeExecPlanArray ( std::string  id,
const ExecPlan *  planArray,
unsigned int  nImpls 
)

Stores execution plans for the structure passed as argument to a file.

Parameters
idThe identifier for skeletonlet being tuned (skeleton type + user function). It defines the filename.
planArrayThe execution plan array from where plans are stored.

Referenced by skepu::Tuner< StructType, MAPREDUCE, StructType2 >::operator()(), skepu::Tuner< StructType, MAP, StructType >::operator()(), skepu::Tuner< StructType, REDUCE, StructType >::operator()(), skepu::Tuner< StructType, MAPARRAY, StructType >::operator()(), and skepu::Tuner< StructType, MAPOVERLAP, StructType >::operator()().