41 ({ __typeof__ (a) _a = (a); \
42 __typeof__ (b) _b = (b); \
47 static bool is_set =
false;
61 void *
A,
void *
Bt,
void *
Ct,
int *nel) {
69 tnsr3d_kernel<real, N> \
70 <<<nblcks, nthrds, 0, stream>>>((real *) v, *nv, \
72 (real *) A, (real *) Bt, (real *) Ct); \
73 CUDA_CHECK(cudaGetLastError()); \
76#define CASE_LARGE(N) \
78 const size_t shmem_size = 2 * N * N * N * sizeof(real); \
79 set_tnsr3d_large_shmem_attr<N>(shmem_size); \
80 tnsr3d_kernel_large<real, N> \
81 <<<nblcks, nthrds, shmem_size, stream>>>((real *) v, *nv, \
83 (real *) A, (real *) Bt, \
85 CUDA_CHECK(cudaGetLastError()); \
115 void *
A,
void *
Bt,
void *
Ct,
int * elements,
int* n_points) {
120 int n =
max(*nu,*
nv);
123 tnsr3d_el_kernel<real, N> \
124 <<<nblcks, nthrds, 0, stream>>>((real *) v, *nv, \
126 (real *) A, (real *) Bt, (real *) Ct, \
127 (int *) elements, *n_points); \
128 CUDA_CHECK(cudaGetLastError()); \
__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 cuda_tnsr3d(void *v, int *nv, void *u, int *nu, void *A, void *Bt, void *Ct, int *nel)
void cuda_tnsr3d_el_list(void *v, int *nv, void *u, int *nu, void *A, void *Bt, void *Ct, int *elements, int *n_points)
static void set_tnsr3d_large_shmem_attr(const size_t shmem_size)