Go to the documentation of this file.00001 #ifndef OPENCL_KERNELS_H
00002 #define OPENCL_KERNELS_H
00003
00004 #include <parallel_common.h>
00005
00006 class ReduceStrategy;
00007
00008 namespace parallel_ode
00009 {
00010
00011 extern "C" void oclInitializeKernels(cl_context cxGPUContext, cl_command_queue cqCommandQueue);
00012 extern "C" void oclShutdownKernels(void);
00013
00014 void oclZeroVector( cl_mem buffer, int bufferSize, bool bScalarType = false );
00015
00016 void oclPGSReduce( cl_mem fc0_reduction,
00017 cl_mem fc1_reduction,
00018 ReduceStrategy* reduceStrategy );
00019
00020 void oclPGSReduce( cl_mem fc0,
00021 cl_mem fc1,
00022 cl_mem fc0_reduction,
00023 cl_mem fc1_reduction,
00024 ReduceStrategy* reduceStrategy );
00025
00026 void oclPGSSolve( int offset, int numConstraints, bool bUseAtomics );
00027
00028 void oclPGSSolveInit( cl_mem bodyIDs,
00029 cl_mem fIDs,
00030 cl_mem j,
00031 cl_mem ij,
00032 cl_mem fc0,
00033 cl_mem fc1,
00034 cl_mem fc0_reduction,
00035 cl_mem fc1_reduction,
00036 cl_mem lambda,
00037 cl_mem adcfm,
00038 cl_mem rhs,
00039 cl_mem hilo,
00040 int bStride, int cStride,
00041 ReduceStrategy* reduceStrategy );
00042
00043 }
00044
00045 #endif