Skip to content

Commit

Permalink
Add single vector nrm2 tests
Browse files Browse the repository at this point in the history
  • Loading branch information
pratikvn committed Feb 11, 2022
1 parent 495bf7c commit d58d09a
Show file tree
Hide file tree
Showing 5 changed files with 62 additions and 4 deletions.
16 changes: 15 additions & 1 deletion cuda/test/matrix/dense_kernels.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,21 @@ TEST_F(Dense, MultipleVectorCudaComputeConjDotIsEquivalentToRef)
}


TEST_F(Dense, CudaComputeNorm2IsEquivalentToRef)
TEST_F(Dense, SingleVectorCudaComputeNorm2IsEquivalentToRef)
{
set_up_vector_data(1);
auto norm_size = gko::dim<2>{1, x->get_size()[1]};
auto norm_expected = NormVector::create(this->ref, norm_size);
auto dnorm = NormVector::create(this->cuda, norm_size);

x->compute_norm2(norm_expected.get());
dx->compute_norm2(dnorm.get());

GKO_ASSERT_MTX_NEAR(norm_expected, dnorm, 1e-14);
}


TEST_F(Dense, MultipleVectorCudaComputeNorm2IsEquivalentToRef)
{
set_up_vector_data(20);
auto norm_size = gko::dim<2>{1, x->get_size()[1]};
Expand Down
2 changes: 2 additions & 0 deletions dpcpp/matrix/dense_kernels.dp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,7 @@ void compute_conj_dot_dispatch(std::shared_ptr<const DefaultExecutor> exec,
const matrix::Dense<ValueType>* y,
matrix::Dense<ValueType>* result)
{
// TODO Add onemkl for single column ?
compute_conj_dot(exec, x, y, result);
}

Expand All @@ -221,6 +222,7 @@ void compute_norm2_dispatch(std::shared_ptr<const DefaultExecutor> exec,
const matrix::Dense<ValueType>* x,
matrix::Dense<remove_complex<ValueType>>* result)
{
// TODO Add onemkl for single column ?
compute_norm2(exec, x, result);
}

Expand Down
16 changes: 15 additions & 1 deletion dpcpp/test/matrix/dense_kernels.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,21 @@ TEST_F(Dense, MultipleVectorDpcppComputeConjDotIsEquivalentToRef)
}


TEST_F(Dense, DpcppComputeNorm2IsEquivalentToRef)
TEST_F(Dense, SingleVectorDpcppComputeNorm2IsEquivalentToRef)
{
set_up_vector_data(1);
auto norm_size = gko::dim<2>{1, x->get_size()[1]};
auto norm_expected = NormVector::create(this->ref, norm_size);
auto dnorm = NormVector::create(this->dpcpp, norm_size);

x->compute_norm2(norm_expected.get());
dx->compute_norm2(dnorm.get());

GKO_ASSERT_MTX_NEAR(norm_expected, dnorm, r<vtype>::value);
}


TEST_F(Dense, MultipleVectorDpcppComputeNorm2IsEquivalentToRef)
{
set_up_vector_data(20);
auto norm_size = gko::dim<2>{1, x->get_size()[1]};
Expand Down
16 changes: 15 additions & 1 deletion hip/test/matrix/dense_kernels.hip.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,21 @@ TEST_F(Dense, MultipleVectorHipComputeConjDotIsEquivalentToRef)
}


TEST_F(Dense, HipComputeNorm2IsEquivalentToRef)
TEST_F(Dense, SingleHipComputeNorm2IsEquivalentToRef)
{
set_up_vector_data(1);
auto norm_size = gko::dim<2>{1, x->get_size()[1]};
auto norm_expected = NormVector::create(this->ref, norm_size);
auto dnorm = NormVector::create(this->hip, norm_size);

x->compute_norm2(norm_expected.get());
dx->compute_norm2(dnorm.get());

GKO_ASSERT_MTX_NEAR(norm_expected, dnorm, 1e-14);
}


TEST_F(Dense, MultipleHipComputeNorm2IsEquivalentToRef)
{
set_up_vector_data(20);
auto norm_size = gko::dim<2>{1, x->get_size()[1]};
Expand Down
16 changes: 15 additions & 1 deletion omp/test/matrix/dense_kernels.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,21 @@ TEST_F(Dense, MultipleVectorOmpComputeConjDotIsEquivalentToRef)
}


TEST_F(Dense, ComputesNorm2IsEquivalentToRef)
TEST_F(Dense, SingleVectorComputesNorm2IsEquivalentToRef)
{
set_up_vector_data(1);
auto norm_size = gko::dim<2>{1, x->get_size()[1]};
auto norm_expected = NormVector::create(this->ref, norm_size);
auto dnorm = NormVector::create(this->omp, norm_size);

x->compute_norm2(norm_expected.get());
dx->compute_norm2(dnorm.get());

GKO_ASSERT_MTX_NEAR(norm_expected, dnorm, 1e-14);
}


TEST_F(Dense, MultipleVectorComputesNorm2IsEquivalentToRef)
{
set_up_vector_data(20);
auto norm_size = gko::dim<2>{1, x->get_size()[1]};
Expand Down

0 comments on commit d58d09a

Please sign in to comment.