Skip to content

Commit 14d1a98

Browse files
committed
fix jacobi inconsistence and use more stable testdata
1. diagonal invert was one in reference but zero in other backend 2. nvhpc 23.3 may optimize the formula in different way for scaled_value in make_diag_dominant, which lead the updated value is slightly different
1 parent b28af1a commit 14d1a98

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

common/unified/preconditioner/jacobi_kernels.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ void invert_diagonal(std::shared_ptr<const DefaultExecutor> exec,
4242
run_kernel(
4343
exec,
4444
[] GKO_KERNEL(auto elem, auto diag, auto inv_diag) {
45-
inv_diag[elem] = safe_divide(one(diag[elem]), diag[elem]);
45+
inv_diag[elem] = is_zero(diag[elem]) ? one(diag[elem])
46+
: one(diag[elem]) / diag[elem];
4647
},
4748
diag.get_size(), diag, inv_diag);
4849
}

test/preconditioner/jacobi_kernels.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -515,7 +515,7 @@ TEST_F(Jacobi, ScalarL1ApplyEquivalentToRef)
515515
gko::test::generate_random_matrix_data<value_type, index_type>(
516516
dim, dim, std::uniform_int_distribution<>(1, dim),
517517
std::normal_distribution<>(1.0, 2.0), engine);
518-
gko::utils::make_diag_dominant(dense_data);
518+
gko::utils::make_diag_dominant(dense_data, 1.001);
519519
auto dense_smtx = gko::share(Vec::create(ref));
520520
dense_smtx->read(dense_data);
521521
auto smtx = gko::share(Mtx::create(ref));

0 commit comments

Comments
 (0)