MR: USER_PROVIDED
This commit is contained in:
@@ -57,13 +57,11 @@ extern "C" {
|
|||||||
#define MAX_TB_DIM (MAX_THREADS_PER_BLOCK)
|
#define MAX_TB_DIM (MAX_THREADS_PER_BLOCK)
|
||||||
#define NUM_ITERATIONS (10)
|
#define NUM_ITERATIONS (10)
|
||||||
#define WARP_SIZE (32)
|
#define WARP_SIZE (32)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* =============================================================================
|
* =============================================================================
|
||||||
* Compile-time constants used during simulation (user definable)
|
* Compile-time constants used during simulation (user definable)
|
||||||
* =============================================================================
|
* =============================================================================
|
||||||
*/
|
*/
|
||||||
#define STENCIL_ORDER (6)
|
|
||||||
|
|
||||||
///////////// PAD TEST
|
///////////// PAD TEST
|
||||||
// NOTE: works only with nx is divisible by 32
|
// NOTE: works only with nx is divisible by 32
|
||||||
@@ -74,10 +72,22 @@ extern "C" {
|
|||||||
// L-prefix inherited from the old Astaroth, no idea what it means
|
// L-prefix inherited from the old Astaroth, no idea what it means
|
||||||
// MV: L means a Logical switch variale, something having true of false value.
|
// MV: L means a Logical switch variale, something having true of false value.
|
||||||
// Note: forcing is disabled currently in the files generated by acc (compiler of our DSL)
|
// Note: forcing is disabled currently in the files generated by acc (compiler of our DSL)
|
||||||
|
//
|
||||||
|
#include "user.h"
|
||||||
|
|
||||||
|
#ifndef USER_PROVIDED
|
||||||
|
|
||||||
|
#define STENCIL_ORDER (6)
|
||||||
|
#define NGHOST (STENCIL_ORDER/2)
|
||||||
|
#define LHYDRO (1)
|
||||||
|
#define LDENSITY (1)
|
||||||
#define LFORCING (1)
|
#define LFORCING (1)
|
||||||
#define LINDUCTION (1)
|
#define LINDUCTION (1)
|
||||||
#define LENTROPY (1)
|
#define LENTROPY (1)
|
||||||
#define LTEMPERATURE (0)
|
#define LTEMPERATURE (0)
|
||||||
|
#define LMAGNETIC LINDUCTION
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#define AC_THERMAL_CONDUCTIVITY (AcReal(0.001)) // TODO: make an actual config parameter
|
#define AC_THERMAL_CONDUCTIVITY (AcReal(0.001)) // TODO: make an actual config parameter
|
||||||
|
|
||||||
@@ -177,14 +187,30 @@ extern "C" {
|
|||||||
* =============================================================================
|
* =============================================================================
|
||||||
*/
|
*/
|
||||||
// clang-format off
|
// clang-format off
|
||||||
|
#ifdef LHYDRO
|
||||||
#define AC_FOR_HYDRO_VTXBUF_HANDLES(FUNC) \
|
#define AC_FOR_HYDRO_VTXBUF_HANDLES(FUNC) \
|
||||||
FUNC(VTXBUF_LNRHO), \
|
|
||||||
FUNC(VTXBUF_UUX), \
|
FUNC(VTXBUF_UUX), \
|
||||||
FUNC(VTXBUF_UUY), \
|
FUNC(VTXBUF_UUY), \
|
||||||
FUNC(VTXBUF_UUZ), \
|
FUNC(VTXBUF_UUZ),
|
||||||
// FUNC(VTXBUF_DYE),
|
#else
|
||||||
|
#define AC_FOR_HYDRO_VTXBUF_HANDLES(FUNC)
|
||||||
|
#endif
|
||||||
|
|
||||||
#if LINDUCTION
|
#ifdef LDENSITY
|
||||||
|
#define AC_FOR_DENSITY_VTXBUF_HANDLES(FUNC) \
|
||||||
|
FUNC(VTXBUF_DENSITY),
|
||||||
|
#else
|
||||||
|
#define AC_FOR_DENSITY_VTXBUF_HANDLES(FUNC)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef LENTROPY
|
||||||
|
#define AC_FOR_ENTROPY_VTXBUF_HANDLES(FUNC) \
|
||||||
|
FUNC(VTXBUF_ENTROPY),
|
||||||
|
#else
|
||||||
|
#define AC_FOR_ENTROPY_VTXBUF_HANDLES(FUNC)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef LMAGNETIC
|
||||||
#define AC_FOR_INDUCTION_VTXBUF_HANDLES(FUNC) \
|
#define AC_FOR_INDUCTION_VTXBUF_HANDLES(FUNC) \
|
||||||
FUNC(VTXBUF_AX), \
|
FUNC(VTXBUF_AX), \
|
||||||
FUNC(VTXBUF_AY), \
|
FUNC(VTXBUF_AY), \
|
||||||
@@ -193,25 +219,22 @@ extern "C" {
|
|||||||
#define AC_FOR_INDUCTION_VTXBUF_HANDLES(FUNC)
|
#define AC_FOR_INDUCTION_VTXBUF_HANDLES(FUNC)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if LENTROPY
|
#define AC_FOR_VTXBUF_HANDLES(FUNC) AC_FOR_HYDRO_VTXBUF_HANDLES(FUNC) \
|
||||||
#define AC_FOR_ENTROPY_VTXBUF_HANDLES(FUNC)\
|
AC_FOR_DENSITY_VTXBUF_HANDLES(FUNC) \
|
||||||
FUNC(VTXBUF_ENTROPY),
|
AC_FOR_ENTROPY_VTXBUF_HANDLES(FUNC) \
|
||||||
#else
|
AC_FOR_INDUCTION_VTXBUF_HANDLES(FUNC) \
|
||||||
#define AC_FOR_ENTROPY_VTXBUF_HANDLES(FUNC)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
//MR: Temperature must not have an additional variable slot, but should sit on the
|
||||||
|
// same as entropy.
|
||||||
|
#ifndef USER_PROVIDED
|
||||||
#if LTEMPERATURE
|
#if LTEMPERATURE
|
||||||
#define AC_FOR_TEMPERATURE_VTXBUF_HANDLES(FUNC)\
|
#define AC_FOR_TEMPERATURE_VTXBUF_HANDLES(FUNC)\
|
||||||
FUNC(VTXBUF_TEMPERATURE),
|
FUNC(VTXBUF_TEMPERATURE),
|
||||||
#else
|
#else
|
||||||
#define AC_FOR_TEMPERATURE_VTXBUF_HANDLES(FUNC)
|
#define AC_FOR_TEMPERATURE_VTXBUF_HANDLES(FUNC)
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#define AC_FOR_VTXBUF_HANDLES(FUNC)\
|
|
||||||
AC_FOR_HYDRO_VTXBUF_HANDLES(FUNC)\
|
|
||||||
AC_FOR_INDUCTION_VTXBUF_HANDLES(FUNC)\
|
|
||||||
AC_FOR_ENTROPY_VTXBUF_HANDLES(FUNC)\
|
|
||||||
AC_FOR_TEMPERATURE_VTXBUF_HANDLES(FUNC)
|
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -267,6 +290,7 @@ typedef enum { RTYPE_MAX, RTYPE_MIN, RTYPE_RMS, RTYPE_RMS_EXP, NUM_REDUCTION_TYP
|
|||||||
typedef enum { AC_FOR_INT_PARAM_TYPES(AC_GEN_ID), NUM_INT_PARAM_TYPES } AcIntParam;
|
typedef enum { AC_FOR_INT_PARAM_TYPES(AC_GEN_ID), NUM_INT_PARAM_TYPES } AcIntParam;
|
||||||
|
|
||||||
typedef enum { AC_FOR_REAL_PARAM_TYPES(AC_GEN_ID), NUM_REAL_PARAM_TYPES } AcRealParam;
|
typedef enum { AC_FOR_REAL_PARAM_TYPES(AC_GEN_ID), NUM_REAL_PARAM_TYPES } AcRealParam;
|
||||||
|
//typedef enum { AC_FOR_VEC_PARAM_TYPES(AC_GEN_ID), NUM_VEC_PARAM_TYPES } AcVecParam;
|
||||||
|
|
||||||
extern const char* intparam_names[]; // Defined in astaroth.cu
|
extern const char* intparam_names[]; // Defined in astaroth.cu
|
||||||
extern const char* realparam_names[]; // Defined in astaroth.cu
|
extern const char* realparam_names[]; // Defined in astaroth.cu
|
||||||
@@ -274,6 +298,7 @@ extern const char* realparam_names[]; // Defined in astaroth.cu
|
|||||||
typedef struct {
|
typedef struct {
|
||||||
int int_params[NUM_INT_PARAM_TYPES];
|
int int_params[NUM_INT_PARAM_TYPES];
|
||||||
AcReal real_params[NUM_REAL_PARAM_TYPES];
|
AcReal real_params[NUM_REAL_PARAM_TYPES];
|
||||||
|
//AcReal* vec_params[NUM_VEC_PARAM_TYPES];
|
||||||
} AcMeshInfo;
|
} AcMeshInfo;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -327,6 +352,8 @@ initialization of *all memory needed on all GPUs in the node*. In other words,
|
|||||||
setups everything GPU-side so that calling any other GPU interface function
|
setups everything GPU-side so that calling any other GPU interface function
|
||||||
afterwards does not result in illegal memory accesses. */
|
afterwards does not result in illegal memory accesses. */
|
||||||
AcResult acInit(const AcMeshInfo& mesh_info);
|
AcResult acInit(const AcMeshInfo& mesh_info);
|
||||||
|
AcResult acCheckDeviceAvail();
|
||||||
|
AcResult acInitialize(const AcMeshInfo& mesh_info);
|
||||||
|
|
||||||
/** Splits the host_mesh and distributes it among the GPUs in the node */
|
/** Splits the host_mesh and distributes it among the GPUs in the node */
|
||||||
AcResult acLoad(const AcMesh& host_mesh);
|
AcResult acLoad(const AcMesh& host_mesh);
|
||||||
|
|||||||
Reference in New Issue
Block a user