47#include "schwarz_kernel.cl.h"
51 int * nx,
int * nel) {
65 cl_kernel kernel = clCreateKernel(schwarz_program, \
66 STR(schwarz_extrude_kernel_nx##NX), \
70 CL_CHECK(clSetKernelArg(kernel, 0, sizeof(cl_mem), (void *) &arr1)); \
71 CL_CHECK(clSetKernelArg(kernel, 1, sizeof(int), l1)); \
72 CL_CHECK(clSetKernelArg(kernel, 2, sizeof(real), f1)); \
73 CL_CHECK(clSetKernelArg(kernel, 3, sizeof(cl_mem), (void *) &arr2)); \
74 CL_CHECK(clSetKernelArg(kernel, 4, sizeof(int), l2)); \
75 CL_CHECK(clSetKernelArg(kernel, 5, sizeof(real), f2)); \
77 CL_CHECK(clEnqueueNDRangeKernel((cl_command_queue) glb_cmd_queue, \
78 kernel, 1, NULL, &global_item_size, \
79 &local_item_size, 0, NULL, NULL)); \
109 "schwarz_toext3d_kernel", &
err);
131 "schwarz_toreg3d_kernel", &
err);
__global__ void dirichlet_apply_scalar_kernel(const int *__restrict__ msk, T *__restrict__ x, const T g, const int m)
void opencl_kernel_jit(const char *kernel, cl_program *program)
void opencl_schwarz_toreg3d(void *b, void *a, int *nx, int *nel)
void opencl_schwarz_toext3d(void *a, void *b, int *nx, int *nel)
void opencl_schwarz_extrude(void *arr1, int *l1, real *f1, void *arr2, int *l2, real *f2, int *nx, int *nel)