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

Sampler<T>::move_type subtype using OpenCL. More...

#include <vsmc/opencl/backend_cl.hpp>

Public Member Functions

virtual std::size_t accept_count (Particle< T > &particle, const ::cl::Buffer &accept_buffer)
 
CLConfigureconfigure ()
 
const CLConfigureconfigure () const
 
const ::cl::Kernel & kernel () const
 
::cl::Kernel & kernel ()
 
const std::string & kernel_name () const
 
virtual void move_state (std::size_t, std::string &)
 
std::size_t operator() (std::size_t iter, Particle< T > &particle)
 
virtual void post_processor (std::size_t, Particle< T > &)
 
virtual void pre_processor (std::size_t, 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

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

Detailed Description

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

Sampler<T>::move_type subtype using OpenCL.

Kernel requirement (move_state)

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

Definition at line 639 of file backend_cl.hpp.

Constructor & Destructor Documentation

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

Definition at line 714 of file backend_cl.hpp.

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

Definition at line 714 of file backend_cl.hpp.

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

Member Function Documentation

template<typename T, typename PlaceHolder = NullType>
virtual std::size_t vsmc::MoveCL< T, PlaceHolder >::accept_count ( Particle< T > &  particle,
const ::cl::Buffer &  accept_buffer 
)
inlinevirtual

Definition at line 671 of file backend_cl.hpp.

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

Definition at line 710 of file backend_cl.hpp.

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

Definition at line 710 of file backend_cl.hpp.

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

Definition at line 710 of file backend_cl.hpp.

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

Definition at line 710 of file backend_cl.hpp.

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

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

Definition at line 710 of file backend_cl.hpp.

template<typename T, typename PlaceHolder = NullType>
virtual void vsmc::MoveCL< T, PlaceHolder >::move_state ( std::size_t  ,
std::string &   
)
inlinevirtual
template<typename T, typename PlaceHolder = NullType>
std::size_t vsmc::MoveCL< T, PlaceHolder >::operator() ( std::size_t  iter,
Particle< T > &  particle 
)
inline

Definition at line 650 of file backend_cl.hpp.

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

Definition at line 682 of file backend_cl.hpp.

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

Definition at line 689 of file backend_cl.hpp.