vSMC
vSMC: Scalable Monte Carlo
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
vsmc::PathEvalCL< T, PlaceHolder > Class Template Reference

Path<T>::eval_type subtype using OpenCL. More...

#include <vsmc/opencl/backend_cl.hpp>

Public Member Functions

CLConfigureconfigure ()
 
const CLConfigureconfigure () const
 
::cl::Kernel & kernel ()
 
const ::cl::Kernel & kernel () const
 
const std::string & kernel_name () const
 
double operator() (std::size_t iter, const Particle< T > &particle, double *res)
 
virtual double path_grid (std::size_t, const Particle< T > &)
 
virtual void path_state (std::size_t, std::string &)
 
virtual void post_processor (std::size_t, const Particle< T > &)
 
virtual void pre_processor (std::size_t, const Particle< T > &)
 
virtual void set_kernel (std::size_t iter, const Particle< T > &particle)
 
virtual void set_kernel_args (std::size_t iter, const Particle< T > &particle)
 

Static Public Member Functions

static constexpr::cl_uint kernel_args_offset ()
 The index offset of additional kernel arguments set by the user. More...
 

Protected Member Functions

 PathEvalCL ()
 
 PathEvalCL (const PathEvalCL< T, PlaceHolder > &)=default
 
 PathEvalCL (PathEvalCL< T, PlaceHolder > &&)=default
 
virtual ~PathEvalCL ()
 
PathEvalCL< T, PlaceHolder > & operator= (const PathEvalCL< T, PlaceHolder > &)=default
 
PathEvalCL< T, PlaceHolder > & operator= (PathEvalCL< T, PlaceHolder > &&)=default
 

Detailed Description

template<typename T, typename PlaceHolder = NullType>
class vsmc::PathEvalCL< T, PlaceHolder >

Path<T>::eval_type subtype using OpenCL.

Kernel requirement (path_state)

__kernel
void kern (ulong iter, __global state_type *state,
__global state_type *res);

Definition at line 819 of file backend_cl.hpp.

Constructor & Destructor Documentation

template<typename T, typename PlaceHolder = NullType>
vsmc::PathEvalCL< T, PlaceHolder >::PathEvalCL ( )
inlineprotected

Definition at line 884 of file backend_cl.hpp.

template<typename T, typename PlaceHolder = NullType>
vsmc::PathEvalCL< T, PlaceHolder >::PathEvalCL ( const PathEvalCL< T, PlaceHolder > &  )
protecteddefault
template<typename T, typename PlaceHolder = NullType>
virtual vsmc::PathEvalCL< T, PlaceHolder >::~PathEvalCL ( )
inlineprotectedvirtual

Definition at line 884 of file backend_cl.hpp.

template<typename T, typename PlaceHolder = NullType>
vsmc::PathEvalCL< T, PlaceHolder >::PathEvalCL ( PathEvalCL< T, PlaceHolder > &&  )
protecteddefault

Member Function Documentation

template<typename T, typename PlaceHolder = NullType>
CLConfigure& vsmc::PathEvalCL< T, PlaceHolder >::configure ( )
inline

Definition at line 880 of file backend_cl.hpp.

template<typename T, typename PlaceHolder = NullType>
const CLConfigure& vsmc::PathEvalCL< T, PlaceHolder >::configure ( ) const
inline

Definition at line 880 of file backend_cl.hpp.

template<typename T, typename PlaceHolder = NullType>
::cl::Kernel& vsmc::PathEvalCL< T, PlaceHolder >::kernel ( )
inline

Definition at line 880 of file backend_cl.hpp.

template<typename T, typename PlaceHolder = NullType>
const ::cl::Kernel& vsmc::PathEvalCL< T, PlaceHolder >::kernel ( ) const
inline

Definition at line 880 of file backend_cl.hpp.

template<typename T, typename PlaceHolder = NullType>
static constexpr ::cl_uint vsmc::PathEvalCL< T, PlaceHolder >::kernel_args_offset ( )
inlinestatic

The index offset of additional kernel arguments set by the user.

The first user supplied additional argument shall have index kernel_args_offset

Definition at line 828 of file backend_cl.hpp.

template<typename T, typename PlaceHolder = NullType>
const std::string& vsmc::PathEvalCL< T, PlaceHolder >::kernel_name ( ) const
inline

Definition at line 880 of file backend_cl.hpp.

template<typename T, typename PlaceHolder = NullType>
double vsmc::PathEvalCL< T, PlaceHolder >::operator() ( std::size_t  iter,
const Particle< T > &  particle,
double *  res 
)
inline

Definition at line 830 of file backend_cl.hpp.

template<typename T, typename PlaceHolder = NullType>
PathEvalCL<T, PlaceHolder>& vsmc::PathEvalCL< T, PlaceHolder >::operator= ( const PathEvalCL< T, PlaceHolder > &  )
protecteddefault
template<typename T, typename PlaceHolder = NullType>
PathEvalCL<T, PlaceHolder>& vsmc::PathEvalCL< T, PlaceHolder >::operator= ( PathEvalCL< T, PlaceHolder > &&  )
protecteddefault
template<typename T, typename PlaceHolder = NullType>
virtual double vsmc::PathEvalCL< T, PlaceHolder >::path_grid ( std::size_t  ,
const Particle< T > &   
)
inlinevirtual
template<typename T, typename PlaceHolder = NullType>
virtual void vsmc::PathEvalCL< T, PlaceHolder >::path_state ( std::size_t  ,
std::string &   
)
inlinevirtual
template<typename T, typename PlaceHolder = NullType>
virtual void vsmc::PathEvalCL< T, PlaceHolder >::post_processor ( std::size_t  ,
const Particle< T > &   
)
inlinevirtual
template<typename T, typename PlaceHolder = NullType>
virtual void vsmc::PathEvalCL< T, PlaceHolder >::pre_processor ( std::size_t  ,
const Particle< T > &   
)
inlinevirtual
template<typename T, typename PlaceHolder = NullType>
virtual void vsmc::PathEvalCL< T, PlaceHolder >::set_kernel ( std::size_t  iter,
const Particle< T > &  particle 
)
inlinevirtual

Definition at line 856 of file backend_cl.hpp.

template<typename T, typename PlaceHolder = NullType>
virtual void vsmc::PathEvalCL< T, PlaceHolder >::set_kernel_args ( std::size_t  iter,
const Particle< T > &  particle 
)
inlinevirtual

Definition at line 863 of file backend_cl.hpp.