Automatic Differentiation
 
Loading...
Searching...
No Matches
kernel_cl.hpp File Reference
#include <stan/math/opencl/buffer_types.hpp>
#include <stan/math/opencl/matrix_cl_view.hpp>
#include <stan/math/opencl/opencl_context.hpp>
#include <stan/math/opencl/matrix_cl.hpp>
#include <stan/math/opencl/stringify.hpp>
#include <stan/math/opencl/err/check_opencl.hpp>
#include <stan/math/opencl/kernels/helpers.hpp>
#include <stan/math/prim/fun/vec_concat.hpp>
#include <CL/opencl.hpp>
#include <algorithm>
#include <map>
#include <string>
#include <vector>
#include <utility>

Go to the source code of this file.

Classes

struct  stan::math::opencl_kernels::kernel_cl< Args >
 Creates functor for kernels. More...
 

Namespaces

namespace  stan
 The lgamma implementation in stan-math is based on either the reentrant safe lgamma_r implementation from C or the boost::math::lgamma implementation.
 
namespace  stan::math
 Matrices and templated mathematical functions.
 
namespace  stan::math::opencl_kernels
 
namespace  stan::math::opencl_kernels::internal
 

Functions

template<typename T , require_not_matrix_cl_t< T > * = nullptr>
const T & stan::math::opencl_kernels::internal::get_kernel_args (const T &t)
 Extracts the kernel's arguments, used in the global and local kernel constructor.
 
template<typename K , require_matrix_cl_t< K > * = nullptr>
const cl::Buffer & stan::math::opencl_kernels::internal::get_kernel_args (const K &m)
 Extracts the kernel's arguments, used in the global and local kernel constructor.
 
template<typename T , require_not_matrix_cl_t< T > * = nullptr>
void stan::math::opencl_kernels::internal::assign_event (const cl::Event &e, const T &)
 Assigns the event to a matrix_cl.
 
template<typename T , typename K , require_matrix_cl_t< K > * = nullptr, require_same_t< T, in_buffer > * = nullptr>
void stan::math::opencl_kernels::internal::assign_event (const cl::Event &e, const K &m)
 
template<typename T , typename K , require_matrix_cl_t< K > * = nullptr, require_same_t< T, out_buffer > * = nullptr>
void stan::math::opencl_kernels::internal::assign_event (const cl::Event &e, K &m)
 
template<typename T , require_same_t< T, cl::Event > * = nullptr>
void stan::math::opencl_kernels::internal::assign_events (const T &)
 Adds the event to any matrix_cls in the arguments depending on whether they are in_buffer, out_buffer, or in_out_buffers.
 
template<typename Arg , typename... Args, typename CallArg , typename... CallArgs>
void stan::math::opencl_kernels::internal::assign_events (const cl::Event &new_event, CallArg &m, CallArgs &... args)
 
template<typename T , require_not_matrix_cl_t< T > * = nullptr>
tbb::concurrent_vector< cl::Event > stan::math::opencl_kernels::internal::select_events (const T &m)
 Select events from kernel arguments.
 
template<typename T , typename K , require_matrix_cl_t< K > * = nullptr, require_same_t< T, in_buffer > * = nullptr>
const tbb::concurrent_vector< cl::Event > & stan::math::opencl_kernels::internal::select_events (const K &m)
 
template<typename T , typename K , require_matrix_cl_t< K > * = nullptr, require_any_same_t< T, out_buffer, in_out_buffer > * = nullptr>
tbb::concurrent_vector< cl::Event > stan::math::opencl_kernels::internal::select_events (K &m)
 
auto stan::math::opencl_kernels::compile_kernel (const char *name, const std::vector< std::string > &sources, const std::unordered_map< std::string, int > &options)
 Compile an OpenCL kernel.