Skip to content

Commit

Permalink
fix CUDA build?
Browse files Browse the repository at this point in the history
Signed-off-by: Steven Hahn <hahnse@ornl.gov>
  • Loading branch information
quantumsteve committed Jul 3, 2024
1 parent d52242f commit a7f44ff
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 21 deletions.
20 changes: 4 additions & 16 deletions src/solver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -805,12 +805,6 @@ bicgstab_euler(const double dt, imex_flag imex,

#ifdef ASGARD_USE_CUDA
template gmres_info<double>
simple_gmres_euler(const double dt, imex_flag imex,
kron_operators<double> const &ops,
fk::vector<double, mem_type::owner, resource::device> &x,
fk::vector<double, mem_type::owner, resource::device> const &b,
int const restart, int const max_iter, double const tolerance);
template gmres_info<double>
bicgstab_euler(const double dt, imex_flag imex,
kron_operators<double> const &ops,
fk::vector<double, mem_type::owner, resource::device> &x,
Expand All @@ -819,17 +813,11 @@ bicgstab_euler(const double dt, imex_flag imex,

template gmres_info<double>
simple_gmres_euler(adapt::distributed_grid<double> const &adaptive_grid, int const elem_size,
const double dt, kron_operators<double> const &ops,
fk::vector<double> &x, fk::vector<double> const &b,
const double dt, imex_flag imex, kron_operators<double> const &ops,
fk::vector<double, mem_type::owner, resource::device> &x,
fk::vector<double, mem_type::owner, resource::device> const &b,
int const restart, int const max_iter,
double const tolerance);

template gmres_info<double> simple_gmres_euler(
adapt::distributed_grid<double> const &adaptive_grid, int const elem_size,
double const dt, kron_operators<double> const &ops,
fk::vector<double, mem_type::owner, resource::device> &x,
fk::vector<double, mem_type::owner, resource::device> const &b,
int const restart, int const max_iter, double const tolerance);
#endif

template int default_gmres_restarts<double>(int num_cols);
Expand Down Expand Up @@ -874,7 +862,7 @@ bicgstab_euler(const float dt, imex_flag imex,

#ifdef ASGARD_USE_CUDA
template gmres_info<float>
simple_gmres_euler(adapt::distributed_grid<double> const &adaptive_grid, int const elem_size,
simple_gmres_euler(adapt::distributed_grid<float> const &adaptive_grid, int const elem_size,
const float dt, imex_flag imex,
kron_operators<float> const &ops,
fk::vector<float, mem_type::owner, resource::device> &x,
Expand Down
2 changes: 1 addition & 1 deletion src/solver_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ void test_kronmult(parser const &parse, P const tol_factor)
int const restart = parser::DEFAULT_GMRES_INNER_ITERATIONS;
int const max_iter = parser::DEFAULT_GMRES_OUTER_ITERATIONS;
P const tolerance = std::is_same_v<float, P> ? 1e-6 : 1e-12;
solver::simple_gmres_euler(adaptive_grid, dt, imex_flag::unspecified, operator_matrices,
solver::simple_gmres_euler(adaptive_grid, elem_size, dt, imex_flag::unspecified, operator_matrices,
x_d, b_d, restart, max_iter, tolerance);
return x_d.clone_onto_host();
}();
Expand Down
8 changes: 4 additions & 4 deletions src/time_advance.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -528,22 +528,21 @@ imex_advance(PDE<P> &pde, kron_operators<P> &operator_matrices,
P const max = pde.get_dimensions()[0].domain_max;
int const N_elements = fm::two_raised_to(level);

auto nodes = gen_realspace_nodes(degree, level, min, max);
int const elem_size = static_cast<int>(std::pow(degree, pde.num_dims()));
auto nodes = gen_realspace_nodes(degree, level, min, max);
#ifdef ASGARD_USE_CUDA
fk::vector<P, mem_type::owner, imex_resrc> f = f_0.clone_onto_device();
fk::vector<P, mem_type::owner, imex_resrc> f_orig_dev =
f_0.clone_onto_device();
#else
fk::vector<P, mem_type::owner, imex_resrc> f = f_0;
fk::vector<P, mem_type::owner, imex_resrc> f_orig_dev = f_0;

#endif
auto const &plan = adaptive_grid.get_distrib_plan();
auto const &grid = adaptive_grid.get_subgrid(get_rank());
int const elem_size = static_cast<int>(std::pow(degree, pde.num_dims()));
int const A_local_rows = elem_size * grid.nrows();

fk::vector<P, mem_type::owner, imex_resrc> reduced_fx(A_local_rows);
#endif

// Create moment matrices that take DG function in (x,v) and transfer to DG
// function in x
Expand Down Expand Up @@ -818,6 +817,7 @@ imex_advance(PDE<P> &pde, kron_operators<P> &operator_matrices,
exchange_results(reduced_fx, fx, elem_size, plan, get_rank());
fm::axpy(fx, f, dt); // f here is f_1s
#else
ignore(plan);
fm::axpy(fx, f, dt); // f here is f_1s
#endif

Expand Down

0 comments on commit a7f44ff

Please sign in to comment.