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

Monitor<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
 
virtual void monitor_state (std::size_t, std::string &)
 
void operator() (std::size_t iter, std::size_t dim, const Particle< T > &particle, double *res)
 
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, std::size_t, const Particle< T > &particle)
 
virtual void set_kernel_args (std::size_t iter, std::size_t dim, 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

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

Detailed Description

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

Monitor<T>::eval_type subtype using OpenCL.

Kernel requirement (monitor_state)

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

Definition at line 735 of file backend_cl.hpp.

Constructor & Destructor Documentation

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

Definition at line 799 of file backend_cl.hpp.

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

Definition at line 799 of file backend_cl.hpp.

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

Member Function Documentation

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

Definition at line 795 of file backend_cl.hpp.

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

Definition at line 795 of file backend_cl.hpp.

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

Definition at line 795 of file backend_cl.hpp.

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

Definition at line 795 of file backend_cl.hpp.

template<typename T, typename PlaceHolder = NullType>
static constexpr ::cl_uint vsmc::MonitorEvalCL< 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 744 of file backend_cl.hpp.

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

Definition at line 795 of file backend_cl.hpp.

template<typename T, typename PlaceHolder = NullType>
virtual void vsmc::MonitorEvalCL< T, PlaceHolder >::monitor_state ( std::size_t  ,
std::string &   
)
inlinevirtual

Reimplemented in vsmc::MonitorEvalAdapter< T, MonitorEvalCL, NullType >.

Definition at line 765 of file backend_cl.hpp.

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

Definition at line 746 of file backend_cl.hpp.

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

Definition at line 769 of file backend_cl.hpp.

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

Definition at line 777 of file backend_cl.hpp.