Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add early return if numRows == 0 in trsv to avoid integer divide-by-zero error #2180

Conversation

MalachiTimothyPhillips
Copy link
Contributor

Fixes #2179, although some unit test coverage for this case would be nice.

@ndellingwood
Copy link
Contributor

@MalachiTimothyPhillips thanks for the PR, can you reset this to point at the develop branch instead of master?

@vqd8a vqd8a changed the base branch from master to develop April 17, 2024 20:22
@ndellingwood
Copy link
Contributor

ndellingwood commented Apr 17, 2024

Here's the clang-format diff:

The following files require formatting changes:
M  sparse/impl/KokkosSparse_trsv_impl.hpp
==== Begin Format Patch ====
diff --git a/sparse/impl/KokkosSparse_trsv_impl.hpp b/sparse/impl/KokkosSparse_trsv_impl.hpp
index 6d43c55dc..6d04a4287 100644
--- a/sparse/impl/KokkosSparse_trsv_impl.hpp
+++ b/sparse/impl/KokkosSparse_trsv_impl.hpp
@@ -184,8 +184,8 @@ struct TrsvWrap {
   static void lowerTriSolveCsrUnitDiag(RangeMultiVectorType X,
                                        const CrsMatrixType& A,
                                        DomainMultiVectorType Y) {
-    const lno_t numRows                      = A.numRows();
-    if(numRows == 0) return;
+    const lno_t numRows = A.numRows();
+    if (numRows == 0) return;
 
     const lno_t numPointRows                 = A.numPointRows();
     const lno_t block_size                   = numPointRows / numRows;
@@ -213,8 +213,8 @@ struct TrsvWrap {
 
   static void lowerTriSolveCsr(RangeMultiVectorType X, const CrsMatrixType& A,
                                DomainMultiVectorType Y) {
-    const lno_t numRows                      = A.numRows();
-    if(numRows == 0) return;
+    const lno_t numRows = A.numRows();
+    if (numRows == 0) return;
 
     const lno_t numPointRows                 = A.numPointRows();
     const lno_t block_size                   = numPointRows / numRows;
@@ -258,8 +258,8 @@ struct TrsvWrap {
   static void upperTriSolveCsrUnitDiag(RangeMultiVectorType X,
                                        const CrsMatrixType& A,
                                        DomainMultiVectorType Y) {
-    const lno_t numRows                      = A.numRows();
-    if(numRows == 0) return;
+    const lno_t numRows = A.numRows();
+    if (numRows == 0) return;
 
     const lno_t numPointRows                 = A.numPointRows();
     const lno_t block_size                   = numPointRows / numRows;
@@ -310,8 +310,8 @@ struct TrsvWrap {
 
   static void upperTriSolveCsr(RangeMultiVectorType X, const CrsMatrixType& A,
                                DomainMultiVectorType Y) {
-    const lno_t numRows                      = A.numRows();
-    if(numRows == 0) return;
+    const lno_t numRows = A.numRows();
+    if (numRows == 0) return;
 
     const lno_t numPointRows                 = A.numPointRows();
     const lno_t block_size                   = numPointRows / numRows;
@@ -379,8 +379,8 @@ struct TrsvWrap {
   static void upperTriSolveCscUnitDiag(RangeMultiVectorType X,
                                        const CrsMatrixType& A,
                                        DomainMultiVectorType Y) {
-    const lno_t numRows                      = A.numRows();
-    if(numRows == 0) return;
+    const lno_t numRows = A.numRows();
+    if (numRows == 0) return;
 
     const lno_t numCols                      = A.numCols();
     const lno_t numPointRows                 = A.numPointRows();
@@ -432,8 +432,8 @@ struct TrsvWrap {
 
   static void upperTriSolveCsc(RangeMultiVectorType X, const CrsMatrixType& A,
                                DomainMultiVectorType Y) {
-    const lno_t numRows                      = A.numRows();
-    if(numRows == 0) return;
+    const lno_t numRows = A.numRows();
+    if (numRows == 0) return;
 
     const lno_t numCols                      = A.numCols();
     const lno_t numPointRows                 = A.numPointRows();
@@ -493,8 +493,8 @@ struct TrsvWrap {
   static void lowerTriSolveCscUnitDiag(RangeMultiVectorType X,
                                        const CrsMatrixType& A,
                                        DomainMultiVectorType Y) {
-    const lno_t numRows                      = A.numRows();
-    if(numRows == 0) return;
+    const lno_t numRows = A.numRows();
+    if (numRows == 0) return;
 
     const lno_t numCols                      = A.numCols();
     const lno_t numPointRows                 = A.numPointRows();
@@ -524,8 +524,8 @@ struct TrsvWrap {
   static void upperTriSolveCscUnitDiagConj(RangeMultiVectorType X,
                                            const CrsMatrixType& A,
                                            DomainMultiVectorType Y) {
-    const lno_t numRows                      = A.numRows();
-    if(numRows == 0) return;
+    const lno_t numRows = A.numRows();
+    if (numRows == 0) return;
 
     const lno_t numCols                      = A.numCols();
     const lno_t numPointRows                 = A.numPointRows();
@@ -578,8 +578,8 @@ struct TrsvWrap {
   static void upperTriSolveCscConj(RangeMultiVectorType X,
                                    const CrsMatrixType& A,
                                    DomainMultiVectorType Y) {
-    const lno_t numRows                      = A.numRows();
-    if(numRows == 0) return;
+    const lno_t numRows = A.numRows();
+    if (numRows == 0) return;
 
     const lno_t numCols                      = A.numCols();
     const lno_t numPointRows                 = A.numPointRows();
@@ -638,8 +638,8 @@ struct TrsvWrap {
 
   static void lowerTriSolveCsc(RangeMultiVectorType X, const CrsMatrixType& A,
                                DomainMultiVectorType Y) {
-    const lno_t numRows                      = A.numRows();
-    if(numRows == 0) return;
+    const lno_t numRows = A.numRows();
+    if (numRows == 0) return;
 
     const lno_t numCols                      = A.numCols();
     const lno_t numPointRows                 = A.numPointRows();
@@ -677,8 +677,8 @@ struct TrsvWrap {
   static void lowerTriSolveCscUnitDiagConj(RangeMultiVectorType X,
                                            const CrsMatrixType& A,
                                            DomainMultiVectorType Y) {
-    const lno_t numRows                      = A.numRows();
-    if(numRows == 0) return;
+    const lno_t numRows = A.numRows();
+    if (numRows == 0) return;
 
     const lno_t numCols                      = A.numCols();
     const lno_t numPointRows                 = A.numPointRows();
@@ -708,8 +708,8 @@ struct TrsvWrap {
   static void lowerTriSolveCscConj(RangeMultiVectorType X,
                                    const CrsMatrixType& A,
                                    DomainMultiVectorType Y) {
-    const lno_t numRows                      = A.numRows();
-    if(numRows == 0) return;
+    const lno_t numRows = A.numRows();
+    if (numRows == 0) return;
 
     const lno_t numCols                      = A.numCols();
     const lno_t numPointRows                 = A.numPointRows();

Edit: separated the job output from the diff patch

@MalachiTimothyPhillips
Copy link
Contributor Author

MalachiTimothyPhillips commented Apr 17, 2024

Here's the clang-format diff:

The following files require formatting changes:
M  sparse/impl/KokkosSparse_trsv_impl.hpp
==== Begin Format Patch ====
diff --git a/sparse/impl/KokkosSparse_trsv_impl.hpp b/sparse/impl/KokkosSparse_trsv_impl.hpp
index 6d43c55dc..6d04a4287 100644
--- a/sparse/impl/KokkosSparse_trsv_impl.hpp
+++ b/sparse/impl/KokkosSparse_trsv_impl.hpp
@@ -184,8 +184,8 @@ struct TrsvWrap {
   static void lowerTriSolveCsrUnitDiag(RangeMultiVectorType X,
                                        const CrsMatrixType& A,
                                        DomainMultiVectorType Y) {
-    const lno_t numRows                      = A.numRows();
-    if(numRows == 0) return;
+    const lno_t numRows = A.numRows();
+    if (numRows == 0) return;
 
     const lno_t numPointRows                 = A.numPointRows();
     const lno_t block_size                   = numPointRows / numRows;
@@ -213,8 +213,8 @@ struct TrsvWrap {
 
   static void lowerTriSolveCsr(RangeMultiVectorType X, const CrsMatrixType& A,
                                DomainMultiVectorType Y) {
-    const lno_t numRows                      = A.numRows();
-    if(numRows == 0) return;
+    const lno_t numRows = A.numRows();
+    if (numRows == 0) return;
 
     const lno_t numPointRows                 = A.numPointRows();
     const lno_t block_size                   = numPointRows / numRows;
@@ -258,8 +258,8 @@ struct TrsvWrap {
   static void upperTriSolveCsrUnitDiag(RangeMultiVectorType X,
                                        const CrsMatrixType& A,
                                        DomainMultiVectorType Y) {
-    const lno_t numRows                      = A.numRows();
-    if(numRows == 0) return;
+    const lno_t numRows = A.numRows();
+    if (numRows == 0) return;
 
     const lno_t numPointRows                 = A.numPointRows();
     const lno_t block_size                   = numPointRows / numRows;
@@ -310,8 +310,8 @@ struct TrsvWrap {
 
   static void upperTriSolveCsr(RangeMultiVectorType X, const CrsMatrixType& A,
                                DomainMultiVectorType Y) {
-    const lno_t numRows                      = A.numRows();
-    if(numRows == 0) return;
+    const lno_t numRows = A.numRows();
+    if (numRows == 0) return;
 
     const lno_t numPointRows                 = A.numPointRows();
     const lno_t block_size                   = numPointRows / numRows;
@@ -379,8 +379,8 @@ struct TrsvWrap {
   static void upperTriSolveCscUnitDiag(RangeMultiVectorType X,
                                        const CrsMatrixType& A,
                                        DomainMultiVectorType Y) {
-    const lno_t numRows                      = A.numRows();
-    if(numRows == 0) return;
+    const lno_t numRows = A.numRows();
+    if (numRows == 0) return;
 
     const lno_t numCols                      = A.numCols();
     const lno_t numPointRows                 = A.numPointRows();
@@ -432,8 +432,8 @@ struct TrsvWrap {
 
   static void upperTriSolveCsc(RangeMultiVectorType X, const CrsMatrixType& A,
                                DomainMultiVectorType Y) {
-    const lno_t numRows                      = A.numRows();
-    if(numRows == 0) return;
+    const lno_t numRows = A.numRows();
+    if (numRows == 0) return;
 
     const lno_t numCols                      = A.numCols();
     const lno_t numPointRows                 = A.numPointRows();
@@ -493,8 +493,8 @@ struct TrsvWrap {
   static void lowerTriSolveCscUnitDiag(RangeMultiVectorType X,
                                        const CrsMatrixType& A,
                                        DomainMultiVectorType Y) {
-    const lno_t numRows                      = A.numRows();
-    if(numRows == 0) return;
+    const lno_t numRows = A.numRows();
+    if (numRows == 0) return;
 
     const lno_t numCols                      = A.numCols();
     const lno_t numPointRows                 = A.numPointRows();
@@ -524,8 +524,8 @@ struct TrsvWrap {
   static void upperTriSolveCscUnitDiagConj(RangeMultiVectorType X,
                                            const CrsMatrixType& A,
                                            DomainMultiVectorType Y) {
-    const lno_t numRows                      = A.numRows();
-    if(numRows == 0) return;
+    const lno_t numRows = A.numRows();
+    if (numRows == 0) return;
 
     const lno_t numCols                      = A.numCols();
     const lno_t numPointRows                 = A.numPointRows();
@@ -578,8 +578,8 @@ struct TrsvWrap {
   static void upperTriSolveCscConj(RangeMultiVectorType X,
                                    const CrsMatrixType& A,
                                    DomainMultiVectorType Y) {
-    const lno_t numRows                      = A.numRows();
-    if(numRows == 0) return;
+    const lno_t numRows = A.numRows();
+    if (numRows == 0) return;
 
     const lno_t numCols                      = A.numCols();
     const lno_t numPointRows                 = A.numPointRows();
@@ -638,8 +638,8 @@ struct TrsvWrap {
 
   static void lowerTriSolveCsc(RangeMultiVectorType X, const CrsMatrixType& A,
                                DomainMultiVectorType Y) {
-    const lno_t numRows                      = A.numRows();
-    if(numRows == 0) return;
+    const lno_t numRows = A.numRows();
+    if (numRows == 0) return;
 
     const lno_t numCols                      = A.numCols();
     const lno_t numPointRows                 = A.numPointRows();
@@ -677,8 +677,8 @@ struct TrsvWrap {
   static void lowerTriSolveCscUnitDiagConj(RangeMultiVectorType X,
                                            const CrsMatrixType& A,
                                            DomainMultiVectorType Y) {
-    const lno_t numRows                      = A.numRows();
-    if(numRows == 0) return;
+    const lno_t numRows = A.numRows();
+    if (numRows == 0) return;
 
     const lno_t numCols                      = A.numCols();
     const lno_t numPointRows                 = A.numPointRows();
@@ -708,8 +708,8 @@ struct TrsvWrap {
   static void lowerTriSolveCscConj(RangeMultiVectorType X,
                                    const CrsMatrixType& A,
                                    DomainMultiVectorType Y) {
-    const lno_t numRows                      = A.numRows();
-    if(numRows == 0) return;
+    const lno_t numRows = A.numRows();
+    if (numRows == 0) return;
 
     const lno_t numCols                      = A.numCols();
     const lno_t numPointRows                 = A.numPointRows();

Edit: separated the job output from the diff patch

Thank you! I didn't realize there was a clang-format check. Can we add a note about that in either a CONTRIBUTING.md or DEVELOPER.md or something like that so first time contributors aren't caught off-guard?

@kokkos-devops-admin
Copy link

Status Flag 'Pre-Test Inspection' - - This Pull Request Requires Inspection... The code must be inspected by a member of the Team before Testing/Merging
NO INSPECTION HAS BEEN PERFORMED ON THIS PULL REQUEST! - This PR must be inspected by setting label 'AT: PRE-TEST INSPECTED'.

@ndellingwood ndellingwood added the AT: PRE-TEST INSPECTED Mark this PR as approved for testing. label Apr 18, 2024
@kokkos-devops-admin kokkos-devops-admin removed the AT: PRE-TEST INSPECTED Mark this PR as approved for testing. label Apr 18, 2024
@kokkos-devops-admin
Copy link

Status Flag 'Pre-Test Inspection' - SUCCESS: The last commit to this Pull Request has been INSPECTED by label AT: PRE-TEST INSPECTED! Autotester is Removing Label; this inspection will remain valid until a new commit to source branch is performed.

@kokkos-devops-admin
Copy link

Status Flag 'Pull Request AutoTester' - Testing Jenkins Projects:

Pull Request Auto Testing STARTING (click to expand)

Build Information

Test Name: KokkosKernels_PullRequest_CUDA11_CUDA11_LayoutRight

  • Build Num: 1287
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/MalachiTimothyPhillips/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 35e115a
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA cb824ca
PR_LABELS
PULLREQUESTNUM 2180
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_GCC930_Light_Tpls_GCC930_Tpls_CLANG13CUDA10

  • Build Num: 876
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/MalachiTimothyPhillips/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 35e115a
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA cb824ca
PR_LABELS
PULLREQUESTNUM 2180
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_GNU1021

  • Build Num: 533
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/MalachiTimothyPhillips/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 35e115a
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA cb824ca
PR_LABELS
PULLREQUESTNUM 2180
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_GNU1021_Light_LayoutRight

  • Build Num: 520
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/MalachiTimothyPhillips/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 35e115a
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA cb824ca
PR_LABELS
PULLREQUESTNUM 2180
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_Tpls_GNU1021

  • Build Num: 521
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/MalachiTimothyPhillips/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 35e115a
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA cb824ca
PR_LABELS
PULLREQUESTNUM 2180
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_Tpls_INTEL19_solo

  • Build Num: 525
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/MalachiTimothyPhillips/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 35e115a
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA cb824ca
PR_LABELS
PULLREQUESTNUM 2180
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_CLANG1001_solo

  • Build Num: 497
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/MalachiTimothyPhillips/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 35e115a
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA cb824ca
PR_LABELS
PULLREQUESTNUM 2180
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_A64FX_Tpls_ARMPL2110

  • Build Num: 1007
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/MalachiTimothyPhillips/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 35e115a
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA cb824ca
PR_LABELS
PULLREQUESTNUM 2180
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_A64FX_GCC1020

  • Build Num: 1002
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/MalachiTimothyPhillips/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 35e115a
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA cb824ca
PR_LABELS
PULLREQUESTNUM 2180
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_VEGA90A_ROCM561

  • Build Num: 993
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/MalachiTimothyPhillips/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 35e115a
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA cb824ca
PR_LABELS
PULLREQUESTNUM 2180
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_VEGA90A_Tpls_ROCM561

  • Build Num: 515
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/MalachiTimothyPhillips/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 35e115a
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA cb824ca
PR_LABELS
PULLREQUESTNUM 2180
TEST_REPO_ALIAS KOKKOSKERNELS

Using Repos:

Repo: KOKKOSKERNELS (MalachiTimothyPhillips/kokkos-kernels)
  • Branch: malachi/fix-divide-by-zero-in-trsv
  • SHA: 35e115a
  • Mode: TEST_REPO

Pull Request Author: MalachiTimothyPhillips

@kokkos-devops-admin
Copy link

Status Flag 'Pull Request AutoTester' - Jenkins Testing: all Jobs PASSED

Pull Request Auto Testing has PASSED (click to expand)

Build Information

Test Name: KokkosKernels_PullRequest_CUDA11_CUDA11_LayoutRight

  • Build Num: 1287
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/MalachiTimothyPhillips/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 35e115a
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA cb824ca
PR_LABELS
PULLREQUESTNUM 2180
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_GCC930_Light_Tpls_GCC930_Tpls_CLANG13CUDA10

  • Build Num: 876
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/MalachiTimothyPhillips/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 35e115a
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA cb824ca
PR_LABELS
PULLREQUESTNUM 2180
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_GNU1021

  • Build Num: 533
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/MalachiTimothyPhillips/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 35e115a
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA cb824ca
PR_LABELS
PULLREQUESTNUM 2180
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_GNU1021_Light_LayoutRight

  • Build Num: 520
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/MalachiTimothyPhillips/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 35e115a
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA cb824ca
PR_LABELS
PULLREQUESTNUM 2180
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_Tpls_GNU1021

  • Build Num: 521
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/MalachiTimothyPhillips/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 35e115a
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA cb824ca
PR_LABELS
PULLREQUESTNUM 2180
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_Tpls_INTEL19_solo

  • Build Num: 525
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/MalachiTimothyPhillips/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 35e115a
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA cb824ca
PR_LABELS
PULLREQUESTNUM 2180
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_CLANG1001_solo

  • Build Num: 497
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/MalachiTimothyPhillips/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 35e115a
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA cb824ca
PR_LABELS
PULLREQUESTNUM 2180
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_A64FX_Tpls_ARMPL2110

  • Build Num: 1007
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/MalachiTimothyPhillips/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 35e115a
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA cb824ca
PR_LABELS
PULLREQUESTNUM 2180
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_A64FX_GCC1020

  • Build Num: 1002
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/MalachiTimothyPhillips/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 35e115a
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA cb824ca
PR_LABELS
PULLREQUESTNUM 2180
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_VEGA90A_ROCM561

  • Build Num: 993
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/MalachiTimothyPhillips/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 35e115a
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA cb824ca
PR_LABELS
PULLREQUESTNUM 2180
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_VEGA90A_Tpls_ROCM561

  • Build Num: 515
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/MalachiTimothyPhillips/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 35e115a
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA cb824ca
PR_LABELS
PULLREQUESTNUM 2180
TEST_REPO_ALIAS KOKKOSKERNELS

@kokkos-devops-admin
Copy link

Status Flag 'Pre-Merge Inspection' - - This Pull Request Requires Inspection... The code must be inspected by a member of the Team before Testing/Merging
WARNING: NO REVIEWERS HAVE BEEN REQUESTED FOR THIS PULL REQUEST!

@kokkos-devops-admin
Copy link

All Jobs Finished; status = PASSED, However Inspection must be performed before merge can occur...

@ndellingwood ndellingwood merged commit 83374bf into kokkos:develop Apr 18, 2024
9 of 10 checks passed
@ndellingwood ndellingwood added the TrilinosPatchMatch Apply this label for PR's mirroring changes submitted directly to Trilinos label Apr 18, 2024
@MalachiTimothyPhillips MalachiTimothyPhillips deleted the malachi/fix-divide-by-zero-in-trsv branch April 18, 2024 22:35
@MalachiTimothyPhillips
Copy link
Contributor Author

Thanks, @ndellingwood!

ndellingwood added a commit that referenced this pull request May 1, 2024
…de-by-zero-in-trsv

Add early return if numRows == 0 in trsv to avoid integer divide-by-zero error

(cherry picked from commit 83374bf)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
TrilinosPatchMatch Apply this label for PR's mirroring changes submitted directly to Trilinos
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Integer division by zero error in sparse trsv
4 participants