Skip to content

Commit 2c0d800

Browse files
committed
hip/magma - add kernel name for debugging
1 parent a58baec commit 2c0d800

9 files changed

Lines changed: 79 additions & 74 deletions

backends/hip-gen/ceed-hip-gen-operator-build.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1662,8 +1662,8 @@ extern "C" int CeedOperatorBuildKernel_Hip_gen(CeedOperator op, bool *is_good_bu
16621662
bool is_compile_good = false;
16631663

16641664
data->thread_1d = block_sizes[0];
1665-
CeedCallBackend(CeedTryCompile_Hip(ceed, code.str().c_str(), &is_compile_good, &data->module, 2, "OP_T_1D", block_sizes[0], "BLOCK_SIZE",
1666-
block_sizes[0] * block_sizes[1] * block_sizes[2]));
1665+
CeedCallBackend(CeedTryCompile_Hip(ceed, code.str().c_str(), (std::string("operator_") + qfunction_name).c_str(), &is_compile_good, &data->module,
1666+
2, "OP_T_1D", block_sizes[0], "BLOCK_SIZE", block_sizes[0] * block_sizes[1] * block_sizes[2]));
16671667
if (is_compile_good) {
16681668
*is_good_build = true;
16691669
CeedCallBackend(CeedGetKernel_Hip(ceed, data->module, operator_name.c_str(), &data->op));
@@ -2140,9 +2140,9 @@ static int CeedOperatorBuildKernelAssemblyAtPoints_Hip_gen(CeedOperator op, bool
21402140
bool is_compile_good = false;
21412141

21422142
data->thread_1d = block_sizes[0];
2143-
CeedCallBackend(CeedTryCompile_Hip(ceed, code.str().c_str(), &is_compile_good,
2144-
is_full ? &data->module_assemble_full : &data->module_assemble_diagonal, 2, "OP_T_1D", block_sizes[0],
2145-
"BLOCK_SIZE", block_sizes[0] * block_sizes[1] * block_sizes[2]));
2143+
CeedCallBackend(CeedTryCompile_Hip(ceed, code.str().c_str(), (std::string("operator_assembly_at_points") + qfunction_name).c_str(),
2144+
&is_compile_good, is_full ? &data->module_assemble_full : &data->module_assemble_diagonal, 2, "OP_T_1D",
2145+
block_sizes[0], "BLOCK_SIZE", block_sizes[0] * block_sizes[1] * block_sizes[2]));
21462146
if (is_compile_good) {
21472147
*is_good_build = true;
21482148
CeedCallBackend(CeedGetKernel_Hip(ceed, is_full ? data->module_assemble_full : data->module_assemble_diagonal, operator_name.c_str(),
@@ -2726,8 +2726,9 @@ extern "C" int CeedOperatorBuildKernelLinearAssembleQFunction_Hip_gen(CeedOperat
27262726
bool is_compile_good = false;
27272727

27282728
data->thread_1d = block_sizes[0];
2729-
CeedCallBackend(CeedTryCompile_Hip(ceed, code.str().c_str(), &is_compile_good, &data->module_assemble_qfunction, 2, "OP_T_1D", block_sizes[0],
2730-
"BLOCK_SIZE", block_sizes[0] * block_sizes[1] * block_sizes[2]));
2729+
CeedCallBackend(CeedTryCompile_Hip(ceed, code.str().c_str(), (std::string("operator_assembly") + qfunction_name).c_str(), &is_compile_good,
2730+
&data->module_assemble_qfunction, 2, "OP_T_1D", block_sizes[0], "BLOCK_SIZE",
2731+
block_sizes[0] * block_sizes[1] * block_sizes[2]));
27312732
if (is_compile_good) {
27322733
*is_good_build = true;
27332734
CeedCallBackend(CeedGetKernel_Hip(ceed, data->module_assemble_qfunction, operator_name.c_str(), &data->assemble_qfunction));

backends/hip-ref/ceed-hip-ref-basis.c

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -180,9 +180,9 @@ static int CeedBasisApplyAtPointsCore_Hip(CeedBasis basis, bool apply_add, const
180180

181181
if (data->moduleAtPoints) CeedCallHip(ceed, hipModuleUnload(data->moduleAtPoints));
182182
CeedCallBackend(CeedBasisGetNumComponents(basis, &num_comp));
183-
CeedCallBackend(CeedCompile_Hip(ceed, basis_kernel_source, &data->moduleAtPoints, 9, "BASIS_Q_1D", Q_1d, "BASIS_P_1D", P_1d, "BASIS_BUF_LEN",
184-
Q_1d * CeedIntPow(Q_1d > P_1d ? Q_1d : P_1d, dim - 1), "BASIS_DIM", dim, "BASIS_NUM_COMP", num_comp,
185-
"BASIS_NUM_NODES", CeedIntPow(P_1d, dim), "BASIS_NUM_QPTS", CeedIntPow(Q_1d, dim), "BASIS_NUM_PTS",
183+
CeedCallBackend(CeedCompile_Hip(ceed, basis_kernel_source, "basis_at_points", &data->moduleAtPoints, 9, "BASIS_Q_1D", Q_1d, "BASIS_P_1D", P_1d,
184+
"BASIS_BUF_LEN", Q_1d * CeedIntPow(Q_1d > P_1d ? Q_1d : P_1d, dim - 1), "BASIS_DIM", dim, "BASIS_NUM_COMP",
185+
num_comp, "BASIS_NUM_NODES", CeedIntPow(P_1d, dim), "BASIS_NUM_QPTS", CeedIntPow(Q_1d, dim), "BASIS_NUM_PTS",
186186
max_num_points, "POINTS_BUFF_LEN", CeedIntPow(Q_1d, dim - 1)));
187187
CeedCallBackend(CeedGetKernel_Hip(ceed, data->moduleAtPoints, "InterpAtPoints", &data->InterpAtPoints));
188188
CeedCallBackend(CeedGetKernel_Hip(ceed, data->moduleAtPoints, "InterpTransposeAtPoints", &data->InterpTransposeAtPoints));
@@ -420,9 +420,9 @@ int CeedBasisCreateTensorH1_Hip(CeedInt dim, CeedInt P_1d, CeedInt Q_1d, const C
420420
const char basis_kernel_source[] = "// Tensor basis source\n#include <ceed/jit-source/hip/hip-ref-basis-tensor.h>\n";
421421

422422
CeedCallBackend(CeedBasisGetNumComponents(basis, &num_comp));
423-
CeedCallBackend(CeedCompile_Hip(ceed, basis_kernel_source, &data->module, 7, "BASIS_Q_1D", Q_1d, "BASIS_P_1D", P_1d, "BASIS_BUF_LEN",
424-
Q_1d * CeedIntPow(Q_1d > P_1d ? Q_1d : P_1d, dim - 1), "BASIS_DIM", dim, "BASIS_NUM_COMP", num_comp,
425-
"BASIS_NUM_NODES", CeedIntPow(P_1d, dim), "BASIS_NUM_QPTS", CeedIntPow(Q_1d, dim)));
423+
CeedCallBackend(CeedCompile_Hip(ceed, basis_kernel_source, "basis_h1_tensor", &data->module, 7, "BASIS_Q_1D", Q_1d, "BASIS_P_1D", P_1d,
424+
"BASIS_BUF_LEN", Q_1d * CeedIntPow(Q_1d > P_1d ? Q_1d : P_1d, dim - 1), "BASIS_DIM", dim, "BASIS_NUM_COMP",
425+
num_comp, "BASIS_NUM_NODES", CeedIntPow(P_1d, dim), "BASIS_NUM_QPTS", CeedIntPow(Q_1d, dim)));
426426
CeedCallBackend(CeedGetKernel_Hip(ceed, data->module, "Interp", &data->Interp));
427427
CeedCallBackend(CeedGetKernel_Hip(ceed, data->module, "Grad", &data->Grad));
428428
CeedCallBackend(CeedGetKernel_Hip(ceed, data->module, "Weight", &data->Weight));
@@ -476,8 +476,8 @@ int CeedBasisCreateH1_Hip(CeedElemTopology topo, CeedInt dim, CeedInt num_nodes,
476476
const char basis_kernel_source[] = "// Nontensor basis source\n#include <ceed/jit-source/hip/hip-ref-basis-nontensor.h>\n";
477477

478478
CeedCallBackend(CeedBasisGetNumComponents(basis, &num_comp));
479-
CeedCallBackend(CeedCompile_Hip(ceed, basis_kernel_source, &data->module, 5, "BASIS_Q", num_qpts, "BASIS_P", num_nodes, "BASIS_Q_COMP_INTERP",
480-
q_comp_interp, "BASIS_Q_COMP_DERIV", q_comp_grad, "BASIS_NUM_COMP", num_comp));
479+
CeedCallBackend(CeedCompile_Hip(ceed, basis_kernel_source, "basis_h1_nontensor", &data->module, 5, "BASIS_Q", num_qpts, "BASIS_P", num_nodes,
480+
"BASIS_Q_COMP_INTERP", q_comp_interp, "BASIS_Q_COMP_DERIV", q_comp_grad, "BASIS_NUM_COMP", num_comp));
481481
CeedCallBackend(CeedGetKernel_Hip(ceed, data->module, "Interp", &data->Interp));
482482
CeedCallBackend(CeedGetKernel_Hip(ceed, data->module, "InterpTranspose", &data->InterpTranspose));
483483
CeedCallBackend(CeedGetKernel_Hip(ceed, data->module, "Deriv", &data->Deriv));
@@ -531,8 +531,8 @@ int CeedBasisCreateHdiv_Hip(CeedElemTopology topo, CeedInt dim, CeedInt num_node
531531
const char basis_kernel_source[] = "// Nontensor basis source\n#include <ceed/jit-source/hip/hip-ref-basis-nontensor.h>\n";
532532

533533
CeedCallBackend(CeedBasisGetNumComponents(basis, &num_comp));
534-
CeedCallBackend(CeedCompile_Hip(ceed, basis_kernel_source, &data->module, 5, "BASIS_Q", num_qpts, "BASIS_P", num_nodes, "BASIS_Q_COMP_INTERP",
535-
q_comp_interp, "BASIS_Q_COMP_DERIV", q_comp_div, "BASIS_NUM_COMP", num_comp));
534+
CeedCallBackend(CeedCompile_Hip(ceed, basis_kernel_source, "basis_h_div", &data->module, 5, "BASIS_Q", num_qpts, "BASIS_P", num_nodes,
535+
"BASIS_Q_COMP_INTERP", q_comp_interp, "BASIS_Q_COMP_DERIV", q_comp_div, "BASIS_NUM_COMP", num_comp));
536536
CeedCallBackend(CeedGetKernel_Hip(ceed, data->module, "Interp", &data->Interp));
537537
CeedCallBackend(CeedGetKernel_Hip(ceed, data->module, "InterpTranspose", &data->InterpTranspose));
538538
CeedCallBackend(CeedGetKernel_Hip(ceed, data->module, "Deriv", &data->Deriv));
@@ -586,8 +586,8 @@ int CeedBasisCreateHcurl_Hip(CeedElemTopology topo, CeedInt dim, CeedInt num_nod
586586
const char basis_kernel_source[] = "// Nontensor basis source\n#include <ceed/jit-source/hip/hip-ref-basis-nontensor.h>\n";
587587

588588
CeedCallBackend(CeedBasisGetNumComponents(basis, &num_comp));
589-
CeedCallBackend(CeedCompile_Hip(ceed, basis_kernel_source, &data->module, 5, "BASIS_Q", num_qpts, "BASIS_P", num_nodes, "BASIS_Q_COMP_INTERP",
590-
q_comp_interp, "BASIS_Q_COMP_DERIV", q_comp_curl, "BASIS_NUM_COMP", num_comp));
589+
CeedCallBackend(CeedCompile_Hip(ceed, basis_kernel_source, "basis_h_curl", &data->module, 5, "BASIS_Q", num_qpts, "BASIS_P", num_nodes,
590+
"BASIS_Q_COMP_INTERP", q_comp_interp, "BASIS_Q_COMP_DERIV", q_comp_curl, "BASIS_NUM_COMP", num_comp));
591591
CeedCallBackend(CeedGetKernel_Hip(ceed, data->module, "Interp", &data->Interp));
592592
CeedCallBackend(CeedGetKernel_Hip(ceed, data->module, "InterpTranspose", &data->InterpTranspose));
593593
CeedCallBackend(CeedGetKernel_Hip(ceed, data->module, "Deriv", &data->Deriv));

backends/hip-ref/ceed-hip-ref-operator.c

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1404,9 +1404,10 @@ static inline int CeedOperatorAssembleDiagonalSetupCompile_Hip(CeedOperator op,
14041404
CeedCallBackend(CeedBasisGetNumComponents(basis_in, &num_comp));
14051405
if (basis_in == CEED_BASIS_NONE) num_qpts = num_nodes;
14061406
else CeedCallBackend(CeedBasisGetNumQuadraturePoints(basis_in, &num_qpts));
1407-
CeedCallHip(ceed, CeedCompile_Hip(ceed, diagonal_kernel_source, module, 8, "NUM_EVAL_MODES_IN", num_eval_modes_in, "NUM_EVAL_MODES_OUT",
1408-
num_eval_modes_out, "NUM_COMP", num_comp, "NUM_NODES", num_nodes, "NUM_QPTS", num_qpts, "USE_CEEDSIZE",
1409-
use_ceedsize_idx, "USE_POINT_BLOCK", is_point_block ? 1 : 0, "BLOCK_SIZE", num_nodes * elems_per_block));
1407+
CeedCallHip(ceed, CeedCompile_Hip(ceed, diagonal_kernel_source, "operator_diagonal_assembly", module, 8, "NUM_EVAL_MODES_IN", num_eval_modes_in,
1408+
"NUM_EVAL_MODES_OUT", num_eval_modes_out, "NUM_COMP", num_comp, "NUM_NODES", num_nodes, "NUM_QPTS", num_qpts,
1409+
"USE_CEEDSIZE", use_ceedsize_idx, "USE_POINT_BLOCK", is_point_block ? 1 : 0, "BLOCK_SIZE",
1410+
num_nodes * elems_per_block));
14101411
CeedCallHip(ceed, CeedGetKernel_Hip(ceed, *module, "LinearDiagonal", is_point_block ? &diag->LinearPointBlock : &diag->LinearDiagonal));
14111412
CeedCallBackend(CeedDestroy(&ceed));
14121413
CeedCallBackend(CeedBasisDestroy(&basis_in));
@@ -1625,11 +1626,11 @@ static int CeedOperatorAssembleSingleBlockSetup_Hip(CeedOperator op, CeedInt act
16251626

16261627
CeedCallBackend(CeedElemRestrictionGetNumComponents(rstr_in, &num_comp_in));
16271628
CeedCallBackend(CeedElemRestrictionGetNumComponents(rstr_out, &num_comp_out));
1628-
CeedCallBackend(CeedCompile_Hip(ceed, source, &asmb->module, 11, "NUM_EVAL_MODES_IN", num_eval_modes_in, "NUM_EVAL_MODES_OUT", num_eval_modes_out,
1629-
"NUM_COMP_IN", num_comp_in, "NUM_COMP_OUT", num_comp_out, "TOTAL_NUM_COMP_OUT", num_output_components,
1630-
"NUM_NODES_IN", elem_size_in, "NUM_NODES_OUT", elem_size_out, "NUM_QPTS", num_qpts_in, "BLOCK_SIZE",
1631-
asmb->block_size_x * asmb->block_size_y * asmb->elems_per_block, "BLOCK_SIZE_Y", asmb->block_size_y, "USE_CEEDSIZE",
1632-
use_ceedsize_idx));
1629+
CeedCallBackend(CeedCompile_Hip(ceed, source, "operator_block_assembly", &asmb->module, 11, "NUM_EVAL_MODES_IN", num_eval_modes_in,
1630+
"NUM_EVAL_MODES_OUT", num_eval_modes_out, "NUM_COMP_IN", num_comp_in, "NUM_COMP_OUT", num_comp_out,
1631+
"TOTAL_NUM_COMP_OUT", num_output_components, "NUM_NODES_IN", elem_size_in, "NUM_NODES_OUT", elem_size_out,
1632+
"NUM_QPTS", num_qpts_in, "BLOCK_SIZE", asmb->block_size_x * asmb->block_size_y * asmb->elems_per_block,
1633+
"BLOCK_SIZE_Y", asmb->block_size_y, "USE_CEEDSIZE", use_ceedsize_idx));
16331634
CeedCallBackend(CeedGetKernel_Hip(ceed, asmb->module, "LinearAssembleBlock", &asmb->LinearAssemble));
16341635

16351636
// Load into B_in, in order that they will be used in eval_modes_in
@@ -1768,9 +1769,9 @@ static int CeedOperatorAssembleSingleSetup_Hip(CeedOperator op, CeedInt use_ceed
17681769

17691770
CeedCallBackend(CeedElemRestrictionGetNumComponents(rstr_in, &num_comp_in));
17701771
CeedCallBackend(CeedElemRestrictionGetNumComponents(rstr_out, &num_comp_out));
1771-
CeedCallBackend(CeedCompile_Hip(ceed, assembly_kernel_source, &asmb->module, 10, "NUM_EVAL_MODES_IN", num_eval_modes_in, "NUM_EVAL_MODES_OUT",
1772-
num_eval_modes_out, "NUM_COMP_IN", num_comp_in, "NUM_COMP_OUT", num_comp_out, "NUM_NODES_IN", elem_size_in,
1773-
"NUM_NODES_OUT", elem_size_out, "NUM_QPTS", num_qpts_in, "BLOCK_SIZE",
1772+
CeedCallBackend(CeedCompile_Hip(ceed, assembly_kernel_source, "operator_assembly", &asmb->module, 10, "NUM_EVAL_MODES_IN", num_eval_modes_in,
1773+
"NUM_EVAL_MODES_OUT", num_eval_modes_out, "NUM_COMP_IN", num_comp_in, "NUM_COMP_OUT", num_comp_out, "NUM_NODES_IN",
1774+
elem_size_in, "NUM_NODES_OUT", elem_size_out, "NUM_QPTS", num_qpts_in, "BLOCK_SIZE",
17741775
asmb->block_size_x * asmb->block_size_y * asmb->elems_per_block, "BLOCK_SIZE_Y", asmb->block_size_y, "USE_CEEDSIZE",
17751776
use_ceedsize_idx));
17761777
CeedCallBackend(CeedGetKernel_Hip(ceed, asmb->module, "LinearAssemble", &asmb->LinearAssemble));

backends/hip-ref/ceed-hip-ref-qfunction-load.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,8 @@ extern "C" int CeedQFunctionBuildKernel_Hip_ref(CeedQFunction qf) {
110110
code << "}\n";
111111

112112
// Compile kernel
113-
CeedCallBackend(CeedCompile_Hip(ceed, code.str().c_str(), &data->module, 1, "BLOCK_SIZE", ceed_Hip->opt_block_size));
113+
CeedCallBackend(CeedCompile_Hip(ceed, code.str().c_str(), (std::string("qfunction_") + qfunction_name).c_str(), &data->module, 1, "BLOCK_SIZE",
114+
ceed_Hip->opt_block_size));
114115
CeedCallBackend(CeedGetKernel_Hip(ceed, data->module, kernel_name.c_str(), &data->QFunction));
115116
CeedCallBackend(CeedDestroy(&ceed));
116117
return CEED_ERROR_SUCCESS;

0 commit comments

Comments
 (0)