SpikeGPU  1.0.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
spike Namespace Reference

spike is the top-level namespace which contains all Spike functions and types. More...

Namespaces

 device
 spike::device contains all CUDA kernels.
 

Classes

struct  IsEqualTo
 
struct  Components
 
class  system_error
 
class  Dijkstra
 
class  Node
 
class  EdgeT
 
class  Graph
 
class  Monitor
 
class  Precond
 Spike preconditioner. More...
 
struct  Multiply
 
struct  SmallerThan
 
struct  Options
 Input solver options. More...
 
struct  Stats
 Output solver statistics. More...
 
class  Solver
 Main SPIKE::GPU solver. More...
 
class  SpmvCusp
 Default SPMV functor class. More...
 
class  strided_range
 
class  Timer
 Base timer class. More...
 
class  GPUTimer
 GPU timer. More...
 
class  CPUTimer
 CPU timer. More...
 

Typedefs

typedef cusp::array1d< int,
cusp::host_memory > 
IntVectorH
 

Enumerations

enum  KrylovSolverType { BiCGStab, BiCGStab2 }
 
enum  FactorizationMethod { LU_UL, LU_only }
 
enum  PreconditionerType { Spike, Block }
 

Functions

template<typename SolverVector , typename PrecVector , typename IntVector >
void precondSolveWrapper (SolverVector &rhs, SolverVector &sol, std::vector< Precond< PrecVector > * > &precond_pointers, IntVector &compIndices, IntVector &comp_perms, std::vector< IntVector > &comp_reorderings)
 
template<typename SpmvOperator , typename SolverVector , typename PrecVector , int L>
void bicgstabl (SpmvOperator &spmv, const SolverVector &b, SolverVector &x, Monitor< SolverVector > &monitor, std::vector< Precond< PrecVector > * > &precond_pointers, IntVectorH &compIndices, IntVectorH &comp_perms, std::vector< IntVectorH > &comp_reorderings)
 Preconditioned BiCGStab(L) Krylov method. More...
 
template<typename SpmvOperator , typename SolverVector , typename PrecVector >
void bicgstab2 (SpmvOperator &spmv, const SolverVector &b, SolverVector &x, Monitor< SolverVector > &monitor, std::vector< Precond< PrecVector > * > &precond_pointers, IntVectorH &compIndices, IntVectorH &comp_perms, std::vector< IntVectorH > &comp_reorderings)
 Specializations of the generic spike::bicgstabl function for L=2. More...
 
template<typename SpmvOperator , typename SolverVector , typename PrecVector >
void bicgstab4 (SpmvOperator &spmv, const SolverVector &b, SolverVector &x, Monitor< SolverVector > &monitor, std::vector< Precond< PrecVector > * > &precond_pointers, IntVectorH &compIndices, IntVectorH &comp_perms, std::vector< IntVectorH > &comp_reorderings)
 Specializations of the generic spike::bicgstabl function for L=4. More...
 
void kernelConfigAdjust (int &numThreads, int &numBlockX, const int numThreadsMax)
 
void kernelConfigAdjust (int &numThreads, int &numBlockX, int &numBlockY, const int numThreadsMax, const int numBlockXMax)
 

Variables

const unsigned int BLOCK_SIZE = 512
 
const unsigned int MAX_GRID_DIMENSION = 32768
 
const unsigned int CRITICAL_THRESHOLD = 70
 

Detailed Description

spike is the top-level namespace which contains all Spike functions and types.

Typedef Documentation

typedef cusp::array1d<int, cusp::host_memory> spike::IntVectorH

Enumeration Type Documentation

Enumerator
LU_UL 
LU_only 
Enumerator
BiCGStab 
BiCGStab2 
Enumerator
Spike 
Block 

Function Documentation

template<typename SpmvOperator , typename SolverVector , typename PrecVector >
void spike::bicgstab2 ( SpmvOperator &  spmv,
const SolverVector &  b,
SolverVector &  x,
Monitor< SolverVector > &  monitor,
std::vector< Precond< PrecVector > * > &  precond_pointers,
IntVectorH &  compIndices,
IntVectorH &  comp_perms,
std::vector< IntVectorH > &  comp_reorderings 
)

Specializations of the generic spike::bicgstabl function for L=2.

template<typename SpmvOperator , typename SolverVector , typename PrecVector >
void spike::bicgstab4 ( SpmvOperator &  spmv,
const SolverVector &  b,
SolverVector &  x,
Monitor< SolverVector > &  monitor,
std::vector< Precond< PrecVector > * > &  precond_pointers,
IntVectorH &  compIndices,
IntVectorH &  comp_perms,
std::vector< IntVectorH > &  comp_reorderings 
)

Specializations of the generic spike::bicgstabl function for L=4.

template<typename SpmvOperator , typename SolverVector , typename PrecVector , int L>
void spike::bicgstabl ( SpmvOperator &  spmv,
const SolverVector &  b,
SolverVector &  x,
Monitor< SolverVector > &  monitor,
std::vector< Precond< PrecVector > * > &  precond_pointers,
IntVectorH &  compIndices,
IntVectorH &  comp_perms,
std::vector< IntVectorH > &  comp_reorderings 
)

Preconditioned BiCGStab(L) Krylov method.

Template Parameters
SpmvOperatoris a functor class for sparse matrix-vector product.
SolverVectoris the vector type for the linear system solution.
PrecVectoris the vector type used in the preconditioner.
Lis the degree of the BiCGStab(L) method.
void spike::kernelConfigAdjust ( int &  numThreads,
int &  numBlockX,
const int  numThreadsMax 
)
inline
void spike::kernelConfigAdjust ( int &  numThreads,
int &  numBlockX,
int &  numBlockY,
const int  numThreadsMax,
const int  numBlockXMax 
)
inline
template<typename SolverVector , typename PrecVector , typename IntVector >
void spike::precondSolveWrapper ( SolverVector &  rhs,
SolverVector &  sol,
std::vector< Precond< PrecVector > * > &  precond_pointers,
IntVector &  compIndices,
IntVector &  comp_perms,
std::vector< IntVector > &  comp_reorderings 
)

Variable Documentation

const unsigned int spike::BLOCK_SIZE = 512
const unsigned int spike::CRITICAL_THRESHOLD = 70
const unsigned int spike::MAX_GRID_DIMENSION = 32768