From c2ac3f8a00c6765bc6e51973d43e26a322052e09 Mon Sep 17 00:00:00 2001 From: Pratik Nayak Date: Tue, 21 Jun 2022 09:51:17 +0200 Subject: [PATCH] Array to array fixes --- .../multigrid/uniform_coarsening_kernels.cpp | 4 +-- core/multigrid/uniform_coarsening_kernels.hpp | 4 +-- .../multigrid-preconditioned-solver.cpp | 36 +++++++++---------- .../core/multigrid/uniform_coarsening.hpp | 2 +- .../multigrid/uniform_coarsening_kernels.cpp | 4 +-- test/multigrid/uniform_coarsening_kernels.cpp | 14 ++++---- 6 files changed, 31 insertions(+), 33 deletions(-) diff --git a/common/unified/multigrid/uniform_coarsening_kernels.cpp b/common/unified/multigrid/uniform_coarsening_kernels.cpp index 27628cd6fd3..777c022ddba 100644 --- a/common/unified/multigrid/uniform_coarsening_kernels.cpp +++ b/common/unified/multigrid/uniform_coarsening_kernels.cpp @@ -54,7 +54,7 @@ namespace uniform_coarsening { template void fill_restrict_op(std::shared_ptr exec, - const Array* coarse_rows, + const array* coarse_rows, matrix::Csr* restrict_op) { run_kernel( @@ -76,7 +76,7 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( template void fill_incremental_indices(std::shared_ptr exec, size_type num_jumps, - Array* coarse_rows) + array* coarse_rows) { IndexType num_elems = (coarse_rows->get_num_elems()); run_kernel( diff --git a/core/multigrid/uniform_coarsening_kernels.hpp b/core/multigrid/uniform_coarsening_kernels.hpp index 37a797eee25..24677137b71 100644 --- a/core/multigrid/uniform_coarsening_kernels.hpp +++ b/core/multigrid/uniform_coarsening_kernels.hpp @@ -54,13 +54,13 @@ namespace uniform_coarsening { #define GKO_DECLARE_UNIFORM_COARSENING_FILL_RESTRICT_OP(ValueType, IndexType) \ void fill_restrict_op(std::shared_ptr exec, \ - const Array* coarse_rows, \ + const array* coarse_rows, \ matrix::Csr* restrict_op) #define GKO_DECLARE_UNIFORM_COARSENING_FILL_INCREMENTAL_INDICES(IndexType) \ void fill_incremental_indices(std::shared_ptr exec, \ size_type num_jumps, \ - Array* coarse_rows) + array* coarse_rows) #define GKO_DECLARE_ALL_AS_TEMPLATES \ diff --git a/examples/multigrid-preconditioned-solver/multigrid-preconditioned-solver.cpp b/examples/multigrid-preconditioned-solver/multigrid-preconditioned-solver.cpp index 90b80400364..a81961c2ae8 100644 --- a/examples/multigrid-preconditioned-solver/multigrid-preconditioned-solver.cpp +++ b/examples/multigrid-preconditioned-solver/multigrid-preconditioned-solver.cpp @@ -153,8 +153,8 @@ int main(int argc, char* argv[]) // Prepare the stopping criteria const gko::remove_complex tolerance = 1e-8; - auto iter_stop = - gko::share(gko::stop::Iteration::build().with_max_iters(100u).on(exec)); + auto iter_stop = gko::share( + gko::stop::Iteration::build().with_max_iters(1000u).on(exec)); auto tol_stop = gko::share(gko::stop::AbsoluteResidualNorm::build() .with_tolerance(tolerance) @@ -196,33 +196,31 @@ int main(int argc, char* argv[]) .with_min_coarse_rows(10u) .with_pre_smoother(smoother_gen) .with_post_uses_pre(true) - .with_mg_level(gko::share(mg_level_gen)) + .with_mg_level(mg_level_gen) .with_coarsest_solver(coarsest_gen) .with_zero_guess(true) .with_criteria(iter_stop, tol_stop) .on(exec)); if (use_uniform_coarsening) { std::cout << "Using Uniform Coarsening" << std::endl; - multigrid_gen = - gko::share(mg::build() - .with_max_levels(10u) - .with_min_coarse_rows(10u) - .with_pre_smoother(smoother_gen) - .with_post_uses_pre(true) - .with_mg_level(gko::share(coarse_unif_gen)) - .with_coarsest_solver(coarsest_gen) - .with_zero_guess(true) - .with_criteria(iter_stop, tol_stop) - .on(exec)); + multigrid_gen = gko::share(mg::build() + .with_max_levels(10u) + .with_min_coarse_rows(10u) + .with_pre_smoother(smoother_gen) + .with_post_uses_pre(true) + .with_mg_level(coarse_unif_gen) + .with_coarsest_solver(coarsest_gen) + .with_zero_guess(true) + .with_criteria(iter_stop, tol_stop) + .on(exec)); } else { std::cout << "Using AMGX " << std::endl; } // Create solver factory - auto solver_gen = - cg::build() - .with_criteria(gko::share(iter_stop), gko::share(tol_stop)) - .with_preconditioner(multigrid_gen) - .on(exec); + auto solver_gen = cg::build() + .with_criteria(iter_stop, tol_stop) + .with_preconditioner(multigrid_gen) + .on(exec); // Create solver std::chrono::nanoseconds gen_time(0); auto gen_tic = std::chrono::steady_clock::now(); diff --git a/include/ginkgo/core/multigrid/uniform_coarsening.hpp b/include/ginkgo/core/multigrid/uniform_coarsening.hpp index 6a4fb18193d..be979cd1069 100644 --- a/include/ginkgo/core/multigrid/uniform_coarsening.hpp +++ b/include/ginkgo/core/multigrid/uniform_coarsening.hpp @@ -159,7 +159,7 @@ class UniformCoarsening private: std::shared_ptr system_matrix_{}; - Array coarse_rows_; + array coarse_rows_; }; diff --git a/reference/multigrid/uniform_coarsening_kernels.cpp b/reference/multigrid/uniform_coarsening_kernels.cpp index ab5154eb8f2..648746689ac 100644 --- a/reference/multigrid/uniform_coarsening_kernels.cpp +++ b/reference/multigrid/uniform_coarsening_kernels.cpp @@ -63,7 +63,7 @@ namespace uniform_coarsening { template void fill_restrict_op(std::shared_ptr exec, - const Array* coarse_rows, + const array* coarse_rows, matrix::Csr* restrict_op) { auto num_rows = restrict_op->get_size()[0]; @@ -86,7 +86,7 @@ GKO_INSTANTIATE_FOR_EACH_VALUE_AND_INDEX_TYPE( template void fill_incremental_indices(std::shared_ptr exec, size_type num_jumps, - Array* coarse_rows) + array* coarse_rows) { for (IndexType i = 0; i < coarse_rows->get_num_elems(); i += num_jumps) { coarse_rows->get_data()[i] = i / num_jumps; diff --git a/test/multigrid/uniform_coarsening_kernels.cpp b/test/multigrid/uniform_coarsening_kernels.cpp index c84ce0c63b6..cf5a1803a2b 100644 --- a/test/multigrid/uniform_coarsening_kernels.cpp +++ b/test/multigrid/uniform_coarsening_kernels.cpp @@ -91,10 +91,10 @@ class UniformCoarsening : public ::testing::Test { } } - gko::Array gen_coarse_array(gko::size_type num, + gko::array gen_coarse_array(gko::size_type num, gko::size_type num_jumps) { - gko::Array coarse_array(ref, num); + gko::array coarse_array(ref, num); coarse_array.fill(-1); // the aggregated group must contain the identifier-th element // agg_val[i] == i holds in the aggregated group whose identifier is i @@ -117,7 +117,7 @@ class UniformCoarsening : public ::testing::Test { coarse_rows = gen_coarse_array(m, num_jumps); c_dim = (coarse_rows.get_num_elems() + 1) / num_jumps; - d_coarse_rows = gko::Array(exec); + d_coarse_rows = gko::array(exec); d_coarse_rows = coarse_rows; restrict_op = Csr::create(ref, gko::dim<2>(c_dim, m), c_dim); @@ -135,8 +135,8 @@ class UniformCoarsening : public ::testing::Test { std::default_random_engine rand_engine; - gko::Array coarse_rows; - gko::Array d_coarse_rows; + gko::array coarse_rows; + gko::array d_coarse_rows; std::shared_ptr restrict_op; std::shared_ptr d_restrict_op; @@ -152,9 +152,9 @@ class UniformCoarsening : public ::testing::Test { TEST_F(UniformCoarsening, FillIncrementalIndicesIsEquivalentToRef) { - auto c_rows = gko::Array(ref, m); + auto c_rows = gko::array(ref, m); c_rows.fill(-gko::one()); - auto d_c_rows = gko::Array(exec, c_rows); + auto d_c_rows = gko::array(exec, c_rows); { gko::size_type num_jumps = 2;