vSMC
vSMC: Scalable Monte Carlo
Classes | Enumerations | Functions
OpenCL

Parallel sampler using OpenCL. More...

Classes

class  vsmc::CLBuffer< T, ID >
 OpenCL buffer. More...
 
class  vsmc::CLConfigure
 Configure OpenCL runtime behavior (used by MoveCL etc) More...
 
class  vsmc::CLError
 OpenCL exception. More...
 
class  vsmc::CLManager< ID >
 OpenCL Manager. More...
 
class  vsmc::CLQuery
 Query OpenCL information. More...
 
class  vsmc::CLSetup< ID >
 Configure the default behavior of CLManager. More...
 
class  vsmc::InitializeCL< T, PlaceHolder >
 Sampler<T>::init_type subtype using OpenCL. More...
 
class  vsmc::MonitorEvalCL< T, PlaceHolder >
 Monitor<T>::eval_type subtype using OpenCL. More...
 
class  vsmc::MoveCL< T, PlaceHolder >
 Sampler<T>::move_type subtype using OpenCL. More...
 
class  vsmc::PathEvalCL< T, PlaceHolder >
 Path<T>::eval_type subtype using OpenCL. More...
 
class  vsmc::StateCL< StateSize, FPType, ID >
 Particle::value_type subtype using OpenCL. More...
 

Enumerations

enum  vsmc::OpenCLDeviceFeature {
  vsmc::OpenCLDeviceDoubleFP,
  vsmc::OpenCLDeviceImageSupport
}
 OpenCL device features. More...
 

Functions

std::size_t vsmc::cl_min_global_size (std::size_t N, std::size_t local_size)
 The minimum global size that is a multiple of the local size. More...
 
void vsmc::cl_minmax_local_size (const ::cl::Kernel &kern, const ::cl::Device &dev, std::size_t &factor, std::size_t &lmax, std::size_t &mmax)
 Query the preferred factor of local size. More...
 
std::size_t vsmc::cl_preferred_work_size (std::size_t N, const ::cl::Kernel &kern, const ::cl::Device &dev, std::size_t &global_size, std::size_t &local_size)
 The preferred global and local size. More...
 
template<typename Arg1 , typename... Args>
void vsmc::cl_set_kernel_args (::cl::Kernel &kern,::cl_uint offset, const Arg1 &arg1, const Args &...args)
 Set OpenCL kernel arguments. More...
 
template<typename CharT , typename Traits >
std::basic_ostream< CharT, Traits > & vsmc::operator<< (std::basic_ostream< CharT, Traits > &os, const CLQuery &)
 Query OpenCL information using CLQuery. More...
 
template<typename CharT , typename Traits >
std::basic_ostream< CharT, Traits > & cl::operator<< (std::basic_ostream< CharT, Traits > &os, const Platform &plat)
 Query device information in a given platform. More...
 
template<typename CharT , typename Traits >
std::basic_ostream< CharT, Traits > & cl::operator<< (std::basic_ostream< CharT, Traits > &os, const Device &dev)
 Query device information. More...
 
template<typename CharT , typename Traits >
std::basic_ostream< CharT, Traits > & cl::operator<< (std::basic_ostream< CharT, Traits > &os, const Kernel &kern)
 Query kernel information. More...
 
template<typename CharT , typename Traits >
std::basic_ostream< CharT, Traits > & cl::operator<< (std::basic_ostream< CharT, Traits > &os, const Program &prog)
 Query program information. More...
 
template<typename CharT , typename Traits >
std::basic_ostream< CharT, Traits > & cl::operator<< (std::basic_ostream< CharT, Traits > &os, const Context &ctx)
 Query device information in a given context. More...
 

Detailed Description

Parallel sampler using OpenCL.

Enumeration Type Documentation

OpenCL device features.

Enumerator
OpenCLDeviceDoubleFP 

Double precision floating points.

OpenCLDeviceImageSupport 

Image support.

Definition at line 42 of file cl_query.hpp.

Function Documentation

std::size_t vsmc::cl_min_global_size ( std::size_t  N,
std::size_t  local_size 
)
inline

The minimum global size that is a multiple of the local size.

Definition at line 69 of file cl_manip.hpp.

void vsmc::cl_minmax_local_size ( const ::cl::Kernel &  kern,
const ::cl::Device &  dev,
std::size_t &  factor,
std::size_t &  lmax,
std::size_t &  mmax 
)
inline

Query the preferred factor of local size.

Parameters
kernAn OpenCL kernel
devAn OpenCL device
factorMultiplier factor of local size for optimzied performance
lmaxMaximum of the local size
mmaxMaximum of the multiplier of the factor

Definition at line 48 of file cl_manip.hpp.

std::size_t vsmc::cl_preferred_work_size ( std::size_t  N,
const ::cl::Kernel &  kern,
const ::cl::Device &  dev,
std::size_t &  global_size,
std::size_t &  local_size 
)
inline

The preferred global and local size.

Returns
The difference between the preferred global size and the N

Definition at line 82 of file cl_manip.hpp.

template<typename Arg1 , typename... Args>
void vsmc::cl_set_kernel_args ( ::cl::Kernel &  kern,
::cl_uint  offset,
const Arg1 &  arg1,
const Args &...  args 
)
inline

Set OpenCL kernel arguments.

The first argument arg1 is set with index offset and the next with index offset + 1 and so on. For C++11 implementations that support variadic template, there can be arbitrary number of arguments (or limited by the compiler's implementation). Otherwise this function supports up to 16 arguments.

Definition at line 142 of file cl_manip.hpp.

template<typename CharT , typename Traits >
std::basic_ostream<CharT, Traits>& vsmc::operator<< ( std::basic_ostream< CharT, Traits > &  os,
const CLQuery  
)
inline

Query OpenCL information using CLQuery.

Definition at line 840 of file cl_query.hpp.

template<typename CharT , typename Traits >
std::basic_ostream<CharT, Traits>& cl::operator<< ( std::basic_ostream< CharT, Traits > &  os,
const Platform &  plat 
)
inline

Query device information in a given platform.

Definition at line 851 of file cl_query.hpp.

template<typename CharT , typename Traits >
std::basic_ostream<CharT, Traits>& cl::operator<< ( std::basic_ostream< CharT, Traits > &  os,
const Device &  dev 
)
inline

Query device information.

Definition at line 865 of file cl_query.hpp.

template<typename CharT , typename Traits >
std::basic_ostream<CharT, Traits>& cl::operator<< ( std::basic_ostream< CharT, Traits > &  os,
const Kernel &  kern 
)
inline

Query kernel information.

Definition at line 879 of file cl_query.hpp.

template<typename CharT , typename Traits >
std::basic_ostream<CharT, Traits>& cl::operator<< ( std::basic_ostream< CharT, Traits > &  os,
const Program &  prog 
)
inline

Query program information.

Definition at line 872 of file cl_query.hpp.

template<typename CharT , typename Traits >
std::basic_ostream<CharT, Traits>& cl::operator<< ( std::basic_ostream< CharT, Traits > &  os,
const Context &  ctx 
)
inline

Query device information in a given context.

Definition at line 858 of file cl_query.hpp.