Neko 0.9.99
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
ax_helm.hip File Reference
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <hip/hip_runtime.h>
#include <device/device_config.h>
#include <device/hip/check.h>
#include "ax_helm_kernel.h"
#include <common/neko_log.h>

Go to the source code of this file.

Macros

#define CASE_1D(LX)
 
#define CASE_KSTEP(LX)
 
#define CASE_KSTEP_PADDED(LX)
 
#define CASE(LX)
 
#define CASE_PADDED(LX)
 
#define CASE_VECTOR_KSTEP(LX)
 
#define CASE_VECTOR_KSTEP_PADDED(LX)
 
#define CASE_VECTOR(LX)
 
#define CASE_VECTOR_PADDED(LX)
 

Functions

template<const int >
int tune (void *w, void *u, void *dx, void *dy, void *dz, void *dxt, void *dyt, void *dzt, void *h1, void *g11, void *g22, void *g33, void *g12, void *g13, void *g23, int *nelv, int *lx)
 
template<const int >
int tune_padded (void *w, void *u, void *dx, void *dy, void *dz, void *dxt, void *dyt, void *dzt, void *h1, void *g11, void *g22, void *g33, void *g12, void *g13, void *g23, int *nelv, int *lx)
 
void hip_ax_helm (void *w, void *u, void *dx, void *dy, void *dz, void *dxt, void *dyt, void *dzt, void *h1, void *g11, void *g22, void *g33, void *g12, void *g13, void *g23, int *nelv, int *lx)
 
void hip_ax_helm_vector (void *au, void *av, void *aw, void *u, void *v, void *w, void *dx, void *dy, void *dz, void *dxt, void *dyt, void *dzt, void *h1, void *g11, void *g22, void *g33, void *g12, void *g13, void *g23, int *nelv, int *lx)
 
void hip_ax_helm_vector_part2 (void *au, void *av, void *aw, void *u, void *v, void *w, void *h2, void *B, int *n)
 

Macro Definition Documentation

◆ CASE

#define CASE (   LX)
Value:
case LX: \
if(autotune[LX] == 0 ) { \
dx, dy, dz, \
dxt, dyt, dzt,h1, \
g11, g22, g33, \
g12, g13, g23, nelv, lx); \
} else if (autotune[LX] == 1 ) { \
} else if (autotune[LX] == 2 ) { \
} \
break
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ w
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ u
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ dx
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ dz
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ h1
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ dy
__global__ void const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ dzt
__global__ void const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ dyt
__global__ void const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ dxt
__global__ void dirichlet_apply_scalar_kernel(const int *__restrict__ msk, T *__restrict__ x, const T g, const int m)
__global__ void const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ g23
__global__ void const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ g22
__global__ void const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ g13
__global__ void const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ g12
__global__ void const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ g33
__global__ void const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ const T *__restrict__ g11

◆ CASE_1D

#define CASE_1D (   LX)
Value:
(hipStream_t) glb_cmd_queue, \
(real *) w, (real *) u, \
(real *) dx, (real *) dy, (real *) dz, \
(real *) dxt, (real *) dyt, (real *) dzt, (real *) h1, \
(real *) g11, (real *) g22, (real *) g33, \
(real *) g12, (real *) g13, (real *) g23); \
double real

◆ CASE_KSTEP

#define CASE_KSTEP (   LX)
Value:
(hipStream_t) glb_cmd_queue, \
(real *) w, (real *) u, \
(real *) dx, (real *) dy, (real *) dz, (real *) h1, \
(real *) g11, (real *) g22, (real *) g33, \
(real *) g12, (real *) g13, (real *) g23); \

◆ CASE_KSTEP_PADDED

#define CASE_KSTEP_PADDED (   LX)
Value:

◆ CASE_PADDED

#define CASE_PADDED (   LX)
Value:
case LX: \
if(autotune[LX] == 0 ) { \
dx, dy, dz, \
dxt, dyt, dzt,h1, \
g11, g22, g33, \
g12, g13, g23,nelv,lx); \
} else if (autotune[LX] == 1 ) { \
} else if (autotune[LX] == 2 ) { \
} \
break

◆ CASE_VECTOR

#define CASE_VECTOR (   LX)
Value:
case LX: \
break

◆ CASE_VECTOR_KSTEP

#define CASE_VECTOR_KSTEP (   LX)
Value:
nblcks, nthrds, 0, \
(hipStream_t) glb_cmd_queue, \
(real *) au, (real *) av, (real *) aw, \
(real *) u, (real *) v, (real *) w, \
(real *) dx, (real *) dy, (real *) dz, (real *) h1, \
(real *) g11, (real *) g22, (real *) g33, \
(real *) g12, (real *) g13, (real *) g23); \
__global__ void T *__restrict__ T *__restrict__ aw
__global__ void T *__restrict__ av
__global__ void T *__restrict__ T *__restrict__ const T *__restrict__ const T *__restrict__ v

◆ CASE_VECTOR_KSTEP_PADDED

#define CASE_VECTOR_KSTEP_PADDED (   LX)
Value:
nblcks, nthrds, 0, \
(hipStream_t) glb_cmd_queue, \
(real *) au, (real *) av, (real *) aw, \
(real *) u, (real *) v, (real *) w, \
(real *) dx, (real *) dy, (real *) dz, (real *) h1, \
(real *) g11, (real *) g22, (real *) g33, \
(real *) g12, (real *) g13, (real *) g23); \

◆ CASE_VECTOR_PADDED

#define CASE_VECTOR_PADDED (   LX)
Value:
case LX: \
break

Function Documentation

◆ hip_ax_helm()

void hip_ax_helm ( void w,
void u,
void dx,
void dy,
void dz,
void dxt,
void dyt,
void dzt,
void h1,
void g11,
void g22,
void g33,
void g12,
void g13,
void g23,
int nelv,
int lx 
)

Fortran wrapper for device HIP Ax

Definition at line 64 of file ax_helm.hip.

Here is the call graph for this function:

◆ hip_ax_helm_vector()

void hip_ax_helm_vector ( void au,
void av,
void aw,
void u,
void v,
void w,
void dx,
void dy,
void dz,
void dxt,
void dyt,
void dzt,
void h1,
void g11,
void g22,
void g33,
void g12,
void g13,
void g23,
int nelv,
int lx 
)

Fortran wrapper for device HIP Ax vector version

Definition at line 163 of file ax_helm.hip.

Here is the call graph for this function:

◆ hip_ax_helm_vector_part2()

void hip_ax_helm_vector_part2 ( void au,
void av,
void aw,
void u,
void v,
void w,
void h2,
void B,
int n 
)

Fortran wrapper for device HIP Ax vector version part2

Definition at line 233 of file ax_helm.hip.

Here is the call graph for this function:

◆ tune()

template<const int >
int tune ( void w,
void u,
void dx,
void dy,
void dz,
void dxt,
void dyt,
void dzt,
void h1,
void g11,
void g22,
void g33,
void g12,
void g13,
void g23,
int nelv,
int lx 
)

Definition at line 251 of file ax_helm.hip.

Here is the call graph for this function:

◆ tune_padded()

template<const int >
int tune_padded ( void w,
void u,
void dx,
void dy,
void dz,
void dxt,
void dyt,
void dzt,
void h1,
void g11,
void g22,
void g33,
void g12,
void g13,
void g23,
int nelv,
int lx 
)

Definition at line 328 of file ax_helm.hip.

Here is the call graph for this function: