Automatic Differentiation
 
Loading...
Searching...
No Matches
stan::math::internal::arena_matrix_cl_impl< T > Class Template Reference

Detailed Description

template<typename T>
class stan::math::internal::arena_matrix_cl_impl< T >

Definition at line 15 of file arena_matrix_cl.hpp.

#include <arena_matrix_cl.hpp>

+ Inheritance diagram for stan::math::internal::arena_matrix_cl_impl< T >:

Public Types

using Scalar = typename matrix_cl< T >::Scalar
 
using type = typename matrix_cl< T >::type
 

Public Member Functions

template<typename... Args>
 arena_matrix_cl_impl (Args &&... args)
 
 arena_matrix_cl_impl (const arena_matrix_cl_impl< T > &)=default
 
 arena_matrix_cl_impl (arena_matrix_cl_impl< T > &)=default
 
 arena_matrix_cl_impl (arena_matrix_cl_impl< T > &&)=default
 
arena_matrix_cl_impl< T > & operator= (const arena_matrix_cl_impl< T > &)=default
 
arena_matrix_cl_impl< T > & operator= (arena_matrix_cl_impl< T > &&)=default
 
template<matrix_cl_view matrix_view = matrix_cl_view::Entire>
void zeros_strict_tri ()
 Stores zeros in the strict's triangular part (excluding the diagonal) of a matrix on the OpenCL device.
 
int rows () const
 
int cols () const
 
int size () const
 
const matrix_cl_viewview () const
 
void view (const matrix_cl_view &view)
 
void clear_write_events () const
 Clear the write events from the event stacks.
 
void clear_read_events () const
 Clear the read events from the event stacks.
 
void clear_read_write_events () const
 Clear the write events from the event stacks.
 
const tbb::concurrent_vector< cl::Event > & write_events () const
 Get the events from the event stacks.
 
const tbb::concurrent_vector< cl::Event > & read_events () const
 Get the events from the event stacks.
 
const tbb::concurrent_vector< cl::Event > read_write_events () const
 Get the events from the event stacks.
 
void add_read_event (cl::Event new_event) const
 Add an event to the read event stack.
 
void add_write_event (cl::Event new_event) const
 Add an event to the write event stack.
 
void add_read_write_event (cl::Event new_event) const
 Add an event to the read/write event stack.
 
void wait_for_write_events () const
 Waits for the write events and clears the read event stack.
 
void wait_for_read_events () const
 Waits for the read events and clears the read event stack.
 
void wait_for_read_write_events () const
 Waits for read and write events to finish and clears the read, write, and read/write event stacks.
 
const cl::Buffer & buffer () const
 
cl::Buffer & buffer ()
 
const matrix_cl< T > & eval () const &
 Evaluates this.
 
matrix_cl< T > eval () &&
 
void setZero ()
 Set the values of a matrix_cl to zero.
 

Private Member Functions

template<bool in_order = false>
cl::Event initialize_buffer (const T *A)
 Initializes the OpenCL buffer of this matrix by copying the data from given buffer.
 
template<bool in_order = false>
cl::Event initialize_buffer (T *A)
 
template<bool No_heap, typename U , std::enable_if_t< No_heap > * = nullptr>
void initialize_buffer_no_heap_if (U &&obj)
 Initializes the OpenCL buffer of this matrix by copying the data from given object.
 
template<bool No_heap, typename U , std::enable_if_t<!No_heap > * = nullptr>
void initialize_buffer_no_heap_if (U &&obj)
 
void initialize_buffer_cl (const matrix_cl< T > &A)
 Initializes the OpenCL buffer of this matrix by copying the data from given matrix_cl.
 

Static Private Member Functions

template<typename U >
static void delete_it_event (cl_event e, cl_int status, void *container)
 Deletes the container.
 
template<typename U >
static void delete_it_destructor (cl_mem buff, void *container)
 Deletes the container.
 

Private Attributes

cl::Buffer buffer_cl_
 
int rows_ {0}
 
int cols_ {0}
 
matrix_cl_view view_ {matrix_cl_view::Entire}
 
tbb::concurrent_vector< cl::Event > write_events_
 
tbb::concurrent_vector< cl::Event > read_events_
 

The documentation for this class was generated from the following file: