Neko 1.99.1
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
tensor.c File Reference
#include <CL/cl.h>
#include <stdio.h>
#include <device/device_config.h>
#include <device/opencl/jit.h>
#include <device/opencl/prgm_lib.h>
#include <device/opencl/check.h>
#include "tensor_kernel.cl.h"
Include dependency graph for tensor.c:

Go to the source code of this file.

Macros

#define MAX(a, b)   (((a)>(b))?(a):(b))
 
#define STR(X)   #X
 
#define CASE(N)
 
#define STR(X)   #X
 
#define CASE(N)
 

Functions

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)
 

Macro Definition Documentation

◆ CASE [1/2]

#define CASE (   N)
Value:
case N: \
{ \
CL_CHECK(clSetKernelArg(kernel, 0, sizeof(cl_mem), (void *) &v)); \
CL_CHECK(clSetKernelArg(kernel, 1, sizeof(int), nv)); \
CL_CHECK(clSetKernelArg(kernel, 2, sizeof(cl_mem), (void *) &u)); \
CL_CHECK(clSetKernelArg(kernel, 3, sizeof(int), nu)); \
CL_CHECK(clSetKernelArg(kernel, 4, sizeof(cl_mem), (void *) &A)); \
CL_CHECK(clSetKernelArg(kernel, 5, sizeof(cl_mem), (void *) &Bt)); \
CL_CHECK(clSetKernelArg(kernel, 6, sizeof(cl_mem), (void *) &Ct)); \
} \
break
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ u
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ v
__global__ void dirichlet_apply_scalar_kernel(const int *__restrict__ msk, T *__restrict__ x, const T g, const int m)
void * tensor_program
#define STR(X)

◆ CASE [2/2]

#define CASE (   N)
Value:
case N: \
{ \
CL_CHECK(clSetKernelArg(kernel, 0, sizeof(cl_mem), (void *) &v)); \
CL_CHECK(clSetKernelArg(kernel, 1, sizeof(int), nv)); \
CL_CHECK(clSetKernelArg(kernel, 2, sizeof(cl_mem), (void *) &u)); \
CL_CHECK(clSetKernelArg(kernel, 3, sizeof(int), nu)); \
CL_CHECK(clSetKernelArg(kernel, 4, sizeof(cl_mem), (void *) &A)); \
CL_CHECK(clSetKernelArg(kernel, 5, sizeof(cl_mem), (void *) &Bt)); \
CL_CHECK(clSetKernelArg(kernel, 6, sizeof(cl_mem), (void *) &Ct)); \
CL_CHECK(clSetKernelArg(kernel, 7, sizeof(cl_mem), (void *) &elements)); \
CL_CHECK(clSetKernelArg(kernel, 8, sizeof(int), n_points)); \
} \
break

◆ MAX

#define MAX (   a,
 
)    (((a)>(b))?(a):(b))

Definition at line 49 of file tensor.c.

◆ STR [1/2]

#define STR (   X)    #X

◆ STR [2/2]

#define STR (   X)    #X

Function Documentation

◆ opencl_tnsr3d()

void opencl_tnsr3d ( void v,
int nv,
void u,
int nu,
void A,
void Bt,
void Ct,
int nel 
)

Definition at line 51 of file tensor.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ opencl_tnsr3d_el_list()

void opencl_tnsr3d_el_list ( void v,
int nv,
void u,
int nu,
void A,
void Bt,
void Ct,
int elements,
int n_points 
)

Definition at line 101 of file tensor.c.

Here is the call graph for this function:
Here is the caller graph for this function: