Neko  0.9.0
A portable framework for high-order spectral element flow simulations
math_kernel.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

template<typename T >
__global__ void cmult_kernel (T *__restrict__ a, const T c, const int n)
 
template<typename T >
__global__ void masked_copy_kernel (T *__restrict__ a, T *__restrict__ b, int *__restrict__ mask, const int n, const int m)
 
template<typename T >
__global__ void masked_red_copy_kernel (T *__restrict__ a, T *__restrict__ b, int *__restrict__ mask, const int n, const int m)
 
template<typename T >
__global__ void cfill_mask_kernel (T *__restrict__ a, const T c, const int size, int *__restrict__ mask, const int mask_size)
 
template<typename T >
__global__ void cmult2_kernel (T *__restrict__ a, T *__restrict__ b, const T c, const int n)
 
template<typename T >
__global__ void cadd_kernel (T *__restrict__ a, const T c, const int n)
 
template<typename T >
__global__ void cadd2_kernel (T *__restrict__ a, T *__restrict__ b, const T c, const int n)
 
template<typename T >
__global__ void cfill_kernel (T *__restrict__ a, const T c, const int n)
 
template<typename T >
__global__ void add2_kernel (T *__restrict__ a, const T *__restrict__ b, const int n)
 
template<typename T >
__global__ void add3_kernel (T *__restrict__ a, const T *__restrict__ b, const T *__restrict__ c, const int n)
 
template<typename T >
__global__ void add4_kernel (T *__restrict__ a, const T *__restrict__ b, const T *__restrict__ c, const T *__restrict__ d, const int n)
 
template<typename T >
__global__ void add2s1_kernel (T *__restrict__ a, const T *__restrict__ b, const T c1, const int n)
 
template<typename T >
__global__ void add2s2_many_kernel (T *__restrict__ x, const T **p, const T *alpha, const int p_cur, const int n)
 
template<typename T >
__global__ void add2s2_kernel (T *__restrict__ a, const T *__restrict__ b, const T c1, const int n)
 
template<typename T >
__global__ void addsqr2s2_kernel (T *__restrict__ a, const T *__restrict__ b, const T c1, const int n)
 
template<typename T >
__global__ void add3s2_kernel (T *__restrict__ a, const T *__restrict__ b, const T *__restrict__ c, const T c1, const T c2, const int n)
 
template<typename T >
__global__ void invcol1_kernel (T *__restrict__ a, const int n)
 
template<typename T >
__global__ void invcol2_kernel (T *__restrict__ a, const T *__restrict__ b, const int n)
 
template<typename T >
__global__ void col2_kernel (T *__restrict__ a, const T *__restrict__ b, const int n)
 
template<typename T >
__global__ void col3_kernel (T *__restrict__ a, const T *__restrict__ b, const T *__restrict__ c, const int n)
 
template<typename T >
__global__ void subcol3_kernel (T *__restrict__ a, const T *__restrict__ b, const T *__restrict__ c, const int n)
 
template<typename T >
__global__ void sub2_kernel (T *__restrict__ a, const T *__restrict__ b, const int n)
 
template<typename T >
__global__ void sub3_kernel (T *__restrict__ a, const T *__restrict__ b, const T *__restrict__ c, const int n)
 
template<typename T >
__global__ void addcol3_kernel (T *__restrict__ a, const T *__restrict__ b, const T *__restrict__ c, const int n)
 
template<typename T >
__global__ void addcol4_kernel (T *__restrict__ a, const T *__restrict__ b, const T *__restrict__ c, const T *__restrict__ d, const int n)
 
template<typename T >
__global__ void vdot3_kernel (T *__restrict__ dot, const T *__restrict__ u1, const T *__restrict__ u2, const T *__restrict__ u3, const T *__restrict__ v1, const T *__restrict__ v2, const T *__restrict__ v3, const int n)
 
template<typename T >
__global__ void vcross_kernel (T *__restrict__ u1, T *__restrict__ u2, T *__restrict__ u3, const T *__restrict__ v1, const T *__restrict__ v2, const T *__restrict__ v3, const T *__restrict__ w1, const T *__restrict__ w2, const T *__restrict__ w3, const int n)
 
template<typename T >
__inline__ __device__ T reduce_warp (T val)
 
template<typename T >
__global__ void reduce_kernel (T *bufred, const int n)
 
template<typename T >
__global__ void glsc3_reduce_kernel (T *bufred, const int n, const int j)
 
template<typename T >
__global__ void glsc3_kernel (const T *a, const T *b, const T *c, T *buf_h, const int n)
 
template<typename T >
__global__ void glsc3_many_kernel (const T *a, const T **b, const T *c, T *buf_h, const int j, const int n)
 
template<typename T >
__global__ void glsc2_kernel (const T *a, const T *b, T *buf_h, const int n)
 
template<typename T >
__global__ void glsum_kernel (const T *a, T *buf_h, const int n)
 
template<typename T >
__global__ void absval_kernel (T *__restrict__ a, const int n)
 

Function Documentation

◆ absval_kernel()

template<typename T >
__global__ void absval_kernel ( T *__restrict__  a,
const int  n 
)

Device kernel for abs_value

Definition at line 744 of file math_kernel.h.

◆ add2_kernel()

template<typename T >
__global__ void add2_kernel ( T *__restrict__  a,
const T *__restrict__  b,
const int  n 
)

Device kernel for add2

Definition at line 175 of file math_kernel.h.

◆ add2s1_kernel()

template<typename T >
__global__ void add2s1_kernel ( T *__restrict__  a,
const T *__restrict__  b,
const T  c1,
const int  n 
)

Device kernel for add2s1

Definition at line 226 of file math_kernel.h.

◆ add2s2_kernel()

template<typename T >
__global__ void add2s2_kernel ( T *__restrict__  a,
const T *__restrict__  b,
const T  c1,
const int  n 
)

Device kernel for add2s2

Definition at line 266 of file math_kernel.h.

◆ add2s2_many_kernel()

template<typename T >
__global__ void add2s2_many_kernel ( T *__restrict__  x,
const T **  p,
const T *  alpha,
const int  p_cur,
const int  n 
)

Device kernel for add2s2

Definition at line 243 of file math_kernel.h.

◆ add3_kernel()

template<typename T >
__global__ void add3_kernel ( T *__restrict__  a,
const T *__restrict__  b,
const T *__restrict__  c,
const int  n 
)

Device kernel for add3

Definition at line 191 of file math_kernel.h.

◆ add3s2_kernel()

template<typename T >
__global__ void add3s2_kernel ( T *__restrict__  a,
const T *__restrict__  b,
const T *__restrict__  c,
const T  c1,
const T  c2,
const int  n 
)

Device kernel for add3s2

Definition at line 300 of file math_kernel.h.

◆ add4_kernel()

template<typename T >
__global__ void add4_kernel ( T *__restrict__  a,
const T *__restrict__  b,
const T *__restrict__  c,
const T *__restrict__  d,
const int  n 
)

Device kernel for add4

Definition at line 208 of file math_kernel.h.

◆ addcol3_kernel()

template<typename T >
__global__ void addcol3_kernel ( T *__restrict__  a,
const T *__restrict__  b,
const T *__restrict__  c,
const int  n 
)

Device kernel for addcol3

Definition at line 434 of file math_kernel.h.

◆ addcol4_kernel()

template<typename T >
__global__ void addcol4_kernel ( T *__restrict__  a,
const T *__restrict__  b,
const T *__restrict__  c,
const T *__restrict__  d,
const int  n 
)

Device kernel for addcol4

Definition at line 452 of file math_kernel.h.

◆ addsqr2s2_kernel()

template<typename T >
__global__ void addsqr2s2_kernel ( T *__restrict__  a,
const T *__restrict__  b,
const T  c1,
const int  n 
)

Device kernel for addsqr2s2

Definition at line 283 of file math_kernel.h.

◆ cadd2_kernel()

template<typename T >
__global__ void cadd2_kernel ( T *__restrict__  a,
T *__restrict__  b,
const T  c,
const int  n 
)

Device kernel for cadd2

Definition at line 142 of file math_kernel.h.

◆ cadd_kernel()

template<typename T >
__global__ void cadd_kernel ( T *__restrict__  a,
const T  c,
const int  n 
)

Device kernel for cadd

Definition at line 126 of file math_kernel.h.

◆ cfill_kernel()

template<typename T >
__global__ void cfill_kernel ( T *__restrict__  a,
const T  c,
const int  n 
)

Device kernel for cmult

Definition at line 159 of file math_kernel.h.

◆ cfill_mask_kernel()

template<typename T >
__global__ void cfill_mask_kernel ( T *__restrict__  a,
const T  c,
const int  size,
int *__restrict__  mask,
const int  mask_size 
)

Device kernel for cfill_mask

Definition at line 93 of file math_kernel.h.

◆ cmult2_kernel()

template<typename T >
__global__ void cmult2_kernel ( T *__restrict__  a,
T *__restrict__  b,
const T  c,
const int  n 
)

Device kernel for cmult2

Definition at line 109 of file math_kernel.h.

◆ cmult_kernel()

template<typename T >
__global__ void cmult_kernel ( T *__restrict__  a,
const T  c,
const int  n 
)

Device kernel for cmult

Definition at line 41 of file math_kernel.h.

◆ col2_kernel()

template<typename T >
__global__ void col2_kernel ( T *__restrict__  a,
const T *__restrict__  b,
const int  n 
)

Device kernel for col2

Definition at line 351 of file math_kernel.h.

◆ col3_kernel()

template<typename T >
__global__ void col3_kernel ( T *__restrict__  a,
const T *__restrict__  b,
const T *__restrict__  c,
const int  n 
)

Device kernel for col3

Definition at line 367 of file math_kernel.h.

◆ glsc2_kernel()

template<typename T >
__global__ void glsc2_kernel ( const T *  a,
const T *  b,
T *  buf_h,
const int  n 
)

Device kernel for glsc2

Definition at line 675 of file math_kernel.h.

Here is the call graph for this function:

◆ glsc3_kernel()

template<typename T >
__global__ void glsc3_kernel ( const T *  a,
const T *  b,
const T *  c,
T *  buf_h,
const int  n 
)

Device kernel for glsc3

Definition at line 598 of file math_kernel.h.

Here is the call graph for this function:

◆ glsc3_many_kernel()

template<typename T >
__global__ void glsc3_many_kernel ( const T *  a,
const T **  b,
const T *  c,
T *  buf_h,
const int  j,
const int  n 
)

Device kernel for glsc3 many

Definition at line 633 of file math_kernel.h.

Here is the call graph for this function:

◆ glsc3_reduce_kernel()

template<typename T >
__global__ void glsc3_reduce_kernel ( T *  bufred,
const int  n,
const int  j 
)

Reduction kernel for glsc3

Definition at line 564 of file math_kernel.h.

Here is the call graph for this function:

◆ glsum_kernel()

template<typename T >
__global__ void glsum_kernel ( const T *  a,
T *  buf_h,
const int  n 
)

Device kernel for glsum

Definition at line 709 of file math_kernel.h.

Here is the call graph for this function:

◆ invcol1_kernel()

template<typename T >
__global__ void invcol1_kernel ( T *__restrict__  a,
const int  n 
)

Device kernel for invcol1

Definition at line 319 of file math_kernel.h.

◆ invcol2_kernel()

template<typename T >
__global__ void invcol2_kernel ( T *__restrict__  a,
const T *__restrict__  b,
const int  n 
)

Device kernel for invcol2

Definition at line 335 of file math_kernel.h.

◆ masked_copy_kernel()

template<typename T >
__global__ void masked_copy_kernel ( T *__restrict__  a,
T *__restrict__  b,
int *__restrict__  mask,
const int  n,
const int  m 
)

Device kernel for masked copy

Definition at line 57 of file math_kernel.h.

◆ masked_red_copy_kernel()

template<typename T >
__global__ void masked_red_copy_kernel ( T *__restrict__  a,
T *__restrict__  b,
int *__restrict__  mask,
const int  n,
const int  m 
)

Device kernel for masked reduced copy

Definition at line 75 of file math_kernel.h.

◆ reduce_kernel()

template<typename T >
__global__ void reduce_kernel ( T *  bufred,
const int  n 
)

Vector reduction kernel

Definition at line 532 of file math_kernel.h.

Here is the call graph for this function:

◆ reduce_warp()

template<typename T >
__inline__ __device__ T reduce_warp ( val)

Warp shuffle reduction

Definition at line 518 of file math_kernel.h.

◆ sub2_kernel()

template<typename T >
__global__ void sub2_kernel ( T *__restrict__  a,
const T *__restrict__  b,
const int  n 
)

Device kernel for sub2

Definition at line 401 of file math_kernel.h.

◆ sub3_kernel()

template<typename T >
__global__ void sub3_kernel ( T *__restrict__  a,
const T *__restrict__  b,
const T *__restrict__  c,
const int  n 
)

Device kernel for sub3

Definition at line 417 of file math_kernel.h.

◆ subcol3_kernel()

template<typename T >
__global__ void subcol3_kernel ( T *__restrict__  a,
const T *__restrict__  b,
const T *__restrict__  c,
const int  n 
)

Device kernel for subcol3

Definition at line 384 of file math_kernel.h.

◆ vcross_kernel()

template<typename T >
__global__ void vcross_kernel ( T *__restrict__  u1,
T *__restrict__  u2,
T *__restrict__  u3,
const T *__restrict__  v1,
const T *__restrict__  v2,
const T *__restrict__  v3,
const T *__restrict__  w1,
const T *__restrict__  w2,
const T *__restrict__  w3,
const int  n 
)

Device kernel for vcross

Definition at line 493 of file math_kernel.h.

◆ vdot3_kernel()

template<typename T >
__global__ void vdot3_kernel ( T *__restrict__  dot,
const T *__restrict__  u1,
const T *__restrict__  u2,
const T *__restrict__  u3,
const T *__restrict__  v1,
const T *__restrict__  v2,
const T *__restrict__  v3,
const int  n 
)

Device kernel for vdot3

Definition at line 471 of file math_kernel.h.