47#include "schwarz_kernel.cl.h"
67 cl_kernel kernel = clCreateKernel(schwarz_program, \
68 STR(schwarz_extrude_kernel_nx##NX), \
72 CL_CHECK(clSetKernelArg(kernel, 0, sizeof(cl_mem), (void *) &arr1)); \
73 CL_CHECK(clSetKernelArg(kernel, 1, sizeof(int), l1)); \
74 CL_CHECK(clSetKernelArg(kernel, 2, sizeof(real), f1)); \
75 CL_CHECK(clSetKernelArg(kernel, 3, sizeof(cl_mem), (void *) &arr2)); \
76 CL_CHECK(clSetKernelArg(kernel, 4, sizeof(int), l2)); \
77 CL_CHECK(clSetKernelArg(kernel, 5, sizeof(real), f2)); \
79 CL_CHECK(clEnqueueNDRangeKernel(command_queue, kernel, 1, NULL, \
81 &local_item_size, 0, NULL, NULL)); \
112 "schwarz_toext3d_kernel", &
err);
135 "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_toext3d(void *a, void *b, int *nx, int *nel, cl_command_queue command_queue)
void opencl_schwarz_extrude(void *arr1, int *l1, real *f1, void *arr2, int *l2, real *f2, int *nx, int *nel, cl_command_queue command_queue)
void opencl_schwarz_toreg3d(void *b, void *a, int *nx, int *nel, cl_command_queue command_queue)