48#include "tensor_kernel.cl.h"
50#define MAX(a,b) (((a)>(b))?(a):(b))
53 void *
A,
void *
Bt,
void *
Ct,
int *nel) {
55 const int n =
MAX(*nu, *
nv);
67 cl_kernel kernel = clCreateKernel(tensor_program, \
68 STR(tnsr3d_kernel_n##N), &err); \
71 CL_CHECK(clSetKernelArg(kernel, 0, sizeof(cl_mem), (void *) &v)); \
72 CL_CHECK(clSetKernelArg(kernel, 1, sizeof(int), nv)); \
73 CL_CHECK(clSetKernelArg(kernel, 2, sizeof(cl_mem), (void *) &u)); \
74 CL_CHECK(clSetKernelArg(kernel, 3, sizeof(int), nu)); \
75 CL_CHECK(clSetKernelArg(kernel, 4, sizeof(cl_mem), (void *) &A)); \
76 CL_CHECK(clSetKernelArg(kernel, 5, sizeof(cl_mem), (void *) &Bt)); \
77 CL_CHECK(clSetKernelArg(kernel, 6, sizeof(cl_mem), (void *) &Ct)); \
79 CL_CHECK(clEnqueueNDRangeKernel((cl_command_queue) glb_cmd_queue, kernel,\
80 1, NULL, &global_item_size, \
81 &local_item_size, 0, NULL, NULL)); \
82 CL_CHECK(clReleaseKernel(kernel)); \
109 void *
A,
void *
Bt,
void *
Ct,
int *elements,
112 const int n =
MAX(*nu, *
nv);
124 cl_kernel kernel = clCreateKernel(tensor_program, \
125 STR(tnsr3d_el_kernel_n##N), &err); \
128 CL_CHECK(clSetKernelArg(kernel, 0, sizeof(cl_mem), (void *) &v)); \
129 CL_CHECK(clSetKernelArg(kernel, 1, sizeof(int), nv)); \
130 CL_CHECK(clSetKernelArg(kernel, 2, sizeof(cl_mem), (void *) &u)); \
131 CL_CHECK(clSetKernelArg(kernel, 3, sizeof(int), nu)); \
132 CL_CHECK(clSetKernelArg(kernel, 4, sizeof(cl_mem), (void *) &A)); \
133 CL_CHECK(clSetKernelArg(kernel, 5, sizeof(cl_mem), (void *) &Bt)); \
134 CL_CHECK(clSetKernelArg(kernel, 6, sizeof(cl_mem), (void *) &Ct)); \
135 CL_CHECK(clSetKernelArg(kernel, 7, sizeof(cl_mem), (void *) &elements)); \
136 CL_CHECK(clSetKernelArg(kernel, 8, sizeof(int), n_points)); \
138 CL_CHECK(clEnqueueNDRangeKernel((cl_command_queue) glb_cmd_queue, kernel,\
139 1, NULL, &global_item_size, \
140 &local_item_size, 0, NULL, NULL)); \
141 CL_CHECK(clReleaseKernel(kernel)); \
__global__ void ale_add_kinematics_kernel(const int n, T *__restrict__ wx, T *__restrict__ wy, T *__restrict__ wz, const T *__restrict__ x_ref, const T *__restrict__ y_ref, const T *__restrict__ z_ref, const T *__restrict__ phi, const T *__restrict__ x, const T *__restrict__ y, const T *__restrict__ z, const kinematics_params_t kin_params)
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ u
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ v
void opencl_kernel_jit(const char *kernel, cl_program *program)
void opencl_tnsr3d(void *v, int *nv, void *u, int *nu, void *A, void *Bt, void *Ct, int *nel)
void opencl_tnsr3d_el_list(void *v, int *nv, void *u, int *nu, void *A, void *Bt, void *Ct, int *elements, int *n_points)