Namespaces | |
namespace | BatchTypes |
namespace | ParallelFlags |
namespace | ReduceTypes |
Classes | |
class | BatchStrategy |
class | BatchStrategyFactory |
class | ColoringBatchStrategy |
class | CompactReduceStrategy |
class | CudaPGSSolver |
class | GreedyBatchStrategy |
class | OpenCLPGSSolver |
class | OpenMPPGSSolver |
class | ParallelPGSSolver |
The base solver class. More... | |
class | ReduceStrategy |
The base strategy class. More... | |
class | ReduceStrategyFactory |
class | SequentialReduceStrategy |
class | StridedReduceStrategy |
Typedefs | |
typedef boost::unordered_map < int, int > | BatchMap |
typedef std::multimap< int, int, std::greater< int > > | BatchMultimap |
typedef BatchMultimap::iterator | BatchMultimapIterator |
typedef BatchTypes::BatchType | BatchType |
typedef ParallelFlags::ParallelFlag | ParallelFlag |
typedef ReduceTypes::ReduceType | ReduceType |
Functions | |
std::string | extractDirectory (const std::string &path) |
void | oclInitializeKernels (cl_context cxGPUContext, cl_command_queue cqParamCommandQue) |
void | oclPGSReduce (cl_mem fc0_reduction, cl_mem fc1_reduction, ReduceStrategy *reduceStrategy) |
void | oclPGSReduce (cl_mem fc0, cl_mem fc1, cl_mem fc0_reduction, cl_mem fc1_reduction, ReduceStrategy *reduceStrategy) |
void | oclPGSSolve (int offset, int numConstraints, bool bUseAtomics) |
void | oclPGSSolveInit (cl_mem bodyIDs, cl_mem fIDs, cl_mem j, cl_mem ij, cl_mem fc0, cl_mem fc1, cl_mem fc0_reduction, cl_mem fc1_reduction, cl_mem lambda, cl_mem adcfm, cl_mem rhs, cl_mem hilo, int bStride, int cStride, ReduceStrategy *reduceStrategy) |
void | oclShutdownKernels (void) |
void | oclZeroVector (cl_mem buffer, int bufferSize, bool bScalarType) |
template<typename T > | |
void | ompPGSReduce (typename vec4< T >::Type *fc0, typename vec4< T >::Type *fc1, typename vec4< T >::Type *fc0_reduction, typename vec4< T >::Type *fc1_reduction, ReduceStrategy *reduceStrategy) |
template void | ompPGSReduce< dReal > (dReal4 *fc0, dReal4 *fc1, dReal4 *fc0_reduction, dReal4 *fc1_reduction, ReduceStrategy *reduceStrategy) |
template<typename T > | |
void | ompPGSSolve (int4 *bodyIDs, int *fIDs, typename vec4< T >::Type *j, typename vec4< T >::Type *ij, typename vec4< T >::Type *fc0, typename vec4< T >::Type *fc1, typename vec4< T >::Type *fc0_reduction, typename vec4< T >::Type *fc1_reduction, T *lambda, T *adcfm, T *rhs, T *hilo, int offset, int numConstraints, bool bUseAtomics, int bStride, int cStride) |
template void | ompPGSSolve< dReal > (int4 *bodyIDs, int *fIDs, dReal4 *j, dReal4 *ij, dReal4 *fc0, dReal4 *fc1, dReal4 *fc0_reduction, dReal4 *fc1_reduction, dReal *lambda, dReal *adcfm, dReal *rhs, dReal *hilo, int batch, int numConstraints, bool bUseAtomics, int bStride, int cStride) |
template<typename T > | |
void | ompZeroVector (T *buffer, int bufferSize) |
template void | ompZeroVector< dReal4 > (dReal4 *buffer, int bufferSize) |
static size_t | uSnap (size_t a, size_t b) |
Variables | |
static cl_kernel | ckReduce |
static cl_kernel | ckSolve |
static cl_kernel | ckZero |
static cl_kernel | ckZero4 |
static cl_program | cpSolver |
static cl_command_queue | cqDefaultCommandQueue |
static const int | DEFAULT_CL_FLAGS |
const int | DEFAULT_FLAGS |
Default configuration flags for the base solver. | |
const int | DEFAULT_OPENMP_FLAGS |
static const std::string | FILENAME = __FILE__ |
static const std::string | INC_DIR = "/" |
static const std::string | SRC_DIR = extractDirectory( FILENAME ) |
typedef boost::unordered_map<int, int> parallel_ode::BatchMap |
Definition at line 13 of file parallel_batch.cpp.
typedef std::multimap<int, int, std::greater<int> > parallel_ode::BatchMultimap |
Definition at line 14 of file parallel_batch.cpp.
typedef BatchMultimap::iterator parallel_ode::BatchMultimapIterator |
Definition at line 15 of file parallel_batch.cpp.
Definition at line 17 of file parallel_batch.h.
Definition at line 34 of file parallel_solver.h.
Definition at line 18 of file parallel_reduce.h.
std::string parallel_ode::extractDirectory | ( | const std::string & | path | ) |
Extracts the directory from a given ptah
path | The global path of a file |
Definition at line 40 of file opencl_kernels.cpp.
void parallel_ode::oclInitializeKernels | ( | cl_context | cxGPUContext, |
cl_command_queue | cqParamCommandQue | ||
) |
Definition at line 49 of file opencl_kernels.cpp.
void parallel_ode::oclPGSReduce | ( | cl_mem | fc0_reduction, |
cl_mem | fc1_reduction, | ||
ReduceStrategy * | reduceStrategy | ||
) |
Definition at line 104 of file opencl_kernels.cpp.
void parallel_ode::oclPGSReduce | ( | cl_mem | fc0, |
cl_mem | fc1, | ||
cl_mem | fc0_reduction, | ||
cl_mem | fc1_reduction, | ||
ReduceStrategy * | reduceStrategy | ||
) |
Definition at line 138 of file opencl_kernels.cpp.
void parallel_ode::oclPGSSolve | ( | int | offset, |
int | numConstraints, | ||
bool | bUseAtomics | ||
) |
Definition at line 185 of file opencl_kernels.cpp.
void parallel_ode::oclPGSSolveInit | ( | cl_mem | bodyIDs, |
cl_mem | fIDs, | ||
cl_mem | j, | ||
cl_mem | ij, | ||
cl_mem | fc0, | ||
cl_mem | fc1, | ||
cl_mem | fc0_reduction, | ||
cl_mem | fc1_reduction, | ||
cl_mem | lambda, | ||
cl_mem | adcfm, | ||
cl_mem | rhs, | ||
cl_mem | hilo, | ||
int | bStride, | ||
int | cStride, | ||
ReduceStrategy * | reduceStrategy | ||
) |
Definition at line 200 of file opencl_kernels.cpp.
void parallel_ode::oclShutdownKernels | ( | void | ) |
Definition at line 94 of file opencl_kernels.cpp.
void parallel_ode::oclZeroVector | ( | cl_mem | buffer, |
int | bufferSize, | ||
bool | bScalarType | ||
) |
Definition at line 162 of file opencl_kernels.cpp.
void parallel_ode::ompPGSReduce | ( | typename vec4< T >::Type * | fc0, |
typename vec4< T >::Type * | fc1, | ||
typename vec4< T >::Type * | fc0_reduction, | ||
typename vec4< T >::Type * | fc1_reduction, | ||
ReduceStrategy * | reduceStrategy | ||
) |
Definition at line 27 of file openmp_kernels.cpp.
template void parallel_ode::ompPGSReduce< dReal > | ( | dReal4 * | fc0, |
dReal4 * | fc1, | ||
dReal4 * | fc0_reduction, | ||
dReal4 * | fc1_reduction, | ||
ReduceStrategy * | reduceStrategy | ||
) |
void parallel_ode::ompPGSSolve | ( | int4 * | bodyIDs, |
int * | fIDs, | ||
typename vec4< T >::Type * | j, | ||
typename vec4< T >::Type * | ij, | ||
typename vec4< T >::Type * | fc0, | ||
typename vec4< T >::Type * | fc1, | ||
typename vec4< T >::Type * | fc0_reduction, | ||
typename vec4< T >::Type * | fc1_reduction, | ||
T * | lambda, | ||
T * | adcfm, | ||
T * | rhs, | ||
T * | hilo, | ||
int | offset, | ||
int | numConstraints, | ||
bool | bUseAtomics, | ||
int | bStride, | ||
int | cStride | ||
) |
Definition at line 63 of file openmp_kernels.cpp.
template void parallel_ode::ompPGSSolve< dReal > | ( | int4 * | bodyIDs, |
int * | fIDs, | ||
dReal4 * | j, | ||
dReal4 * | ij, | ||
dReal4 * | fc0, | ||
dReal4 * | fc1, | ||
dReal4 * | fc0_reduction, | ||
dReal4 * | fc1_reduction, | ||
dReal * | lambda, | ||
dReal * | adcfm, | ||
dReal * | rhs, | ||
dReal * | hilo, | ||
int | batch, | ||
int | numConstraints, | ||
bool | bUseAtomics, | ||
int | bStride, | ||
int | cStride | ||
) |
void parallel_ode::ompZeroVector | ( | T * | buffer, |
int | bufferSize | ||
) |
Definition at line 17 of file openmp_kernels.cpp.
template void parallel_ode::ompZeroVector< dReal4 > | ( | dReal4 * | buffer, |
int | bufferSize | ||
) |
static size_t parallel_ode::uSnap | ( | size_t | a, |
size_t | b | ||
) | [static] |
Aligns a to the next largest multiple of b
a | the parameter to align |
b | the alignment |
Definition at line 21 of file opencl_kernels.cpp.
cl_kernel parallel_ode::ckReduce [static] |
The reduction kernel
Definition at line 26 of file opencl_kernels.cpp.
cl_kernel parallel_ode::ckSolve [static] |
The solution kernel
Definition at line 26 of file opencl_kernels.cpp.
cl_kernel parallel_ode::ckZero [static] |
The clearing kernel for scalar values
Definition at line 26 of file opencl_kernels.cpp.
cl_kernel parallel_ode::ckZero4 [static] |
The clearing kernel for vec4 values
Definition at line 26 of file opencl_kernels.cpp.
cl_program parallel_ode::cpSolver [static] |
OpenCL solver program
Definition at line 11 of file opencl_kernels.cpp.
cl_command_queue parallel_ode::cqDefaultCommandQueue [static] |
Local storage of global command queue
Definition at line 31 of file opencl_kernels.cpp.
const int parallel_ode::DEFAULT_CL_FLAGS [static] |
ParallelFlags::PARALLEL_ALIGN | ParallelFlags::PARALLEL_REDUCE | ParallelFlags::PARALLEL_ASYNC | ParallelFlags::PARALLEL_RANDOMIZE
Definition at line 11 of file opencl_solver.h.
const int parallel_ode::DEFAULT_FLAGS |
ParallelFlags::PARALLEL_ALIGN | ParallelFlags::PARALLEL_PINNED | ParallelFlags::PARALLEL_REDUCE | ParallelFlags::PARALLEL_ASYNC | ParallelFlags::PARALLEL_RANDOMIZE
Default configuration flags for the base solver.
Definition at line 37 of file parallel_solver.h.
const int parallel_ode::DEFAULT_OPENMP_FLAGS |
Definition at line 9 of file openmp_solver.h.
const std::string parallel_ode::FILENAME = __FILE__ [static] |
This file name, as a global path
Definition at line 45 of file opencl_kernels.cpp.
const std::string parallel_ode::INC_DIR = "/" [static] |
The directory of includes
Definition at line 47 of file opencl_kernels.cpp.
const std::string parallel_ode::SRC_DIR = extractDirectory( FILENAME ) [static] |
The directory of this file
Definition at line 46 of file opencl_kernels.cpp.