Built-in parameters are now added during compilation instead of defining them in CUDA sources. IMPORTANT: DCONST macro should no longer be used when accessing built-in variables. Now all uniforms are consistently accessed with the handle only
This commit is contained in:
@@ -506,11 +506,6 @@ traverse(const ASTNode* node)
|
|||||||
fprintf(CUDAHEADER, "%s", translate(node->postfix));
|
fprintf(CUDAHEADER, "%s", translate(node->postfix));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
gen_preprocessed_forward_declarations(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
generate_preprocessed_structures(void)
|
generate_preprocessed_structures(void)
|
||||||
{
|
{
|
||||||
@@ -688,6 +683,27 @@ main(int argc, char** argv)
|
|||||||
assert(DSLHEADER);
|
assert(DSLHEADER);
|
||||||
assert(CUDAHEADER);
|
assert(CUDAHEADER);
|
||||||
|
|
||||||
|
// Add built-in params
|
||||||
|
add_symbol(SYMBOLTYPE_OTHER, UNIFORM, INT, "AC_nx");
|
||||||
|
add_symbol(SYMBOLTYPE_OTHER, UNIFORM, INT, "AC_ny");
|
||||||
|
add_symbol(SYMBOLTYPE_OTHER, UNIFORM, INT, "AC_nz");
|
||||||
|
add_symbol(SYMBOLTYPE_OTHER, UNIFORM, INT, "AC_mx");
|
||||||
|
add_symbol(SYMBOLTYPE_OTHER, UNIFORM, INT, "AC_my");
|
||||||
|
add_symbol(SYMBOLTYPE_OTHER, UNIFORM, INT, "AC_mz");
|
||||||
|
add_symbol(SYMBOLTYPE_OTHER, UNIFORM, INT, "AC_nx_min");
|
||||||
|
add_symbol(SYMBOLTYPE_OTHER, UNIFORM, INT, "AC_ny_min");
|
||||||
|
add_symbol(SYMBOLTYPE_OTHER, UNIFORM, INT, "AC_nz_min");
|
||||||
|
add_symbol(SYMBOLTYPE_OTHER, UNIFORM, INT, "AC_nx_max");
|
||||||
|
add_symbol(SYMBOLTYPE_OTHER, UNIFORM, INT, "AC_ny_max");
|
||||||
|
add_symbol(SYMBOLTYPE_OTHER, UNIFORM, INT, "AC_nz_max");
|
||||||
|
add_symbol(SYMBOLTYPE_OTHER, UNIFORM, INT, "AC_mxy");
|
||||||
|
add_symbol(SYMBOLTYPE_OTHER, UNIFORM, INT, "AC_nxy");
|
||||||
|
add_symbol(SYMBOLTYPE_OTHER, UNIFORM, INT, "AC_nxyz");
|
||||||
|
|
||||||
|
add_symbol(SYMBOLTYPE_OTHER, UNIFORM, INT3, "AC_global_grid_n");
|
||||||
|
add_symbol(SYMBOLTYPE_OTHER, UNIFORM, INT3, "AC_multigpu_offset");
|
||||||
|
|
||||||
|
// Generate
|
||||||
traverse(root);
|
traverse(root);
|
||||||
generate_header();
|
generate_header();
|
||||||
generate_preprocessed_structures();
|
generate_preprocessed_structures();
|
||||||
|
@@ -71,26 +71,9 @@ typedef struct {
|
|||||||
#include "user_defines.h" // User-defined header
|
#include "user_defines.h" // User-defined header
|
||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
#define AC_FOR_BUILTIN_INT_PARAM_TYPES(FUNC)\
|
#define AC_FOR_BUILTIN_INT_PARAM_TYPES(FUNC)
|
||||||
FUNC(AC_nx), \
|
|
||||||
FUNC(AC_ny), \
|
|
||||||
FUNC(AC_nz), \
|
|
||||||
FUNC(AC_mx), \
|
|
||||||
FUNC(AC_my), \
|
|
||||||
FUNC(AC_mz), \
|
|
||||||
FUNC(AC_nx_min), \
|
|
||||||
FUNC(AC_ny_min), \
|
|
||||||
FUNC(AC_nz_min), \
|
|
||||||
FUNC(AC_nx_max), \
|
|
||||||
FUNC(AC_ny_max), \
|
|
||||||
FUNC(AC_nz_max), \
|
|
||||||
FUNC(AC_mxy),\
|
|
||||||
FUNC(AC_nxy),\
|
|
||||||
FUNC(AC_nxyz),\
|
|
||||||
|
|
||||||
#define AC_FOR_BUILTIN_INT3_PARAM_TYPES(FUNC)\
|
#define AC_FOR_BUILTIN_INT3_PARAM_TYPES(FUNC)
|
||||||
FUNC(AC_global_grid_n),\
|
|
||||||
FUNC(AC_multigpu_offset),
|
|
||||||
|
|
||||||
#define AC_FOR_BUILTIN_REAL_PARAM_TYPES(FUNC)
|
#define AC_FOR_BUILTIN_REAL_PARAM_TYPES(FUNC)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user