1 #ifndef STAN_MATH_OPENCL_KERNELS_ADD_HPP 2 #define STAN_MATH_OPENCL_KERNELS_ADD_HPP 10 namespace opencl_kernels {
12 static const char *add_kernel_code =
STRINGIFY(
26 __kernel
void add(__global
double *C, __global
double *A,
27 __global
double *B,
unsigned int rows,
29 const int i = get_global_id(0);
30 const int j = get_global_id(1);
31 if (i < rows && j < cols) {
32 C(i, j) = A(i, j) + B(i, j);
45 static const char *add_batch_kernel_code =
STRINGIFY(
62 __kernel
void add_batch(__global
double *B, __global
double *A,
63 unsigned int rows,
unsigned int cols,
64 unsigned int batch_size) {
65 const int i = get_global_id(0);
66 const int j = get_global_id(1);
67 if (i < rows && j < cols) {
69 for (
int k = 0; k < batch_size; k++) {
70 temp += A_batch(i, j, k);
int rows(const Eigen::Matrix< T, R, C > &m)
Return the number of rows in the specified matrix, vector, or row vector.
static const char * indexing_helpers
const kernel_cl< out_buffer, in_buffer, in_buffer, int, int > add("add", {indexing_helpers, add_kernel_code})
See the docs for add() .
int cols(const Eigen::Matrix< T, R, C > &m)
Return the number of columns in the specified matrix, vector, or row vector.
const kernel_cl< out_buffer, in_buffer, int, int, int > add_batch("add_batch", {indexing_helpers, add_batch_kernel_code})
See the docs for add_batch() .
Creates functor for kernels.