vSMC  v3.0.0
Scalable Monte Carlo
Public Types | Public Member Functions | Static Public Member Functions | List of all members
vsmc::CLProgram Class Reference

OpenCL cl_program More...

#include <vsmc/utility/opencl.hpp>

Public Types

using pfn_notify_type = void(CL_CALLBACK *)(::cl_program, void *)
 
- Public Types inherited from vsmc::CLBase<::cl_program, CLProgram >
using element_type = typename std::remove_pointer< ::cl_program >::type
 
using pointer = ::cl_program
 

Public Member Functions

 CLProgram (::cl_program ptr=nullptr)
 
 CLProgram (const CLContext &context,::cl_uint count, const std::string *strings)
 clCreateProgramWithSource More...
 
 CLProgram (const CLContext &context,::cl_uint num_devices, const CLDevice *devices, const std::vector< unsigned char > *binaries)
 clCreateProgramWithBinary More...
 
 CLProgram (const CLContext &context,::cl_uint num_devices, const CLDevice *devices, const std::string &kernel_names)
 clCreateProgramWithBuiltInKernels More...
 
 CLProgram (const CLContext &context,::cl_uint num_devices, const CLDevice *devices, const std::string &options=std::string(),::cl_uint num_input_programs=0, const CLProgram *input_programs=nullptr, pfn_notify_type pfn_notify=nullptr, void *user_data=nullptr)
 clLinkProgram More...
 
::cl_int build (::cl_uint num_devices, const CLDevice *devices, const std::string &options=std::string(), pfn_notify_type pfn_notify=nullptr, void *user_data=nullptr) const
 clBuildProgram More...
 
std::string build_log (const CLDevice &device) const
 CL_PROGRAM_BUILD_LOG More...
 
std::string build_options (const CLDevice &device) const
 CL_PROGRAM_BUILD_OPTIONS More...
 
::cl_build_status build_status (const CLDevice &device) const
 CL_PROGRAM_BUILD_STATUS More...
 
::cl_int compile (::cl_uint num_devices, const CLDevice *devices, const std::string &options=std::string(),::cl_uint num_input_headers=0, const CLProgram *input_headers=nullptr, const std::string *header_include_names=nullptr, pfn_notify_type pf_notify=nullptr, void *user_data=nullptr)
 clCompileProgram More...
 
std::vector< CLKernelcreate_kernels () const
 clCreateKernelsInProgram More...
 
::cl_int get_build_info (const CLDevice &device,::cl_program_build_info param_name, std::size_t param_value_size, void *param_value, std::size_t *param_value_size_ret) const
 clGetProgramBuildInfo More...
 
template<typename ParamType >
::cl_int get_build_info (const CLDevice &device,::cl_program_build_info param_name, ParamType &param_value) const
 
template<typename ParamType >
::cl_int get_build_info (const CLDevice &device,::cl_program_build_info param_name, std::vector< ParamType > &param_value) const
 
::cl_int get_build_info (const CLDevice &device,::cl_program_build_info param_name, std::string &param_value) const
 
CLContext get_context () const
 CL_PROGRAM_CONTEXT More...
 
std::vector< CLDeviceget_device () const
 CL_PROGRAM_DEVICES More...
 
::cl_int get_info (::cl_program_info param_name, std::size_t param_value_size, void *param_value, std::size_t *param_value_size_ret) const
 clGetProgramInfo More...
 
template<typename ParamType >
::cl_int get_info (::cl_program_info param_name, std::vector< ParamType > &param_value) const
 
::cl_int get_info (::cl_program_info param_name, std::string &param_value) const
 
template<typename ParamType >
::cl_int get_info (::cl_program_info param_name, ParamType &param_value) const
 
- Public Member Functions inherited from vsmc::CLBase<::cl_program, CLProgram >
 CLBase ()
 
pointer get () const
 
 operator bool () const
 
void reset (pointer ptr)
 
void swap (CLBase< ::cl_program, CLProgram > &other)
 
bool unique () const
 
long use_count () const
 

Static Public Member Functions

::cl_int release (::cl_program ptr)
 clReleaseProgram More...
 

Additional Inherited Members

- Protected Member Functions inherited from vsmc::CLBase<::cl_program, CLProgram >
void reset_ptr (pointer ptr)
 

Detailed Description

OpenCL cl_program

Definition at line 593 of file opencl.hpp.

Member Typedef Documentation

using vsmc::CLProgram::pfn_notify_type = void(CL_CALLBACK *)(::cl_program, void *)

Definition at line 596 of file opencl.hpp.

Constructor & Destructor Documentation

vsmc::CLProgram::CLProgram ( ::cl_program  ptr = nullptr)
inlineexplicit

Definition at line 598 of file opencl.hpp.

vsmc::CLProgram::CLProgram ( const CLContext context,
::cl_uint  count,
const std::string *  strings 
)
inline

clCreateProgramWithSource

Definition at line 601 of file opencl.hpp.

vsmc::CLProgram::CLProgram ( const CLContext context,
::cl_uint  num_devices,
const CLDevice devices,
const std::vector< unsigned char > *  binaries 
)
inline

clCreateProgramWithBinary

Definition at line 621 of file opencl.hpp.

vsmc::CLProgram::CLProgram ( const CLContext context,
::cl_uint  num_devices,
const CLDevice devices,
const std::string &  kernel_names 
)
inline

clCreateProgramWithBuiltInKernels

Definition at line 653 of file opencl.hpp.

vsmc::CLProgram::CLProgram ( const CLContext context,
::cl_uint  num_devices,
const CLDevice devices,
const std::string &  options = std::string(),
::cl_uint  num_input_programs = 0,
const CLProgram input_programs = nullptr,
pfn_notify_type  pfn_notify = nullptr,
void *  user_data = nullptr 
)
inline

clLinkProgram

Definition at line 667 of file opencl.hpp.

Member Function Documentation

::cl_int vsmc::CLProgram::build ( ::cl_uint  num_devices,
const CLDevice devices,
const std::string &  options = std::string(),
pfn_notify_type  pfn_notify = nullptr,
void *  user_data = nullptr 
) const
inline

clBuildProgram

Definition at line 686 of file opencl.hpp.

std::string vsmc::CLProgram::build_log ( const CLDevice device) const
inline

CL_PROGRAM_BUILD_LOG

Definition at line 771 of file opencl.hpp.

std::string vsmc::CLProgram::build_options ( const CLDevice device) const
inline

CL_PROGRAM_BUILD_OPTIONS

Definition at line 762 of file opencl.hpp.

::cl_build_status vsmc::CLProgram::build_status ( const CLDevice device) const
inline

CL_PROGRAM_BUILD_STATUS

Definition at line 753 of file opencl.hpp.

::cl_int vsmc::CLProgram::compile ( ::cl_uint  num_devices,
const CLDevice devices,
const std::string &  options = std::string(),
::cl_uint  num_input_headers = 0,
const CLProgram input_headers = nullptr,
const std::string *  header_include_names = nullptr,
pfn_notify_type  pf_notify = nullptr,
void *  user_data = nullptr 
)
inline

clCompileProgram

Definition at line 732 of file opencl.hpp.

std::vector< CLKernel > vsmc::CLProgram::create_kernels ( ) const
inline

clCreateKernelsInProgram

Definition at line 1429 of file opencl.hpp.

::cl_int vsmc::CLProgram::get_build_info ( const CLDevice device,
::cl_program_build_info  param_name,
std::size_t  param_value_size,
void *  param_value,
std::size_t *  param_value_size_ret 
) const
inline

clGetProgramBuildInfo

Definition at line 806 of file opencl.hpp.

template<typename ParamType >
::cl_int vsmc::CLProgram::get_build_info ( const CLDevice device,
::cl_program_build_info  param_name,
ParamType &  param_value 
) const
inline

Definition at line 817 of file opencl.hpp.

template<typename ParamType >
::cl_int vsmc::CLProgram::get_build_info ( const CLDevice device,
::cl_program_build_info  param_name,
std::vector< ParamType > &  param_value 
) const
inline

Definition at line 830 of file opencl.hpp.

::cl_int vsmc::CLProgram::get_build_info ( const CLDevice device,
::cl_program_build_info  param_name,
std::string &  param_value 
) const
inline

Definition at line 851 of file opencl.hpp.

CLContext vsmc::CLProgram::get_context ( ) const
inline

CL_PROGRAM_CONTEXT

Definition at line 783 of file opencl.hpp.

std::vector<CLDevice> vsmc::CLProgram::get_device ( ) const
inline

CL_PROGRAM_DEVICES

Definition at line 792 of file opencl.hpp.

::cl_int vsmc::CLProgram::get_info ( ::cl_program_info  param_name,
std::string &  param_value 
) const
inline

Definition at line 803 of file opencl.hpp.

template<typename ParamType >
::cl_int vsmc::CLProgram::get_info ( ::cl_program_info  param_name,
ParamType &  param_value 
) const
inline

Definition at line 803 of file opencl.hpp.

::cl_int vsmc::CLProgram::get_info ( ::cl_program_info  param_name,
std::size_t  param_value_size,
void *  param_value,
std::size_t *  param_value_size_ret 
) const
inline

clGetProgramInfo

Definition at line 803 of file opencl.hpp.

template<typename ParamType >
::cl_int vsmc::CLProgram::get_info ( ::cl_program_info  param_name,
std::vector< ParamType > &  param_value 
) const
inline

Definition at line 803 of file opencl.hpp.

::cl_int vsmc::CLProgram::release ( ::cl_program  ptr)
inlinestatic

clReleaseProgram

Definition at line 864 of file opencl.hpp.