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

cmake: add CMake language support for CUDA/HIP #2173

Merged
merged 2 commits into from
Aug 1, 2024

Conversation

rbberger
Copy link
Contributor

Alternative to #2084

@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'.

@lucbv
Copy link
Contributor

lucbv commented Apr 10, 2024

Is there a reason to assume that only users of Kokkos Kernels in Trilinos will need this vs users of the library that might have precompiled it and then compiled Trilinos against it?

@lucbv lucbv self-requested a review April 10, 2024 23:57
@lucbv
Copy link
Contributor

lucbv commented Apr 10, 2024

Also if you have some testing instruction for this I'm happy to follow them, I don't think CI will be able to help us assess this PR.

@rbberger
Copy link
Contributor Author

rbberger commented Apr 11, 2024

Is there a reason to assume that only users of Kokkos Kernels in Trilinos will need this vs users of the library that might have precompiled it and then compiled Trilinos against it?

This is an incremental change to tackle the case when kokkos-kernels is built in isolation (standalone) and kokkos is already built. I'm looking at this from a Spack perspective, where each package is built on its own. Trilinos is not a priority for me at the moment, but could very well be added later if needed. (the standalone and Trilinos bits seem to share CMake logic, so it might just mean some extra variables and checking to cover the case where Kokkos_COMPILE_LANGUAGE isn't set; it is only set in KokkosConfig.cmake during find_package at the moment)

@rbberger
Copy link
Contributor Author

rbberger commented Apr 11, 2024

Also if you have some testing instruction for this I'm happy to follow them, I don't think CI will be able to help us assess this PR.

Build kokkos for CUDA as usual but don't use the wrapper also add Kokkos_ENABLE_COMPILE_AS_CMAKE_LANGUAGE=ON and CMAKE_CUDA_ARCHITECTURES set to something meaningful (80 for ampere). Then build kokkos-kernels with the kokkos installation in the CMAKE_PREFIX_PATH and also set CMAKE_CUDA_ARCHITECTURES.

The same could be tested with ROCm, the variables then change to CMAKE_HIP_COMPILER and CMAKE_HIP_ARCHITECTURES.

Let me know if you need more detail than that. For Spack we're still in the process to updating the spackages upstream spack/spack#43517. Once those are in it could be also tested that way (that's how I tested it: I built kokkos +cmake_lang+cuda cuda_arch=80 and then built kokkos-kernels manually using that install)

@brian-kelley
Copy link
Contributor

brian-kelley commented Jul 30, 2024

@rbberger Thanks for the PR! I tested it out today on CUDA and HIP. I just recommend some changes that are in the patch below:

  • Set the language on source files that are compiled into executables, not just libraries. This is necessary for building with -DKokkosKernels_ENABLE_TESTS=ON and/or -DKokkosKernels_ENABLE_EXAMPLES=ON.
  • Set CMAKE_<lang>_ARCHITECTURES based on Kokkos_<lang>_ARCHITECTURES automatically, instead of requiring the user to set it again for KokkosKernels. This matches the behavior for the old system, where Kokkos's CXX flags were passed automatically to KokkosKernels. BTW, Kokkos can also auto-detect the GPU architecture at configure time if none are explicitly turned on.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3217ef2aa..d8cdd203f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -129,6 +129,12 @@ ELSE()
     FIND_PACKAGE(Kokkos REQUIRED)
     IF(Kokkos_COMPILE_LANGUAGE)
       ENABLE_LANGUAGE(${Kokkos_COMPILE_LANGUAGE})
+      IF(Kokkos_COMPILE_LANGUAGE STREQUAL CUDA)
+        SET(CMAKE_CUDA_ARCHITECTURES ${Kokkos_CUDA_ARCHITECTURES})
+      ENDIF()
+      IF(Kokkos_COMPILE_LANGUAGE STREQUAL HIP)
+        SET(CMAKE_HIP_ARCHITECTURES ${Kokkos_HIP_ARCHITECTURES})
+      ENDIF()
     ENDIF()
     IF(${Kokkos_VERSION} VERSION_GREATER_EQUAL "4.2.00")
       MESSAGE(STATUS "Found Kokkos version ${Kokkos_VERSION} at ${Kokkos_DIR}")
diff --git a/cmake/kokkoskernels_tribits.cmake b/cmake/kokkoskernels_tribits.cmake
index e47e20116..f7d11c9ef 100644
--- a/cmake/kokkoskernels_tribits.cmake
+++ b/cmake/kokkoskernels_tribits.cmake
@@ -156,6 +156,12 @@ IF (IS_ENABLED)
       SOURCES ${PARSE_SOURCES}
       TESTONLYLIBS ${PARSE_TESTONLYLIBS})
   ELSE()
+    # Set the correct CMake language on all source files for this exe
+    IF(Kokkos_COMPILE_LANGUAGE)
+      FOREACH(source ${PARSE_SOURCES})
+        SET_SOURCE_FILES_PROPERTIES(${source} PROPERTIES LANGUAGE ${Kokkos_COMPILE_LANGUAGE})
+      ENDFOREACH()
+    ENDIF()
     ADD_EXECUTABLE(${EXE_NAME} ${PARSE_SOURCES})
     #AJP, BMK altered:
     IF(KOKKOSKERNELS_ENABLE_TESTS_AND_PERFSUITE)

@rbberger
Copy link
Contributor Author

Updated and rebased on current develop.

@lucbv lucbv added AT: PRE-TEST INSPECTED Mark this PR as approved for testing. enhancement feature request labels Jul 31, 2024
@lucbv
Copy link
Contributor

lucbv commented Jul 31, 2024

@e10harvey do you know why the AT-2 is not letting things run? I thought we had fixed this with PR #2243 ?

@kokkos-devops-admin kokkos-devops-admin removed the AT: PRE-TEST INSPECTED Mark this PR as approved for testing. label Jul 31, 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: 1438
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/rbberger/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 6fc03a8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 99cbb4a
PR_LABELS enhancement;feature request
PULLREQUESTNUM 2173
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_GCC930_Light_Tpls_GCC930_Tpls_CLANG13CUDA10

  • Build Num: 1026
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/rbberger/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 6fc03a8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 99cbb4a
PR_LABELS enhancement;feature request
PULLREQUESTNUM 2173
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_GNU1021

  • Build Num: 680
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/rbberger/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 6fc03a8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 99cbb4a
PR_LABELS enhancement;feature request
PULLREQUESTNUM 2173
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_GNU1021_Light_LayoutRight

  • Build Num: 667
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/rbberger/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 6fc03a8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 99cbb4a
PR_LABELS enhancement;feature request
PULLREQUESTNUM 2173
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_Tpls_GNU1021

  • Build Num: 668
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/rbberger/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 6fc03a8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 99cbb4a
PR_LABELS enhancement;feature request
PULLREQUESTNUM 2173
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_Tpls_INTEL19_solo

  • Build Num: 672
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/rbberger/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 6fc03a8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 99cbb4a
PR_LABELS enhancement;feature request
PULLREQUESTNUM 2173
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_CLANG1001_solo

  • Build Num: 644
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/rbberger/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 6fc03a8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 99cbb4a
PR_LABELS enhancement;feature request
PULLREQUESTNUM 2173
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_VEGA90A_ROCM561

  • Build Num: 1123
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/rbberger/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 6fc03a8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 99cbb4a
PR_LABELS enhancement;feature request
PULLREQUESTNUM 2173
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_VEGA90A_Tpls_ROCM561

  • Build Num: 636
  • Status: STARTED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/rbberger/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 6fc03a8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 99cbb4a
PR_LABELS enhancement;feature request
PULLREQUESTNUM 2173
TEST_REPO_ALIAS KOKKOSKERNELS

Using Repos:

Repo: KOKKOSKERNELS (rbberger/kokkos-kernels)
  • Branch: cmake_language_support
  • SHA: 6fc03a8
  • Mode: TEST_REPO

Pull Request Author: rbberger

@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: 1438
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/rbberger/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 6fc03a8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 99cbb4a
PR_LABELS enhancement;feature request
PULLREQUESTNUM 2173
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_GCC930_Light_Tpls_GCC930_Tpls_CLANG13CUDA10

  • Build Num: 1026
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/rbberger/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 6fc03a8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 99cbb4a
PR_LABELS enhancement;feature request
PULLREQUESTNUM 2173
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_GNU1021

  • Build Num: 680
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/rbberger/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 6fc03a8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 99cbb4a
PR_LABELS enhancement;feature request
PULLREQUESTNUM 2173
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_GNU1021_Light_LayoutRight

  • Build Num: 667
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/rbberger/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 6fc03a8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 99cbb4a
PR_LABELS enhancement;feature request
PULLREQUESTNUM 2173
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_Tpls_GNU1021

  • Build Num: 668
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/rbberger/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 6fc03a8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 99cbb4a
PR_LABELS enhancement;feature request
PULLREQUESTNUM 2173
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_Tpls_INTEL19_solo

  • Build Num: 672
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/rbberger/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 6fc03a8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 99cbb4a
PR_LABELS enhancement;feature request
PULLREQUESTNUM 2173
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_CLANG1001_solo

  • Build Num: 644
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/rbberger/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 6fc03a8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 99cbb4a
PR_LABELS enhancement;feature request
PULLREQUESTNUM 2173
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_VEGA90A_ROCM561

  • Build Num: 1123
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/rbberger/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 6fc03a8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 99cbb4a
PR_LABELS enhancement;feature request
PULLREQUESTNUM 2173
TEST_REPO_ALIAS KOKKOSKERNELS

Build Information

Test Name: KokkosKernels_PullRequest_VEGA90A_Tpls_ROCM561

  • Build Num: 636
  • Status: PASSED

Jenkins Parameters

Parameter Name Value
KOKKOSKERNELS_SOURCE_REPO https://github.com/rbberger/kokkos-kernels
KOKKOSKERNELS_SOURCE_SHA 6fc03a8
KOKKOSKERNELS_TARGET_BRANCH develop
KOKKOSKERNELS_TARGET_REPO https://github.com/kokkos/kokkos-kernels
KOKKOSKERNELS_TARGET_SHA 99cbb4a
PR_LABELS enhancement;feature request
PULLREQUESTNUM 2173
TEST_REPO_ALIAS KOKKOSKERNELS

@kokkos-devops-admin
Copy link

Status Flag 'Pre-Merge Inspection' - SUCCESS: The last commit to this Pull Request has been INSPECTED AND APPROVED by [ lucbv ]!

@kokkos-devops-admin
Copy link

Status Flag 'Pull Request AutoTester' - Pull Request MUST BE MERGED MANUALLY BY Project Team - This Repo does not support Automerge

@lucbv lucbv requested a review from brian-kelley July 31, 2024 13:54
@ndellingwood
Copy link
Contributor

ndellingwood commented Jul 31, 2024

I tried testing this PR using the tips here , but I am running into compilation errors with kokkos-kernels:

/home/ndellin/Build_CudaAsCMakeLanguage/Build/install_kokkos/include/setup/Kokkos_Setup_Cuda.hpp:26:2: error: #error "KOKKOS_ENABLE_CUDA defined but the compiler is not defining the __CUDACC__ macro as expected"
 #error \

@rbberger @brian-kelley @lucbv I'm posting my configurations below, any guidance on what I should try differently?

For reference, this was for a Cuda build targeting Volta70 GPUs, and these are the modules I loaded:

# kokkos-dev-2
module load sems-gcc/8.3.0 sems-cuda/11.4.2 sems-cmake sems-openblas/0.3.12 sems-git

kokkos

export KOKKOS_BUILD=$BUILDDIR/Build_Kokkos
mkdir -p $KOKKOS_BUILD
export KOKKOS_INSTALL=$BUILDDIR/install_kokkos
mkdir -p $KOKKOS_INSTALL
cd $KOKKOS_BUILD

cmake \
  -D Kokkos_ENABLE_COMPILE_AS_CMAKE_LANGUAGE=ON \
  -D CMAKE_CUDA_ARCHITECTURES=70 \
  -D CMAKE_INSTALL_PREFIX=$KOKKOS_INSTALL \
  -D CMAKE_BUILD_TYPE:STRING=RELEASE \
  -D BUILD_SHARED_LIBS:BOOL=OFF \
\
  -D Kokkos_ENABLE_SERIAL=ON \
  -D Kokkos_ENABLE_CUDA=ON \
   -D Kokkos_ENABLE_TESTS=ON \
  -D Kokkos_ARCH_VOLTA70=ON \
$KOKKOS_DIR

make install -j12

kokkos-kernels

export KOKKOSKERNELS_BUILD=$BUILDDIR/Build_KokkosKernels
mkdir -p $KOKKOSKERNELS_BUILD
export KOKKOSKERNELS_INSTALL=$BUILDDIR/install_kokkos-kernels
mkdir -p $KOKKOSKERNELS_INSTALL
cd $KOKKOSKERNELS_BUILD

cmake \
  -D CMAKE_CUDA_ARCHITECTURES=70 \
  -D CMAKE_INSTALL_PREFIX=$KOKKOSKERNELS_INSTALL \
  -D CMAKE_BUILD_TYPE:STRING=RELEASE \
  -D BUILD_SHARED_LIBS:BOOL=OFF \
\
  -D CMAKE_PREFIX_PATH=$KOKKOS_INSTALL \
\
  -D KokkosKernels_INST_COMPLEX_DOUBLE=ON \
  -D KokkosKernels_INST_OFFSET_INT=OFF \
  -D KokkosKernels_INST_OFFSET_SIZE_T=ON \
  -D KokkosKernels_ENABLE_TESTS=ON \
$KOKKOSKERNELS_DIR

make -j12

@ndellingwood
Copy link
Contributor

Whoops, I didn't switch my branch to this PR, was testing with develop. Rebuilding now, sorry for the noise...

@ndellingwood
Copy link
Contributor

cuda/11.4.2 build on Volta70 worked fine for me with these changes - compilation successful, unit tests passed 100%

@kokkos-devops-admin
Copy link

Status Flag 'Pull Request AutoTester' - Pull Request MUST BE MERGED MANUALLY BY Project Team - This Repo does not support Automerge

@lucbv lucbv merged commit 3d5e57a into kokkos:develop Aug 1, 2024
13 of 19 checks passed
@rbberger rbberger deleted the cmake_language_support branch August 2, 2024 05:23
jgfouca added a commit to jgfouca/kokkos-kernels that referenced this pull request Aug 3, 2024
…trsv2

* upstream/develop:
  Make sure clang is using a newer GCC on weaver (kokkos#2289)
  cmake: add CMake language support for CUDA/HIP (kokkos#2173)
  Sparse - coo2csr: deactivating test on PVC (kokkos#2290)
  Bump ossf/scorecard-action from 2.3.3 to 2.4.0 (kokkos#2287)
  Bump github/codeql-action from 3.25.13 to 3.25.15 (kokkos#2288)
  Add big reformat commits to ignore revs for blame (kokkos#2286)
  Bump step-security/harden-runner from 2.8.1 to 2.9.0 (kokkos#2283)
  Bump github/codeql-action from 3.25.12 to 3.25.13 (kokkos#2284)
  .github/workflows: Auto trigger AT2 ci upon review (kokkos#2243)
  A couple platforms do not correctly handle static complexes
lucbv pushed a commit to lucbv/kokkos-kernels that referenced this pull request Aug 8, 2024
* cmake: add CMake language support for CUDA/HIP

* Apply suggestions of @brian-kelley
lucbv added a commit that referenced this pull request Aug 12, 2024
* fence Kokkos before timed interations

* Deprecate KOKKOSLINALG_OPT_LEVEL

* Add CMake warning message if KokkosKernels_LINALG_OPT_LEVEL is used

* Async matrix release for MKL >= 2023.2

* Support CUBLAS_{LIBRARIES,LIBRARY_DIRS,INCLUDE_DIRS,ROOT} and KokkosKernels_CUBLAS_ROOT

* KokkosSparse_spmv_impl_merge.hpp: use capture by reference

Resolve warnings in builds with c++20 support enabled:
"kokkos-kernels/sparse/impl/KokkosSparse_spmv_impl_merge.hpp:166:81: warning: implicit capture of 'this' via '[=]' is deprecated in C++20 [-Wdeprecated]"

* KokkosSparse_par_ilut_numeric_impl.hpp: use capture by reference

Resolve warnings in builds with c++20 support enabled:
"kokkos-kernels/sparse/impl/KokkosSparse_par_ilut_numeric_impl.hpp(591):
warning #2908-D: the implicit by-copy capture of "this" is deprecated"

* Backup

* Backup

* Backup

* Backup

* Formatting

* Correcting compilation error

* Typo

* Changes for syr and syr2, to be tested at weaver

* Formatting

* Changes for axpby

* Backup

* Formatting

* Just to force new checking tests in github

* Addressing feedback from Luc.

* Don't call optimize_gemv for one-shot spmv

* Add HIPManagedSpace support

- CMake option for ETI
- Run unit tests with a Kokkos::Device, not just Kokkos::HIP
	- Like we do for Cuda
	- Still use HIPSpace unless Managed is the only enabled memspace
- Couple of minor fixes
	- Allow querying free HIPManagedSpace memory for SpGEMM
	- Disable VBD coloring (not a huge deal, had to do same on CUDA)
	- Use correct memory space in SpTRSV solve

* Backup

* Backup

* Backup

* Minor typo

* Add block support to all SPILUK algorithms (#2064)

* Interface for block iluk

* Progress. Test hooked up

* Progress on test refactoring

* More test reorg

* Fix test

* Refactor spiluk numeric a bit with a struct wrapper

* Add good logging

* progress

* Fix block test

* Progress but potential dead end

* Giving up on this approach for now

* progress

* Make verbose

* Progress

* Progress

* RP working?

* Progress on TP alg

* Bug fix

* Progress on template stuff

* Progress on block TP

* Progress

* Get rid of all the static_casts

* More cleanup. Steams now support blocks

* Tests not passing

* Serail tests all working, both algs, blocked

* Remove output coming from spiluk test

* Final fixes for CPU

* Cuda req full template specification for SerialGemm::invoke

* Don't use scratch for now

* Formatting

* Fix warnings

* Formatting

* Add tolerance to view checks. Use macro and remove redundant test util

* Fix for HIP

* formatting

* Another test reorg to fix weirdness on solo

* formatting

* Remove unused var

* Github feedback

* Remove test cout

* formatting

* Zero-size arrays can cause problems

* Fix unused var warning

* Add CUDA/HIP TPL support for KokkosSparse::spadd (#1962)

* spadd: change arguments to ctor of SPADDHandle

add a default value to input_sorted;
add a second argument input_merged to indicate unqiue entries;
So that we can easily know whether we can use TPLs on the input matrices

* spadd: add cuda/rocm TPL support for spadd_symbolic/numeric

* Make spiluk_handle::reset backwards compatible (#2087)

* Make spiluk_handle::reset backwards compatible

By making block_size default to -1, which means don't change
block size.

* Switch default val for block_size for reset_handle

* formatting

* Fix comment

* spadd: add APIs without an execution space argument (#2090)

* Lapack - SVD: adding initial files that do not implement anything (#2092)

Adding SVD feature to Lapack component, the interface is similar
to classic Lapack and the implementation relies on the TPL layer
to provide initial capabilities. The TPL supported are LAPACK,
MKL, cuSOLVER and rocSOLVER.

Testing three analytical cases 2x2, 2x3 and 3x2 and then some
randomly generated matrices.

* Hands off namespace `Kokkos::Impl` - cleanup couple violations that snuck in (#2094)

* Do not use things from namespace Kokkos::Impl (Kokkos::{Impl:: -> }ALL_t)

* Do not use things from namespace Kokkos::Impl (Kokkos::Impl::DeepCopy)

Can achieve the same with Kokkos::deep_copy

* Fix warning `declaration of ‘std::size_t n’ shadows a parameter`

* Change name of yaml-cpp to yamlcpp

* Fix macro setting in CMakeLists

* GMRES: Add support for BSR matrices

Also, add a test for this.

* Remove all mentions of HBWSpace

* Reintroduce EXECSPACE_(SERIAL,OPENMP,THREADS}_VALID_MEM_SPACES

Drop HBWSPACE as an option

* Lapack: adding svd benchmark

Fixing unit-test for CUSOLVER and adding benchmark to check the
algorithm performance on various platforms.

* Fix Cuda TPL finding (#2098)

- Allow finding cusparse, cusolver based on manually provided paths
  - This is necessary when using an nvhpc toolchain instead of a
    standard cuda toolchain
- Set header paths correctly (this is redundant in a cuda installation,
  in which $CUDA_ROOT/include is already a system include dir, but
  needed in other cases)

* Add support for BSR matrices to some trsv routines (#2104)

* Add support for BSR matrices to some trsv routines
* Change trsv to gesv

* Lapack - SVD: adding quick return when cuSOLVER is skipped (#2107)

Currently we still run the tests on U, S and Vt which does not
make sense since we actively skip this test because cuSOLVER does
not support more columns than rows...

* Fix build error in trsv on gcc8

* Add a workaround for compilation errors with cuda-12.2.0 + gcc-12.3 (#2108)

On Perlmutter@NERSC, I met this error

/usr/lib64/gcc/x86_64-suse-linux/12/include/avx512fp16intrin.h(38): error: vector_size attribute requires an arithmetic or enum type
   typedef __half __v8hf __attribute__ ((__vector_size__ (16)));

The workaround was mentioned at https://forums.developer.nvidia.com/t/including-cub-header-breakes-compilation-with-gcc-12-and-sse2-or-better/255018

* Lapack - SVD: fix for unit-test when MKL is enabled (#2110)

This is really a problem with our implementation of the BLAS
interface when MKL is enabled since MKL redefines the function
signatures of blas functions using MKL_INT instead if int...

* Revert "Merge pull request #2037 from ndellingwood/remove-rocsolver-optional-dependency" (#2106)

This reverts commit 5a36d577e725546062af3b297eec87e23a40ab58, reversing
changes made to 2c66d291f9b5512e17f9375304902b6ba42133b2.

* Fixing missing inclusion in source file

* BLAS - MKL: fixing HostBlas calls to handle MKL_INT type (#2112)

MKL redefines the BLAS interface based on how MKL_INT is defined
we need to wrap that definition with our own Kokkos Kernels INT
type to make both compatible with regular BLAS.

applying clang-format

* Fix weird Trilinos compiler error

It seemed to have a problem with these deep_copies, so just do
the copy by hand like it was being done before my recent trsv
PR.

* Update changelog

* Update changelog

* Block spiluk follow up (#2085)

* Fix for gemm
* Remove unused divide method
* Enhancements to spiluk test
* Progress. Block spiluk now checks out against analytical results
* LUPrec test with spiluk woring
* Disable spiluk LU test on non-host
* Enhancements to spiluk test
* Clean up a few issues uncovered by gh review

* github workflows: update to v4 (use Node 20)

* Refactor Test_Sparse_sptrsv (#2102)

* Refactor Test_Sparse_sptrsv

* More cleanups

* Remove old commented-out code

* CMake: error out in certain case (#2115)

Graph unit tests are unique in that they use default_scalar for the
KokkosKernelsHandle. So if test-eti-only is ON, but neither float nor
double is instatiated, then error out for the graph unit tests.

Users can still build without float or double if they want, but only if
they turn off tests or the graph component.

* Wiki examples for BLAS2 functions are added (#2122)

Some small additional change the the function headers themselves
to add some missing header file inclusions.

Applying clang-format

Removing constexpr since it won't happen before some work in Core.

* Increase tolerance on gesv test (Fix #2123) (#2124)

And uncomment the verbose output for when tolerance is exceeded,
since that helps debug this sort of issue.
This is only printed at most once so it won't spam the output if
the entire vector is wrong.

* Spmv handle (#2126)

* spmv handle, TPL reuse

* using handle in unification layer and hooking up new algorithm
enums with old Controls options

* Update spmv_merge perf test
Compare KK merge vs. default and KK native

* Small changes to help text of spmv_merge perf test

* Complete backwards compatibility with Controls interface
- copy over spmv algorithm selection correctly
- copy expert tuning parameters

* Controls spmv: accept other name for bsr algo

* bsr spmv test: disable tensor core
It was not actually being run before due to a different name
actually enabling it (experimental_bsr_tc rather than experimental_tc)

* Disable OneMKL spmv for complex types
oneapi 2023.2 throws error saying complex isn't supported

* OneMKL: call optimize_gemv during setup

* Option to apply RCM reordering to extracted CRS diagonal blocks (#2125)

* Add rcm option when extracting diagonal blocks

* Update kk_extract_diagonal_blocks_crsmatrix_sequential

* Add test for extracting diagonal blocks with rcm

* Update RCM checking

* cm_test_all_sandia: various updates

- updates for blake

* cm_test_all_sandia: drop decommissioned/unavailable machines

- remove voltrino, mayer

* Fix2130 (#2132)

* Fix #2130

- Do not call BsrMatrix spmv impl if block size is 1
- Instead, convert it to unmanaged CrsMatrix and call spmv again
  - cuSPARSE returned an error code in this case
  - Better performance

* Formatting

* Remove redundant remove_pointer_t

Handle is already a non-pointer type

* Benchmark: modifying spmv benchmark to run range of spmv tests (#2135)

This could be further automated to run on matrix from suite sparse

* Kokkos Kernels: update version guards to drop old version of Kokkos (#2133)

Since we are now in the 4.2 series we only support up to 4.1.00.
Older version of Kokkos Core will require older version of Kokkos
Kernels for compatibility. Once 4.3.00 is out we will move to
drop support for the 4.1 series and only keep 4.2 and 4.3 series.

* ODE: BDF methods (#1930)

* ODE: adding BDF algorithms

Implementing BDF formula for stiff ODEs.
Orders 1 to 5 are available and tested.
The integrators can be called on GPU to
solve multiple systems in parallel.

* ODE: fixing storage handling for start-up RK stack

* ODE: clang-format

* ODE: first adaptive version of BDF

The current implementation only allows for adaptivity in time,
at this point the BDF Step actually converges as expected with
first order integration!

* ODE: fixing issues with adaptive BDF

The unit-test BDF_adaptive now shows the integration
of the logistic equation using adaptive time steps and
increasing integration order from 1 to 5.

* ODE: running BDF on StiffChemistry problem

The problem runs fine and is solved but there are oscillations
while the behavior of the solution is smooth. More investigation
is needed...

* BDF: fixing types and template parameters in batched calls

Bascially we need template parameters to be more versatile
and cannot assume that all rank1 views will have the exact
same underlying type, for instance layouts can be different.

* More fixes for GPUs only in tests this time.

* ODE: BDF adaptive, fix small bug

After adding rhs and update vectors to temp the subviews taken for
other variables need to be offset appropriately...

* Revert "More fixes for GPUs only in tests this time."

This reverts commit 2f70432761485bc6a4c65a1833e7299dd2c340e2.

* Revert "Revert "More fixes for GPUs only in tests this time.""

This reverts commit 836012bb529551727b3f5913057acad94dfe60df.

* ODE: BDF small change to temporarily avoid compile time issue

True fix involving a KOKKOS_VERSION check is upcoming after more
tests on GPU side...

* ODE: BDF fix for some printf statements that will go away soon...

* ODE: adding benchmark for BDF

The benchmark helps us monitor the performance of the BDF
implementaiton across multiple platforms as well as impact of
changes over time.

* ODE: improve benchmark interface...

* ODE: BDF changes to use RMS norm and change some default values

Small changes to compare more closely with reference implementation.
Some of these might be reverted eventually but that's fine for now.

* ODE: BDF convergence more stable and results look pretty good now!

Changing the Newton solver convergence criteria as well as changing
a few default input parameters leads to a more stable algorithms
which can now integrate the stiff Henderson autocatalytic example
well in 66 time steps instead of 200k for fixed order integration...

* ODE: BDF fix bug in initial time step calculation

The initial step routine was overwriting the initial right hand side
which led to obvious issues further down the road... now things should
work fine. Need to figure out if I can re-initialize the variables in
the perf test while excluding that time from each iteration.

* ODE: BDF removing bad print statement...

std::cout in device code

* ODE - BDF: improving perf test

Basically adding new untimed setup within the main loop of the
benchmark to reset the intial conditions, buffers and vectors
ahead of each iteration.

* Modifying unit-test to catch proper return type

* Applying clang-format

* cm_test_all_sandia: update caraway compilers

add rocm/5.6.1 and rocm/6.0.0, and openblas/0.3.23 as tpl

* Sparse MKL: changing the location of the MKL_SAFE_CALL macro (#2134)

* Sparse MKL: changing the location of the MKL_SAFE_CALL macro

Moving the macro outside of namespaces to ensure that it will be
interpreted correctly when called from any other location in the
library.

It does not make much sense to guard Impl code in the Experimental
namespace and in this case it cleans up a problem with namespace
disambiguation for the compiler...

* Sparse BsrSpMV: removing Experimental namespace from Impl namespace

* Applying clang-format

* Sparse SpMV: fixing more namespace issues!

* Fixing missing descriptor for bsr spmv

* Kokkos Kernels: change the default offset ETI from size_t to int (#2140)

This change makes it easier for customer to leverage TPL support
which almost always requires offset=int, ordinal=int to be enabled
meaning that no TPL support is available with our default ETI...

* KokkosSparse_spmv_bsrmatrix_spec: fix Bsr_TC_Precision namespacing

Resolve compilation errors in nightly cuda/12.2 A100 build

* Drop comment for cleaner clang-format fix

* Fix usage of RAII to set cusparse/rocsparse stream (#2141)

Temporary objects like "A()" get destructed immediately.
For the object to have scope lifetime, it needs a name like "A a();".
This was causing cusparse/rocsparse spmv to always execute on the default stream,
causing incorrect timing in the spmv perf test.

* Use execution space operator== (#2136)

It actually is part of the public interface

* cm_test_all_sandia: more caraway module updates and cleanup (#2145)

* Spmv perftest improvements (#2146)

* Spmv perf test improvements

- Add option to flush caches by filling a dummy buffer between
iterations
- Add option to call the non-reuse interface instead of handle/reuse
interface
- Fix modes T, H in nonsquare case (make x,y the correct length)

* Fix mode help text

* KokkosKernels Utils: cleaning the zero_vector interface

One of the overload requires an unused template, removing that
extraneous template and simplify how that function is called in
a second overload.

* Kokkos Kernels: fixing call to zero_vector in Gauss-Seidel

* CMakeLists.txt: Update develop to 4.3.99

* Address reviewer comments

* Update CMakeLists.txt

Co-authored-by: brian-kelley <[email protected]>

* cm_test_all_sandia: solo updates

module updates post TOSS upgrade

* Fix signed/unsigned comparison warnings (#2150)

This is only hit when spmv is called with integer scalars,
which doesn't happen in our CI but does often in Tpetra.

* SPMV tpl fixes, cusparse workaround (#2152)

* SPMV tpl fixes, workaround

* Avoid possible integer conversion warnings

* Document cusparseSpMM algos that were tested

* Applying clang-format

* Use default_size_type as default offset in matrix types (#2149)

Now a declaration like CrsMatrix<Scalar, Ordinal, Device>
will by default use an ETI'd type combination (as int is the default
ETI'd offset)

* spmv bsr perftest: move fences to right place (#2153)

* Kokkos Kernels: removing old code branches ahead of 4.3.00 release (#2139)

Some old code branches kept for compatibility with Kokkos Core
versions less than 4.2.00 are dropped after release 4.3.00.
The largest changes are the removal of support the Kokkos print
macro in favor of Kokkos::printf() and the removal of half support
from Kokkos Kernels since it is now in Kokkos Core.

* Code for running performance measurements on ger() (#2082)

* Correct flop count

* Addressing feedbacks from Luc

* Using 'zero()' instead of '0.'

* KokkosBlas1_axpby.hpp: change debug macro guard for printInformation (#2157)

* KokkosBlas1_axpby.hpp: change debug macro guard for printInformation

- resolves test failures in Trilinos (MueLu) that rely on gold file diff
comparisons by removing extra output in debug builds

* fix compilation error

* Add user tolerance to Serial SVD (#2120)

* Add user tolerance to Serial SVD
---------

Co-authored-by: whorne <[email protected]>
Co-authored-by: Carl Pearson <[email protected]>

* Add a simple Harwell-Boeing file reader (#2155)

* Add a simple Harwell-Boeing file reader

And a test that validates against the MM reader.

* Support for symmetrize

* This loop can be simplified, there's no diag duplication

* Improve IO test

* spmv tpls: use correct bool for eti template param (#2160)

(It should just be the default,
KokkosSpars::Impl::eti_spec_avail<..>::value)

* Fix sparse_ioutils test on kokkos-dev (#2162)

Adding a ss.sync call fixes it but I have no idea why it
was needed here. All the other stringstream reads work fine.

* Fix #2156 (#2164)

spmv: add special path for rank-2 x/y, but where both have 1 column
and a TPL is available for rank-1 but not rank-2.

Also call "subhandle->set_exec_space" correctly in the TPLs to ensure
proper synchronization between setup, spmv and cleanup (in the case that
different exec instances are used in different calls)

* Updates from feedback runnig Trilinos testing

- Update debug level to > 1 guarding `printInformation(...)` in
  KokkosBlas1_axpby.hpp to reduce noisy test output
- Loosen tolerance of lapack.svd test to avoid random failures that
  occur near prior tolerance level

* Fix #2167: classic MKL doesn't use space instance (#2168)

* CHANGELOG.md: 4.3.00 update

* KokkosLapack_svd_tpl_spec_decl: defer to MKL spec when LAPACK also enabled

Resolves redefintion of struct SVD compilation errors with both MKL and LAPACK are enabled
Reported by @maartenarnst in https://github.com/trilinos/Trilinos/issues/12891

Co-authored-by: brian-kelley <[email protected]>

* .github/workflows: Added bdw.yml

* .github/workflows: Added spr.yml

* .github/workflows: Added mi210.yml

* .github/workflows: Added h100.yml

* .github/workflows: Added volta70.yml

* .github/workflows: Added power9.yml and power9_tpls.yml

* Jgfouca/block spiluk fixes (#2172)

* Progress

* Attempt 1, fix multiplication order

* Converges in 1 step

* Various cleanups

* Be sure not to reduce performance of unblocked impl

Also add some comments.

* Remove test mangling

* Fixes for GPU

* Fix warning

* formatting

* Increase eps for floats

* This is no longer needed

* .github/workflows: Add PR_VEGA908_ROCM561_HIP_SERIAL_LEFT_OPENBLAS_OPENLAPACK_REL

* Add guard for cusparse spmv_mv_tpl_spec_avail

Address issue #2175
Configuring with magma tpl enabled and cusparse disabled mistakenly triggers the cusparse tpl avail check to be true
Guard the KOKKOSSPARSE_SPMV_MV_TPL_SPEC_AVAIL_CUSPARSE macros when CUSPARSE is enabled to prevent this

* .github/workflows: Remove OPENLAPACK from names

* .github/workflows: Remove power9 until we have hardware to test it on

* .github/workflows: Enable rocblas in rocm tpl check

* .github/workflows: Remove volta70 until we have hardware to test it on

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

* Resolves multiple definition of Magma and Cuda singletons (#2178)

Address issue #2175

* magma: fix linker errors for builds without cusolver (#2181)

* magma: fix linker errors for builds without cusolver

* BatchedGemm test: workaround testing cublas+magma

- temporary workaround to skip magma test when cublas enabled to avoid issues like #2177

* .github/workflows/mi210: Fix include paths

* workflows/osx.yml: test against most recent kokkos tag

- test against most recent kokkos release rather than develop branch, as
  done with AT CI, to avoid compatibility breakages

* Resolve vortex compilation issue by resolving (potentially) duplicate symbol (#2183)

Stick to pattern of removing leading 'c' or 'z' in method name and relying on the template type

Co-authored-by: malphil <[email protected]>

* Changes to enable OneAPI usage with Trilinos build (#2185)

- Get rid of SYCL_OVERRIDE setting
- Add MKL_PROVIDES_BLAS_LAPACK cmake variable and define so that
  code knows whether to use int, or MKL_INT
  - Trilinos builds might link with OneAPI for GPU but standard
    BLAS/LAPACK on CPU

* Fix macOS docs build (#2190)

* Fix docs build

* try docs fix

* make sphinx available at config time

* GH-Actions: adding security actions and scorecard (#2192)

Pretty much taking the new files from PR #2191 and re-creating
it in a clean PR on top of develop with small changes relevant
to our repository.

Cleaning up some workflows to tailor it for our needs

* Scorecard: adding manual dispatch and target default branch (#2195)

* BsrMatrix: Fix HostMirror typedef (#2196)

It needed to have size_type.

* update changelog for 4.3.1

* Update CHANGELOG.md

* docs.yml: change kokkos version to latest release

- avoid version range check issues for release tests

* Sparse - SpGEMM: labeling spgemm_symbolic in TPL layer a bit more clearly (#2193)

This just improves the readability of the output from the tools as it now
has a symbolic matching the numeric phase. Previously we only had spgemm
in the label which is a bit confusing as it could be the whole spgemm time
i.e. both symbolic and numeric, additionally we had symbolic in the MKL
path but not in cusparse, rocsparse...

* SpMV: Test NaN, fix NaN handling when beta=0 (#2188)

* Test_Sparse_spmv_bsr.hpp: add NaNs to tests

* handle NaN in spmv_beta_transpose when beta=0

* handle nan in SpmvMergeHierarchical when beta=0

* Test NaNs in Y, don't reuse modifed Y, catch NaNs in results test

* remove unused <iostream> include

* explicit casting of zero

* Test_sparse_spmv.hpp: remove unused nans parameter

* KokkosSparse_spmv.hpp: CUDA11 can't detect this function always returns

* Test_Sparse_spmv.hpp: remove unused variable

* Run unit tests in correct execution space

* Test_Sparse_spmv.hpp: remove unused type aliases

* Kokkos::nan() -> KokkosKernels::Impl::quiet_NaN()

* Disable cuBLAS dot wrapper (#2206)

(not deleted, just guarded with #if 0 and comments explaining)

It performs significantly worse than our native impl on 11.2, 11.8 and 12.0 on V100.
This is in the dot perf test with a warm-up call.

https://github.com/trilinos/Trilinos/issues/12982 was a symptom of this.

* Fix spmv regressions (#2204)

* Restore cusparse spmv ALG2 path for imbalanced

With correct version cutoffs

* spmv: use separate rank-1 and rank-2 tpl subhandles

* Remove redundant single-column path in native spmv_mv

* Fix unused param warning

* c++17: add [[fallthrough]] attribute (#1493)

* c++17: add [[fallthrough]] attribute

* cm_test_all_sandia: -Wimplicit-fallthrough

* Enable 3 at2 builds (#2210)

* .github/mi210: Enable on PRs

* .github/mi210: Disable non-tpl build

* .github/bdw: Enable PR_BDW_GNU1020_OPENMP_SERIAL_LEFT_OPENBLAS_REL

* .github/h100: Enable PR_HOPPER90_CUDA1180_CUDA_LEFT_RIGHT_REL

* Bump ossf/scorecard-action from 2.0.6 to 2.3.3 (#2214)

Bumps [ossf/scorecard-action](https://github.com/ossf/scorecard-action) from 2.0.6 to 2.3.3.
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](https://github.com/ossf/scorecard-action/compare/99c53751e09b9529366343771cc321ec74e9bd3d...dc50aa9510b46c811795eb24b2f1ba02a914e534)

---
updated-dependencies:
- dependency-name: ossf/scorecard-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump actions/upload-artifact from 3.1.3 to 4.3.3 (#2215)

Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3.1.3 to 4.3.3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/a8a3f3ad30e3422c9c7b888a15615d19a852ae32...65462800fd760344b1a7b4382951275a0abb4808)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump actions/dependency-review-action from 2.5.1 to 4.3.2 (#2217)

Bumps [actions/dependency-review-action](https://github.com/actions/dependency-review-action) from 2.5.1 to 4.3.2.
- [Release notes](https://github.com/actions/dependency-review-action/releases)
- [Commits](https://github.com/actions/dependency-review-action/compare/0efb1d1d84fc9633afcdaad14c485cbbc90ef46c...0c155c5e8556a497adf53f2c18edabf945ed8e70)

---
updated-dependencies:
- dependency-name: actions/dependency-review-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump step-security/harden-runner from 2.7.1 to 2.8.0 (#2218)

Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.7.1 to 2.8.0.
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](https://github.com/step-security/harden-runner/compare/a4aa98b93cab29d9b1101a6143fb8bce00e2eac4...f086349bfa2bd1361f7909c78558e816508cdc10)

---
updated-dependencies:
- dependency-name: step-security/harden-runner
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump github/codeql-action from 2.25.3 to 3.25.6 (#2216)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.25.3 to 3.25.6.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/ceaec5c11a131e0d282ff3b6f095917d234caace...9fdb3e49720b44c48891d036bb502feb25684276)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Kokkos Kernels: initial security policy (#2220)

We state were patches will be made and how to report security vulnerabilities to the project.

* Kokkos Kernels: adding SHA for github actions (#2221)

* Kokkos Kernels: adding SHA for github actions

* Adding sha for docker images

* More dependencies fix (#2222)

* workflows: fix sha for label checker docker image

* workflows: fixing Docker files dependencies.

* Fix Docker files (#2223)

* SPMV TPLs: improve profile region labels (#2219)

- Mark rank-2 versions as "spmv_mv" not "spmv" (the native impl has
  this, and it's useful to know which one is being run)
- Add missing commas separating "BSRMATRIX" and the scalar type name

* cusparse spgemm: provide non-null row-ptr (#2213)

* Bump github/codeql-action from 3.25.6 to 3.25.7 (#2225)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.6 to 3.25.7.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/9fdb3e49720b44c48891d036bb502feb25684276...f079b8493333aace61c81488f8bd40919487bd9f)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump actions/checkout from 3.6.0 to 4.1.6 (#2226)

Bumps [actions/checkout](https://github.com/actions/checkout) from 3.6.0 to 4.1.6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/f43a0e5ff2bd294095638e18286ca9a3d1956744...a5ac7e51b41094c92402da3b24376905380afc29)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* README: adding link to scorecard (#2230)

* spmv_mv wrappers for rocsparse (#2233)

* spmv_mv wrappers for rocsparse (rocsparse_spmm())

* Use consistent types for alpha/beta in spmv wrappers

* Bump step-security/harden-runner from 2.8.0 to 2.8.1 (#2236)

Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.8.0 to 2.8.1.
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](https://github.com/step-security/harden-runner/compare/f086349bfa2bd1361f7909c78558e816508cdc10...17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6)

---
updated-dependencies:
- dependency-name: step-security/harden-runner
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump github/codeql-action from 3.25.7 to 3.25.8 (#2237)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.7 to 3.25.8.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/f079b8493333aace61c81488f8bd40919487bd9f...2e230e8fe0ad3a14a340ad0815ddb96d599d2aff)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump actions/dependency-review-action from 4.3.2 to 4.3.3 (#2235)

Bumps [actions/dependency-review-action](https://github.com/actions/dependency-review-action) from 4.3.2 to 4.3.3.
- [Release notes](https://github.com/actions/dependency-review-action/releases)
- [Commits](https://github.com/actions/dependency-review-action/compare/0c155c5e8556a497adf53f2c18edabf945ed8e70...72eb03d02c7872a771aacd928f3123ac62ad6d3a)

---
updated-dependencies:
- dependency-name: actions/dependency-review-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add testing for transpose corner cases (#2234)

* Add testing for transpose corner cases

crs, bsr, graph: test cases that are 0x0, 100x0 and 0x100. In these cases make
sure the matrix generator doesn't try to insert any entries (nnz = 0).

* Update sparse/unit_test/Test_Sparse_Transpose.hpp

Co-authored-by: Luc Berger <[email protected]>

* Update sparse/unit_test/Test_Sparse_Transpose.hpp

Co-authored-by: Luc Berger <[email protected]>

---------

Co-authored-by: Luc Berger <[email protected]>

* Graph: removing executable from repo (#2239)

* Fix logic around merge path with TPLs (#2240)

SPMV_MERGE_PATH is not always a native algorithm. Add
SPMV_NATIVE_MERGE_PATH to cover that case specifically. Test this new
option.

* spgemm unit test: change matrix value distribution (#2241)

Change the distribution A, B values are sampled from so that
values in C can't end up close to 0 (as the result of summing terms
that are larger). The relative error metric in is_same_matrix is sensitive
to this.

Fixes #2232

* kokkoskernels_tpls.cmake: remove duplicates arguments when creating argument for exported INTERFACE_INCLUDE_DIRECTORIES

Attempt to workaround issue #2238

* Sparse - BsrMatrix: adding new wiki example for documentation (#2228)

There is already an example for this but it uses a CrsMatrix as
starting point to build a BsrMatrix which is not really helpful in
general as the hope is that you can use the BsrMatrix without needing
the CrsMatrix as it would double the storage needed...

Addressing Kim's comments

* Sparse - CrsToBsr: fix type mismatch (#2242)

* Update rocsparse algo defaults (#2245)

* Update default spmv algorithms for rocsparse

- Use stream for common cases (default, fast setup) as it has nearly zero
  setup cost and performs well for somewhat balanced matrices
- Use adaptive (which is rocsparse's default) only if SPMV_MERGE_PATH
  is the algorithm, as it has a very high setup cost

* Re-enable rocsparse spmv for SPMV_FAST_SETUP

* In deprecated spmv, fix Controls algorithm mapping (#2246)

native -> SPMV_NATIVE
native-merge -> SPMV_NATIVE_MERGE_PATH
merge -> SPMV_MERGE_PATH
tpl -> SPMV_FAST_SETUP

* Add batched serial tbsv (#2202)

* Add batched serial tbsv

* remove incx argument and use strided views instead

* Add a new line at the end of files

* fix random number generation for complex numbers

* remove unused variables from internal tbsv serial functions

* remove allclose for testing

---------

Co-authored-by: Yuuichi Asahi <[email protected]>

* Bump actions/checkout from 4.1.6 to 4.1.7 (#2248)

Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.6 to 4.1.7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/a5ac7e51b41094c92402da3b24376905380afc29...692973e3d937129bcbf40652eb9f2f61becf3332)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump github/codeql-action from 3.25.8 to 3.25.10 (#2249)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.8 to 3.25.10.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/2e230e8fe0ad3a14a340ad0815ddb96d599d2aff...23acc5c183826b7a8a97bce3cecc52db901f8251)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* FindTPLROC*: updates to fix export of import targets

Changes for the Rocm tpls to match the handling as done with the Cuda tpls

Should resolve issue #2238

* Fix warning about memcpy (#2252)

When building Stokhos BlockCrs, this util function gave a warning
about memcpy modifying a non-trivially-copyable type. Silence it
by casting to void*

* RCM fixes, improvements (#2254)

* Fix RCM starting vertex issue, improve testing
* apply reversing as labels are computed
instead of at the end. Saves a loop over all the labels
* use min-degree starting vertex within each connected component

* spgemm: add profiling regions to native implementations (#2253)

* spgemm: add profiling regions to native implementations

* Add profiling region to KokkosSPGEMM::KokkosSPGEMM_symbolic

* sparse: replace macros with constexpr bools (#2260)

* Rename `Impl::alignPtr` to `Impl::alignPtrTo`, allow it to infer argument type (#2261)

* KokkosKernels::Impl::alignPtr infers argument type

* Rename KokkosKernels::Impl::alignPtr -> alignPtrTo

* Bump github/codeql-action from 3.25.10 to 3.25.11 (#2263)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.10 to 3.25.11.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/23acc5c183826b7a8a97bce3cecc52db901f8251...b611370bb5703a7efb587f9d136a52ea24c5c38c)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* sparse: spadd_symbolic fences before device values used on host (#2259)

* sparse: spadd_symbolic fences before device values used on host

* sparse: use prefix sum to remove explicit spadd fence

* sycl: use alternative `alignPtrTo` when SYCL is enabled (SpGEMM) (#2262)

* sycl: use alternative alignPtr when SYCL is enabled

The current alignPtr, as well as two other alternatives below, do not work on SYCL on Intel PVC.

unsigned int f1(unsigned int i, unsigned int align) {
    return ((i + align - 1) / align * align);
}

unsigned int f2(unsigned int i, unsigned int align) {
    return (i + align - 1) & (-align);
}

* alignPtrTo unit tests

* Help gcc/8.3 with ctad issue

Resolves #2264

Co-authored-by: Carl Pearson <[email protected]>

* Bump actions/upload-artifact from 4.3.3 to 4.3.4 (#2266)

Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.3 to 4.3.4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/65462800fd760344b1a7b4382951275a0abb4808...0b2256b8c012f0828dc542b3febcab082c67f72b)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* handle_t* -> unique_ptr<handle_t> in Bsr SpMV unit tests (#2269)

* Workarounds for removed cusparse functions (#2270)

cusparse 12.5 removed some functions that were deprecated, like the ILU
factorizations and the legacy csrsv (sparse triangular solve) functions.
As a workaround, if the cusparse version is >= 12.5 then disable the paths
in perftests that call those.

* BLAS - gemv: using fallback when mode is 't' or 'c' and onemkl is used (#2272)

* Implement batched serial pttrf (#2256)

* Batched serial pttrf implementation

* fix: use GEMM to add matrices

* fix: initialization order

* fformat

* fix: temporary variable in a test code

* fix: docstring of pttrf

* check_positive_definitiveness only if KOKKOSKERNELS_DEBUG_LEVEL > 0

* Improve the test for pttrf

* fix: int type

* fix: cleanup tests for SerialPttrf

* cleanup: remove unused deep_copies

* fix: docstrings and comments for pttrf

* ConjTranspose with conj and Transpose

* quick return in pttrf for size 1 or 0 matrix

* Add tests for invalid input

* fix: info computation

---------

Co-authored-by: Yuuichi Asahi <[email protected]>

* A little sptrsv cleanup before the main block effort (#2247)

* Some cleanup and refactoring

* First round of cleanup complete

* Fix a couple warnings

* formatting

* Sparse - SpMV: removing calls to unsuported oneapi - MKL functions (#2274)

* Sycl gemv beta (#2276)

* BLAS - GEMV: zero out Y when beta == 0 in SYCL TPL code path

* BLAS - GEMV: reverting wrong change from previous PR, my bad.

* Applying clang-format

* Unify alignPtrTo implementation (#2275)

* init (#2273)

* Bigger sptrsv cleanup (#2280)

* Some cleanup and refactoring
* Remove Upper/Lower TriLvlSchedTP2SolverFunctors
* Remove Upper/Lower single block functors
* Remove unused TriLvlSchedTP1SingleBlockFunctorDiagValues and merge upper/lower tri_solve_cg
* Merge two big upper/lower branch of tri_solve_chain
* Merge upper/lower tri_solve_streams
* Switch over block spiluk precond test to use new block sptrsv

* Bump actions/dependency-review-action from 4.3.3 to 4.3.4 (#2279)

Bumps [actions/dependency-review-action](https://github.com/actions/dependency-review-action) from 4.3.3 to 4.3.4.
- [Release notes](https://github.com/actions/dependency-review-action/releases)
- [Commits](https://github.com/actions/dependency-review-action/compare/72eb03d02c7872a771aacd928f3123ac62ad6d3a...5a2ce3f5b92ee19cbb1541a4984c76d921601d7c)

---
updated-dependencies:
- dependency-name: actions/dependency-review-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump github/codeql-action from 3.25.11 to 3.25.12 (#2278)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.11 to 3.25.12.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/b611370bb5703a7efb587f9d136a52ea24c5c38c...4fa2a7953630fd2f3fb380f21be14ede0169dd4f)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Propose increasing column limit to 120. (#2255)

* Change key files

* Full reformat

* Update format.yml

* Update ubuntu version for format checker

* A couple platforms do not correctly handle static complexes

* .github/workflows: Auto trigger AT2 ci upon review (#2243)

* Bump github/codeql-action from 3.25.12 to 3.25.13 (#2284)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.12 to 3.25.13.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/4fa2a7953630fd2f3fb380f21be14ede0169dd4f...2d790406f505036ef40ecba973cc774a50395aac)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump step-security/harden-runner from 2.8.1 to 2.9.0 (#2283)

Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.8.1 to 2.9.0.
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](https://github.com/step-security/harden-runner/compare/17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6...0d381219ddf674d61a7572ddd19d7941e271515c)

---
updated-dependencies:
- dependency-name: step-security/harden-runner
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add big reformat commits to ignore revs for blame (#2286)

* Bump github/codeql-action from 3.25.13 to 3.25.15 (#2288)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.13 to 3.25.15.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/2d790406f505036ef40ecba973cc774a50395aac...afb54ba388a7dca6ecae48f608c4ff05ff4cc77a)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ossf/scorecard-action from 2.3.3 to 2.4.0 (#2287)

Bumps [ossf/scorecard-action](https://github.com/ossf/scorecard-action) from 2.3.3 to 2.4.0.
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](https://github.com/ossf/scorecard-action/compare/dc50aa9510b46c811795eb24b2f1ba02a914e534...62b2cac7ed8198b15735ed49ab1e5cf35480ba46)

---
updated-dependencies:
- dependency-name: ossf/scorecard-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Sparse - coo2csr: deactivating test on PVC (#2290)

* Sparse - coo2csr: deactivating test on PVC

With this test deactivated everything in Kokkos Kernels passes.
Let us confirm that with a nightly build and potentially create
of SYCL CI-build.

* Protecting SYCL check with preprocessor guard

* cmake: add CMake language support for CUDA/HIP (#2173)

* cmake: add CMake language support for CUDA/HIP

* Apply suggestions of @brian-kelley

* Make sure clang is using a newer GCC on weaver (#2289)

It's clear from the name of the AT job GCC930_Light_Tpls_GCC930_Tpls_CLANG13CUDA10 that
the intent was to use gcc-9.3 but gcc-7.4.0 was the one actually being
used because the clang-13 module loads that gcc.

* Set version number to 4.4.0

* Revert "Changes to enable OneAPI usage with Trilinos build (#2185)"

This reverts commit b87dc951f64463fe5d6d4d886c0496ee804b2715.

* Add support for BSRs to sptrsv (#2281)

* Some cleanup and refactoring

* First round of cleanup complete

* Fix a couple warnings

* formatting

* Cleanup progress

* Fixes

* Remove Upper/Lower TriLvlSchedTP2SolverFunctors

* Remove Upper/Lower single block functors

* Remove unused TriLvlSchedTP1SingleBlockFunctorDiagValues and merge upper/lower tri_solve_cg

* Merge two big upper/lower branch of tri_solve_chain

* Merge upper/lower tri_solve_streams

* progres

* progress

* Progress, test added

* progress and fixes

* prog

* prog but broken

* Prog with debug prints

* Remove extreme debug printing

* works

* all working

* Remove test mangling

* Switch over block spiluk precond test to use new block sptrsv

* More test cleanup

* Fixes for GPU warnings

* Conflicts resolved, still work needed

* builds

* Formatting

* Update work to latest format style

* Remove unused functions. Remove prints. Add barriers

* Minor fixes

* lset is not used

* Fix for clang

* formatting

* New impl approach

* Unset macro

* There's no reason to limit team-policy alg to MAX_VEC_SIZE

* formatting

* Add missing kokkos-inline-funcs

* Fix warnings

* format

* Some compilers throw shadow warnings in static functions (#2297)

* Update changelog for 4.4.00

* Remove SYCL GEMV update

The SYCL GEMV update has been reverted in a later PR as the fix required was for the GEMV algorithm in the Sparse namespace, also known as SpMV. The previous BLAS::gemv fix was reverted

* Add entry for #2281, remove #2185

* docs.yaml: update kokkos version to 4.3.01

* update min kokkos version to 4.3.01

* apply clang-format

* update yaml files to use kokkos v 4.3.01

* github workflow: adding release workflow to have provenance for release artifacts (#2304)

This adds a workflow based on the scorecard recommendation for software provenance.
The workflow requires some manual actions to verify that the signiture in the release is correct.

* update master_history.txt for 4.4.00

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Luc Berger <[email protected]>
Co-authored-by: Carl Pearson <[email protected]>
Co-authored-by: Carl Pearson <[email protected]>
Co-authored-by: Ernesto Prudencio <[email protected]>
Co-authored-by: Brian Kelley <[email protected]>
Co-authored-by: James Foucar <[email protected]>
Co-authored-by: Junchao Zhang <[email protected]>
Co-authored-by: Damien L-G <[email protected]>
Co-authored-by: Caleb Schilly <[email protected]>
Co-authored-by: Damien L-G <[email protected]>
Co-authored-by: Sean Miller <[email protected]>
Co-authored-by: Vinh Dang <[email protected]>
Co-authored-by: Luc Berger-Vergiat (-EXP) <[email protected]>
Co-authored-by: brian-kelley <[email protected]>
Co-authored-by: eeprude <[email protected]>
Co-authored-by: Wyatt Horne <[email protected]>
Co-authored-by: whorne <[email protected]>
Co-authored-by: Evan Harvey <[email protected]>
Co-authored-by: malphil <[email protected]>
Co-authored-by: Evan Harvey <[email protected]>
Co-authored-by: Malachi <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: yasahi-hpc <[email protected]>
Co-authored-by: Yuuichi Asahi <[email protected]>
Co-authored-by: Daniel Arndt <[email protected]>
Co-authored-by: Baptiste Legouix <[email protected]>
Co-authored-by: Richard Berger <[email protected]>
lucbv added a commit that referenced this pull request Nov 25, 2024
* Fix2130 (#2132)

* Fix #2130

- Do not call BsrMatrix spmv impl if block size is 1
- Instead, convert it to unmanaged CrsMatrix and call spmv again
  - cuSPARSE returned an error code in this case
  - Better performance

* Formatting

* Remove redundant remove_pointer_t

Handle is already a non-pointer type

* Benchmark: modifying spmv benchmark to run range of spmv tests (#2135)

This could be further automated to run on matrix from suite sparse

* Kokkos Kernels: update version guards to drop old version of Kokkos (#2133)

Since we are now in the 4.2 series we only support up to 4.1.00.
Older version of Kokkos Core will require older version of Kokkos
Kernels for compatibility. Once 4.3.00 is out we will move to
drop support for the 4.1 series and only keep 4.2 and 4.3 series.

* ODE: BDF methods (#1930)

* ODE: adding BDF algorithms

Implementing BDF formula for stiff ODEs.
Orders 1 to 5 are available and tested.
The integrators can be called on GPU to
solve multiple systems in parallel.

* ODE: fixing storage handling for start-up RK stack

* ODE: clang-format

* ODE: first adaptive version of BDF

The current implementation only allows for adaptivity in time,
at this point the BDF Step actually converges as expected with
first order integration!

* ODE: fixing issues with adaptive BDF

The unit-test BDF_adaptive now shows the integration
of the logistic equation using adaptive time steps and
increasing integration order from 1 to 5.

* ODE: running BDF on StiffChemistry problem

The problem runs fine and is solved but there are oscillations
while the behavior of the solution is smooth. More investigation
is needed...

* BDF: fixing types and template parameters in batched calls

Bascially we need template parameters to be more versatile
and cannot assume that all rank1 views will have the exact
same underlying type, for instance layouts can be different.

* More fixes for GPUs only in tests this time.

* ODE: BDF adaptive, fix small bug

After adding rhs and update vectors to temp the subviews taken for
other variables need to be offset appropriately...

* Revert "More fixes for GPUs only in tests this time."

This reverts commit 2f70432761485bc6a4c65a1833e7299dd2c340e2.

* Revert "Revert "More fixes for GPUs only in tests this time.""

This reverts commit 836012bb529551727b3f5913057acad94dfe60df.

* ODE: BDF small change to temporarily avoid compile time issue

True fix involving a KOKKOS_VERSION check is upcoming after more
tests on GPU side...

* ODE: BDF fix for some printf statements that will go away soon...

* ODE: adding benchmark for BDF

The benchmark helps us monitor the performance of the BDF
implementaiton across multiple platforms as well as impact of
changes over time.

* ODE: improve benchmark interface...

* ODE: BDF changes to use RMS norm and change some default values

Small changes to compare more closely with reference implementation.
Some of these might be reverted eventually but that's fine for now.

* ODE: BDF convergence more stable and results look pretty good now!

Changing the Newton solver convergence criteria as well as changing
a few default input parameters leads to a more stable algorithms
which can now integrate the stiff Henderson autocatalytic example
well in 66 time steps instead of 200k for fixed order integration...

* ODE: BDF fix bug in initial time step calculation

The initial step routine was overwriting the initial right hand side
which led to obvious issues further down the road... now things should
work fine. Need to figure out if I can re-initialize the variables in
the perf test while excluding that time from each iteration.

* ODE: BDF removing bad print statement...

std::cout in device code

* ODE - BDF: improving perf test

Basically adding new untimed setup within the main loop of the
benchmark to reset the intial conditions, buffers and vectors
ahead of each iteration.

* Modifying unit-test to catch proper return type

* Applying clang-format

* cm_test_all_sandia: update caraway compilers

add rocm/5.6.1 and rocm/6.0.0, and openblas/0.3.23 as tpl

* Sparse MKL: changing the location of the MKL_SAFE_CALL macro (#2134)

* Sparse MKL: changing the location of the MKL_SAFE_CALL macro

Moving the macro outside of namespaces to ensure that it will be
interpreted correctly when called from any other location in the
library.

It does not make much sense to guard Impl code in the Experimental
namespace and in this case it cleans up a problem with namespace
disambiguation for the compiler...

* Sparse BsrSpMV: removing Experimental namespace from Impl namespace

* Applying clang-format

* Sparse SpMV: fixing more namespace issues!

* Fixing missing descriptor for bsr spmv

* Kokkos Kernels: change the default offset ETI from size_t to int (#2140)

This change makes it easier for customer to leverage TPL support
which almost always requires offset=int, ordinal=int to be enabled
meaning that no TPL support is available with our default ETI...

* KokkosSparse_spmv_bsrmatrix_spec: fix Bsr_TC_Precision namespacing

Resolve compilation errors in nightly cuda/12.2 A100 build

* Drop comment for cleaner clang-format fix

* Fix usage of RAII to set cusparse/rocsparse stream (#2141)

Temporary objects like "A()" get destructed immediately.
For the object to have scope lifetime, it needs a name like "A a();".
This was causing cusparse/rocsparse spmv to always execute on the default stream,
causing incorrect timing in the spmv perf test.

* Use execution space operator== (#2136)

It actually is part of the public interface

* cm_test_all_sandia: more caraway module updates and cleanup (#2145)

* Spmv perftest improvements (#2146)

* Spmv perf test improvements

- Add option to flush caches by filling a dummy buffer between
iterations
- Add option to call the non-reuse interface instead of handle/reuse
interface
- Fix modes T, H in nonsquare case (make x,y the correct length)

* Fix mode help text

* KokkosKernels Utils: cleaning the zero_vector interface

One of the overload requires an unused template, removing that
extraneous template and simplify how that function is called in
a second overload.

* Kokkos Kernels: fixing call to zero_vector in Gauss-Seidel

* CMakeLists.txt: Update develop to 4.3.99

* Address reviewer comments

* Update CMakeLists.txt

Co-authored-by: brian-kelley <[email protected]>

* cm_test_all_sandia: solo updates

module updates post TOSS upgrade

* Fix signed/unsigned comparison warnings (#2150)

This is only hit when spmv is called with integer scalars,
which doesn't happen in our CI but does often in Tpetra.

* SPMV tpl fixes, cusparse workaround (#2152)

* SPMV tpl fixes, workaround

* Avoid possible integer conversion warnings

* Document cusparseSpMM algos that were tested

* Applying clang-format

* Use default_size_type as default offset in matrix types (#2149)

Now a declaration like CrsMatrix<Scalar, Ordinal, Device>
will by default use an ETI'd type combination (as int is the default
ETI'd offset)

* spmv bsr perftest: move fences to right place (#2153)

* Kokkos Kernels: removing old code branches ahead of 4.3.00 release (#2139)

Some old code branches kept for compatibility with Kokkos Core
versions less than 4.2.00 are dropped after release 4.3.00.
The largest changes are the removal of support the Kokkos print
macro in favor of Kokkos::printf() and the removal of half support
from Kokkos Kernels since it is now in Kokkos Core.

* Code for running performance measurements on ger() (#2082)

* Correct flop count

* Addressing feedbacks from Luc

* Using 'zero()' instead of '0.'

* KokkosBlas1_axpby.hpp: change debug macro guard for printInformation (#2157)

* KokkosBlas1_axpby.hpp: change debug macro guard for printInformation

- resolves test failures in Trilinos (MueLu) that rely on gold file diff
comparisons by removing extra output in debug builds

* fix compilation error

* Add user tolerance to Serial SVD (#2120)

* Add user tolerance to Serial SVD
---------

Co-authored-by: whorne <[email protected]>
Co-authored-by: Carl Pearson <[email protected]>

* Add a simple Harwell-Boeing file reader (#2155)

* Add a simple Harwell-Boeing file reader

And a test that validates against the MM reader.

* Support for symmetrize

* This loop can be simplified, there's no diag duplication

* Improve IO test

* spmv tpls: use correct bool for eti template param (#2160)

(It should just be the default,
KokkosSpars::Impl::eti_spec_avail<..>::value)

* Fix sparse_ioutils test on kokkos-dev (#2162)

Adding a ss.sync call fixes it but I have no idea why it
was needed here. All the other stringstream reads work fine.

* Fix #2156 (#2164)

spmv: add special path for rank-2 x/y, but where both have 1 column
and a TPL is available for rank-1 but not rank-2.

Also call "subhandle->set_exec_space" correctly in the TPLs to ensure
proper synchronization between setup, spmv and cleanup (in the case that
different exec instances are used in different calls)

* Updates from feedback runnig Trilinos testing

- Update debug level to > 1 guarding `printInformation(...)` in
  KokkosBlas1_axpby.hpp to reduce noisy test output
- Loosen tolerance of lapack.svd test to avoid random failures that
  occur near prior tolerance level

* Fix #2167: classic MKL doesn't use space instance (#2168)

* CHANGELOG.md: 4.3.00 update

* KokkosLapack_svd_tpl_spec_decl: defer to MKL spec when LAPACK also enabled

Resolves redefintion of struct SVD compilation errors with both MKL and LAPACK are enabled
Reported by @maartenarnst in https://github.com/trilinos/Trilinos/issues/12891

Co-authored-by: brian-kelley <[email protected]>

* .github/workflows: Added bdw.yml

* .github/workflows: Added spr.yml

* .github/workflows: Added mi210.yml

* .github/workflows: Added h100.yml

* .github/workflows: Added volta70.yml

* .github/workflows: Added power9.yml and power9_tpls.yml

* Jgfouca/block spiluk fixes (#2172)

* Progress

* Attempt 1, fix multiplication order

* Converges in 1 step

* Various cleanups

* Be sure not to reduce performance of unblocked impl

Also add some comments.

* Remove test mangling

* Fixes for GPU

* Fix warning

* formatting

* Increase eps for floats

* This is no longer needed

* .github/workflows: Add PR_VEGA908_ROCM561_HIP_SERIAL_LEFT_OPENBLAS_OPENLAPACK_REL

* Add guard for cusparse spmv_mv_tpl_spec_avail

Address issue #2175
Configuring with magma tpl enabled and cusparse disabled mistakenly triggers the cusparse tpl avail check to be true
Guard the KOKKOSSPARSE_SPMV_MV_TPL_SPEC_AVAIL_CUSPARSE macros when CUSPARSE is enabled to prevent this

* .github/workflows: Remove OPENLAPACK from names

* .github/workflows: Remove power9 until we have hardware to test it on

* .github/workflows: Enable rocblas in rocm tpl check

* .github/workflows: Remove volta70 until we have hardware to test it on

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

* Resolves multiple definition of Magma and Cuda singletons (#2178)

Address issue #2175

* magma: fix linker errors for builds without cusolver (#2181)

* magma: fix linker errors for builds without cusolver

* BatchedGemm test: workaround testing cublas+magma

- temporary workaround to skip magma test when cublas enabled to avoid issues like #2177

* .github/workflows/mi210: Fix include paths

* workflows/osx.yml: test against most recent kokkos tag

- test against most recent kokkos release rather than develop branch, as
  done with AT CI, to avoid compatibility breakages

* Resolve vortex compilation issue by resolving (potentially) duplicate symbol (#2183)

Stick to pattern of removing leading 'c' or 'z' in method name and relying on the template type

Co-authored-by: malphil <[email protected]>

* Changes to enable OneAPI usage with Trilinos build (#2185)

- Get rid of SYCL_OVERRIDE setting
- Add MKL_PROVIDES_BLAS_LAPACK cmake variable and define so that
  code knows whether to use int, or MKL_INT
  - Trilinos builds might link with OneAPI for GPU but standard
    BLAS/LAPACK on CPU

* Fix macOS docs build (#2190)

* Fix docs build

* try docs fix

* make sphinx available at config time

* GH-Actions: adding security actions and scorecard (#2192)

Pretty much taking the new files from PR #2191 and re-creating
it in a clean PR on top of develop with small changes relevant
to our repository.

Cleaning up some workflows to tailor it for our needs

* Scorecard: adding manual dispatch and target default branch (#2195)

* BsrMatrix: Fix HostMirror typedef (#2196)

It needed to have size_type.

* update changelog for 4.3.1

* Update CHANGELOG.md

* docs.yml: change kokkos version to latest release

- avoid version range check issues for release tests

* Sparse - SpGEMM: labeling spgemm_symbolic in TPL layer a bit more clearly (#2193)

This just improves the readability of the output from the tools as it now
has a symbolic matching the numeric phase. Previously we only had spgemm
in the label which is a bit confusing as it could be the whole spgemm time
i.e. both symbolic and numeric, additionally we had symbolic in the MKL
path but not in cusparse, rocsparse...

* SpMV: Test NaN, fix NaN handling when beta=0 (#2188)

* Test_Sparse_spmv_bsr.hpp: add NaNs to tests

* handle NaN in spmv_beta_transpose when beta=0

* handle nan in SpmvMergeHierarchical when beta=0

* Test NaNs in Y, don't reuse modifed Y, catch NaNs in results test

* remove unused <iostream> include

* explicit casting of zero

* Test_sparse_spmv.hpp: remove unused nans parameter

* KokkosSparse_spmv.hpp: CUDA11 can't detect this function always returns

* Test_Sparse_spmv.hpp: remove unused variable

* Run unit tests in correct execution space

* Test_Sparse_spmv.hpp: remove unused type aliases

* Kokkos::nan() -> KokkosKernels::Impl::quiet_NaN()

* Disable cuBLAS dot wrapper (#2206)

(not deleted, just guarded with #if 0 and comments explaining)

It performs significantly worse than our native impl on 11.2, 11.8 and 12.0 on V100.
This is in the dot perf test with a warm-up call.

https://github.com/trilinos/Trilinos/issues/12982 was a symptom of this.

* Fix spmv regressions (#2204)

* Restore cusparse spmv ALG2 path for imbalanced

With correct version cutoffs

* spmv: use separate rank-1 and rank-2 tpl subhandles

* Remove redundant single-column path in native spmv_mv

* Fix unused param warning

* c++17: add [[fallthrough]] attribute (#1493)

* c++17: add [[fallthrough]] attribute

* cm_test_all_sandia: -Wimplicit-fallthrough

* Enable 3 at2 builds (#2210)

* .github/mi210: Enable on PRs

* .github/mi210: Disable non-tpl build

* .github/bdw: Enable PR_BDW_GNU1020_OPENMP_SERIAL_LEFT_OPENBLAS_REL

* .github/h100: Enable PR_HOPPER90_CUDA1180_CUDA_LEFT_RIGHT_REL

* Bump ossf/scorecard-action from 2.0.6 to 2.3.3 (#2214)

Bumps [ossf/scorecard-action](https://github.com/ossf/scorecard-action) from 2.0.6 to 2.3.3.
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](https://github.com/ossf/scorecard-action/compare/99c53751e09b9529366343771cc321ec74e9bd3d...dc50aa9510b46c811795eb24b2f1ba02a914e534)

---
updated-dependencies:
- dependency-name: ossf/scorecard-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump actions/upload-artifact from 3.1.3 to 4.3.3 (#2215)

Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3.1.3 to 4.3.3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/a8a3f3ad30e3422c9c7b888a15615d19a852ae32...65462800fd760344b1a7b4382951275a0abb4808)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump actions/dependency-review-action from 2.5.1 to 4.3.2 (#2217)

Bumps [actions/dependency-review-action](https://github.com/actions/dependency-review-action) from 2.5.1 to 4.3.2.
- [Release notes](https://github.com/actions/dependency-review-action/releases)
- [Commits](https://github.com/actions/dependency-review-action/compare/0efb1d1d84fc9633afcdaad14c485cbbc90ef46c...0c155c5e8556a497adf53f2c18edabf945ed8e70)

---
updated-dependencies:
- dependency-name: actions/dependency-review-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump step-security/harden-runner from 2.7.1 to 2.8.0 (#2218)

Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.7.1 to 2.8.0.
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](https://github.com/step-security/harden-runner/compare/a4aa98b93cab29d9b1101a6143fb8bce00e2eac4...f086349bfa2bd1361f7909c78558e816508cdc10)

---
updated-dependencies:
- dependency-name: step-security/harden-runner
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump github/codeql-action from 2.25.3 to 3.25.6 (#2216)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.25.3 to 3.25.6.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/ceaec5c11a131e0d282ff3b6f095917d234caace...9fdb3e49720b44c48891d036bb502feb25684276)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Kokkos Kernels: initial security policy (#2220)

We state were patches will be made and how to report security vulnerabilities to the project.

* Kokkos Kernels: adding SHA for github actions (#2221)

* Kokkos Kernels: adding SHA for github actions

* Adding sha for docker images

* More dependencies fix (#2222)

* workflows: fix sha for label checker docker image

* workflows: fixing Docker files dependencies.

* Fix Docker files (#2223)

* SPMV TPLs: improve profile region labels (#2219)

- Mark rank-2 versions as "spmv_mv" not "spmv" (the native impl has
  this, and it's useful to know which one is being run)
- Add missing commas separating "BSRMATRIX" and the scalar type name

* cusparse spgemm: provide non-null row-ptr (#2213)

* Bump github/codeql-action from 3.25.6 to 3.25.7 (#2225)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.6 to 3.25.7.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/9fdb3e49720b44c48891d036bb502feb25684276...f079b8493333aace61c81488f8bd40919487bd9f)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump actions/checkout from 3.6.0 to 4.1.6 (#2226)

Bumps [actions/checkout](https://github.com/actions/checkout) from 3.6.0 to 4.1.6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/f43a0e5ff2bd294095638e18286ca9a3d1956744...a5ac7e51b41094c92402da3b24376905380afc29)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* README: adding link to scorecard (#2230)

* spmv_mv wrappers for rocsparse (#2233)

* spmv_mv wrappers for rocsparse (rocsparse_spmm())

* Use consistent types for alpha/beta in spmv wrappers

* Bump step-security/harden-runner from 2.8.0 to 2.8.1 (#2236)

Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.8.0 to 2.8.1.
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](https://github.com/step-security/harden-runner/compare/f086349bfa2bd1361f7909c78558e816508cdc10...17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6)

---
updated-dependencies:
- dependency-name: step-security/harden-runner
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump github/codeql-action from 3.25.7 to 3.25.8 (#2237)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.7 to 3.25.8.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/f079b8493333aace61c81488f8bd40919487bd9f...2e230e8fe0ad3a14a340ad0815ddb96d599d2aff)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump actions/dependency-review-action from 4.3.2 to 4.3.3 (#2235)

Bumps [actions/dependency-review-action](https://github.com/actions/dependency-review-action) from 4.3.2 to 4.3.3.
- [Release notes](https://github.com/actions/dependency-review-action/releases)
- [Commits](https://github.com/actions/dependency-review-action/compare/0c155c5e8556a497adf53f2c18edabf945ed8e70...72eb03d02c7872a771aacd928f3123ac62ad6d3a)

---
updated-dependencies:
- dependency-name: actions/dependency-review-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add testing for transpose corner cases (#2234)

* Add testing for transpose corner cases

crs, bsr, graph: test cases that are 0x0, 100x0 and 0x100. In these cases make
sure the matrix generator doesn't try to insert any entries (nnz = 0).

* Update sparse/unit_test/Test_Sparse_Transpose.hpp

Co-authored-by: Luc Berger <[email protected]>

* Update sparse/unit_test/Test_Sparse_Transpose.hpp

Co-authored-by: Luc Berger <[email protected]>

---------

Co-authored-by: Luc Berger <[email protected]>

* Graph: removing executable from repo (#2239)

* Fix logic around merge path with TPLs (#2240)

SPMV_MERGE_PATH is not always a native algorithm. Add
SPMV_NATIVE_MERGE_PATH to cover that case specifically. Test this new
option.

* spgemm unit test: change matrix value distribution (#2241)

Change the distribution A, B values are sampled from so that
values in C can't end up close to 0 (as the result of summing terms
that are larger). The relative error metric in is_same_matrix is sensitive
to this.

Fixes #2232

* kokkoskernels_tpls.cmake: remove duplicates arguments when creating argument for exported INTERFACE_INCLUDE_DIRECTORIES

Attempt to workaround issue #2238

* Sparse - BsrMatrix: adding new wiki example for documentation (#2228)

There is already an example for this but it uses a CrsMatrix as
starting point to build a BsrMatrix which is not really helpful in
general as the hope is that you can use the BsrMatrix without needing
the CrsMatrix as it would double the storage needed...

Addressing Kim's comments

* Sparse - CrsToBsr: fix type mismatch (#2242)

* Update rocsparse algo defaults (#2245)

* Update default spmv algorithms for rocsparse

- Use stream for common cases (default, fast setup) as it has nearly zero
  setup cost and performs well for somewhat balanced matrices
- Use adaptive (which is rocsparse's default) only if SPMV_MERGE_PATH
  is the algorithm, as it has a very high setup cost

* Re-enable rocsparse spmv for SPMV_FAST_SETUP

* In deprecated spmv, fix Controls algorithm mapping (#2246)

native -> SPMV_NATIVE
native-merge -> SPMV_NATIVE_MERGE_PATH
merge -> SPMV_MERGE_PATH
tpl -> SPMV_FAST_SETUP

* Add batched serial tbsv (#2202)

* Add batched serial tbsv

* remove incx argument and use strided views instead

* Add a new line at the end of files

* fix random number generation for complex numbers

* remove unused variables from internal tbsv serial functions

* remove allclose for testing

---------

Co-authored-by: Yuuichi Asahi <[email protected]>

* Bump actions/checkout from 4.1.6 to 4.1.7 (#2248)

Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.6 to 4.1.7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/a5ac7e51b41094c92402da3b24376905380afc29...692973e3d937129bcbf40652eb9f2f61becf3332)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump github/codeql-action from 3.25.8 to 3.25.10 (#2249)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.8 to 3.25.10.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/2e230e8fe0ad3a14a340ad0815ddb96d599d2aff...23acc5c183826b7a8a97bce3cecc52db901f8251)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* FindTPLROC*: updates to fix export of import targets

Changes for the Rocm tpls to match the handling as done with the Cuda tpls

Should resolve issue #2238

* Fix warning about memcpy (#2252)

When building Stokhos BlockCrs, this util function gave a warning
about memcpy modifying a non-trivially-copyable type. Silence it
by casting to void*

* RCM fixes, improvements (#2254)

* Fix RCM starting vertex issue, improve testing
* apply reversing as labels are computed
instead of at the end. Saves a loop over all the labels
* use min-degree starting vertex within each connected component

* spgemm: add profiling regions to native implementations (#2253)

* spgemm: add profiling regions to native implementations

* Add profiling region to KokkosSPGEMM::KokkosSPGEMM_symbolic

* sparse: replace macros with constexpr bools (#2260)

* Rename `Impl::alignPtr` to `Impl::alignPtrTo`, allow it to infer argument type (#2261)

* KokkosKernels::Impl::alignPtr infers argument type

* Rename KokkosKernels::Impl::alignPtr -> alignPtrTo

* Bump github/codeql-action from 3.25.10 to 3.25.11 (#2263)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.10 to 3.25.11.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/23acc5c183826b7a8a97bce3cecc52db901f8251...b611370bb5703a7efb587f9d136a52ea24c5c38c)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* sparse: spadd_symbolic fences before device values used on host (#2259)

* sparse: spadd_symbolic fences before device values used on host

* sparse: use prefix sum to remove explicit spadd fence

* sycl: use alternative `alignPtrTo` when SYCL is enabled (SpGEMM) (#2262)

* sycl: use alternative alignPtr when SYCL is enabled

The current alignPtr, as well as two other alternatives below, do not work on SYCL on Intel PVC.

unsigned int f1(unsigned int i, unsigned int align) {
    return ((i + align - 1) / align * align);
}

unsigned int f2(unsigned int i, unsigned int align) {
    return (i + align - 1) & (-align);
}

* alignPtrTo unit tests

* Help gcc/8.3 with ctad issue

Resolves #2264

Co-authored-by: Carl Pearson <[email protected]>

* Bump actions/upload-artifact from 4.3.3 to 4.3.4 (#2266)

Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.3 to 4.3.4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/65462800fd760344b1a7b4382951275a0abb4808...0b2256b8c012f0828dc542b3febcab082c67f72b)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* handle_t* -> unique_ptr<handle_t> in Bsr SpMV unit tests (#2269)

* Workarounds for removed cusparse functions (#2270)

cusparse 12.5 removed some functions that were deprecated, like the ILU
factorizations and the legacy csrsv (sparse triangular solve) functions.
As a workaround, if the cusparse version is >= 12.5 then disable the paths
in perftests that call those.

* BLAS - gemv: using fallback when mode is 't' or 'c' and onemkl is used (#2272)

* Implement batched serial pttrf (#2256)

* Batched serial pttrf implementation

* fix: use GEMM to add matrices

* fix: initialization order

* fformat

* fix: temporary variable in a test code

* fix: docstring of pttrf

* check_positive_definitiveness only if KOKKOSKERNELS_DEBUG_LEVEL > 0

* Improve the test for pttrf

* fix: int type

* fix: cleanup tests for SerialPttrf

* cleanup: remove unused deep_copies

* fix: docstrings and comments for pttrf

* ConjTranspose with conj and Transpose

* quick return in pttrf for size 1 or 0 matrix

* Add tests for invalid input

* fix: info computation

---------

Co-authored-by: Yuuichi Asahi <[email protected]>

* A little sptrsv cleanup before the main block effort (#2247)

* Some cleanup and refactoring

* First round of cleanup complete

* Fix a couple warnings

* formatting

* Sparse - SpMV: removing calls to unsuported oneapi - MKL functions (#2274)

* Sycl gemv beta (#2276)

* BLAS - GEMV: zero out Y when beta == 0 in SYCL TPL code path

* BLAS - GEMV: reverting wrong change from previous PR, my bad.

* Applying clang-format

* Unify alignPtrTo implementation (#2275)

* init (#2273)

* Bigger sptrsv cleanup (#2280)

* Some cleanup and refactoring
* Remove Upper/Lower TriLvlSchedTP2SolverFunctors
* Remove Upper/Lower single block functors
* Remove unused TriLvlSchedTP1SingleBlockFunctorDiagValues and merge upper/lower tri_solve_cg
* Merge two big upper/lower branch of tri_solve_chain
* Merge upper/lower tri_solve_streams
* Switch over block spiluk precond test to use new block sptrsv

* Bump actions/dependency-review-action from 4.3.3 to 4.3.4 (#2279)

Bumps [actions/dependency-review-action](https://github.com/actions/dependency-review-action) from 4.3.3 to 4.3.4.
- [Release notes](https://github.com/actions/dependency-review-action/releases)
- [Commits](https://github.com/actions/dependency-review-action/compare/72eb03d02c7872a771aacd928f3123ac62ad6d3a...5a2ce3f5b92ee19cbb1541a4984c76d921601d7c)

---
updated-dependencies:
- dependency-name: actions/dependency-review-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump github/codeql-action from 3.25.11 to 3.25.12 (#2278)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.11 to 3.25.12.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/b611370bb5703a7efb587f9d136a52ea24c5c38c...4fa2a7953630fd2f3fb380f21be14ede0169dd4f)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Propose increasing column limit to 120. (#2255)

* Change key files

* Full reformat

* Update format.yml

* Update ubuntu version for format checker

* A couple platforms do not correctly handle static complexes

* .github/workflows: Auto trigger AT2 ci upon review (#2243)

* Bump github/codeql-action from 3.25.12 to 3.25.13 (#2284)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.12 to 3.25.13.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/4fa2a7953630fd2f3fb380f21be14ede0169dd4f...2d790406f505036ef40ecba973cc774a50395aac)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump step-security/harden-runner from 2.8.1 to 2.9.0 (#2283)

Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.8.1 to 2.9.0.
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](https://github.com/step-security/harden-runner/compare/17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6...0d381219ddf674d61a7572ddd19d7941e271515c)

---
updated-dependencies:
- dependency-name: step-security/harden-runner
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add big reformat commits to ignore revs for blame (#2286)

* Bump github/codeql-action from 3.25.13 to 3.25.15 (#2288)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.13 to 3.25.15.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/2d790406f505036ef40ecba973cc774a50395aac...afb54ba388a7dca6ecae48f608c4ff05ff4cc77a)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ossf/scorecard-action from 2.3.3 to 2.4.0 (#2287)

Bumps [ossf/scorecard-action](https://github.com/ossf/scorecard-action) from 2.3.3 to 2.4.0.
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](https://github.com/ossf/scorecard-action/compare/dc50aa9510b46c811795eb24b2f1ba02a914e534...62b2cac7ed8198b15735ed49ab1e5cf35480ba46)

---
updated-dependencies:
- dependency-name: ossf/scorecard-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Sparse - coo2csr: deactivating test on PVC (#2290)

* Sparse - coo2csr: deactivating test on PVC

With this test deactivated everything in Kokkos Kernels passes.
Let us confirm that with a nightly build and potentially create
of SYCL CI-build.

* Protecting SYCL check with preprocessor guard

* cmake: add CMake language support for CUDA/HIP (#2173)

* cmake: add CMake language support for CUDA/HIP

* Apply suggestions of @brian-kelley

* Make sure clang is using a newer GCC on weaver (#2289)

It's clear from the name of the AT job GCC930_Light_Tpls_GCC930_Tpls_CLANG13CUDA10 that
the intent was to use gcc-9.3 but gcc-7.4.0 was the one actually being
used because the clang-13 module loads that gcc.

* Bump actions/upload-artifact from 4.3.4 to 4.3.5 (#2295)

Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.4 to 4.3.5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/0b2256b8c012f0828dc542b3febcab082c67f72b...89ef406dd8d7e03cfd12d9e0a4a378f454709029)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* SpAdd handle: delete sort_option getter/setter (#2296)

SpAdd handle was originally a copy-paste of the spgemm
handle way back in #122, and included get_sort_option() and
set_sort_option() from spgemm. But these try to use the member
bool sort_option, which doesn't exist. Somehow these functions never
produced compile errors until someone tried to call them.

* Add support for BSRs to sptrsv (#2281)

* Some cleanup and refactoring

* First round of cleanup complete

* Fix a couple warnings

* formatting

* Cleanup progress

* Fixes

* Remove Upper/Lower TriLvlSchedTP2SolverFunctors

* Remove Upper/Lower single block functors

* Remove unused TriLvlSchedTP1SingleBlockFunctorDiagValues and merge upper/lower tri_solve_cg

* Merge two big upper/lower branch of tri_solve_chain

* Merge upper/lower tri_solve_streams

* progres

* progress

* Progress, test added

* progress and fixes

* prog

* prog but broken

* Prog with debug prints

* Remove extreme debug printing

* works

* all working

* Remove test mangling

* Switch over block spiluk precond test to use new block sptrsv

* More test cleanup

* Fixes for GPU warnings

* Conflicts resolved, still work needed

* builds

* Formatting

* Update work to latest format style

* Remove unused functions. Remove prints. Add barriers

* Minor fixes

* lset is not used

* Fix for clang

* formatting

* New impl approach

* Unset macro

* There's no reason to limit team-policy alg to MAX_VEC_SIZE

* formatting

* Add missing kokkos-inline-funcs

* Fix warnings

* format

* Some compilers throw shadow warnings in static functions (#2297)

* Update Solo GCC version: 10.2.1 -> 10.3.1 (#2300)

* github workflow: adding release workflow to have provenance for release artifacts (#2304)

This adds a workflow based on the scorecard recommendation for software provenance.
The workflow requires some manual actions to verify that the signiture in the release is correct.

* Improve crs/bsr sorting performance (#2293)

* CRS sorting improvements

- Wrote bulk sort/permutation based sorting for CRS graph, matrix, and
  BSR matrix (bulk = one large sort of all the entries, using row-major
  dense index as keys)
  - This is more performant for imbalanced entries per row
- If matrix dimensions are too large to do bulk sort, fall back to
  sorting within each row with a thread.

* Add perf test for sort_crs_matrix
* sort_crs: improve parallel labels
* Work around kokkos issue 7036
* sort_crs: replace radix sort lambda with functor
(Lambda segfaults with nvcc+openmp)
---------
Signed-off-by: Brian Kelley <[email protected]>

* Don't error out if graph unit tests disabled (#2305)

Graph unit tests, with TEST_ETI_ONLY=ON, require double and/or
float to be enabled as scalars. Instead of erroring out the configure,
just give a warning and disable the graph tests.

* Update version to 4.4.99 (#2302)

* Update version to 4.4.99

Update min kokkos version to 4.3.01

* update workflows yaml files to test with [email protected]

* Deprecate redundant team-level sort functions (#2306)

* Deprecate redundant team-level sort functions

These were moved into Kokkos core a long time ago with a nicer
interface and better testing. Replace our implementations with calls
to the Kokkos functions like Kokkos::Experimental::sort_team.

* Formatting

Signed-off-by: Brian Kelley <[email protected]>

* Use our own DefaultComparator, not use Kokkos impl

---------

Signed-off-by: Brian Kelley <[email protected]>

* Bump actions/upload-artifact from 4.3.5 to 4.3.6 (#2307)

Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.5 to 4.3.6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/89ef406dd8d7e03cfd12d9e0a4a378f454709029...834a144ee995460fba8ed112a2fc961b36a5ec5a)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump step-security/harden-runner from 2.9.0 to 2.9.1 (#2309)

Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.9.0 to 2.9.1.
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](https://github.com/step-security/harden-runner/compare/0d381219ddf674d61a7572ddd19d7941e271515c...5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde)

---
updated-dependencies:
- dependency-name: step-security/harden-runner
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump github/codeql-action from 3.25.15 to 3.26.0 (#2308)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.15 to 3.26.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/afb54ba388a7dca6ecae48f608c4ff05ff4cc77a...eb055d739abdc2e8de2e5f4ba1a8b246daa779aa)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Eti extern marking (#2292)

* ETI: adding headers for template instantiation declarations

* ETI: adding more decl files to eti

Now all the sparse kernels have an ETI decl file to prevent
multiple template instantiation.

* ETI: adding BLAS kernels that are called from Sparse kernels.

* Fixing CMAKE logic

* clang-format

* ETI work: finish the declarations for BLAS and adding GRAPH, LAPACK and BATCHED

* clang-format

* Fixing two headers and rename Nrm2w<2-D> as Nrm2w_mv

* update changelog for 4.4.00 (#2310)

* Bump github/codeql-action from 3.26.0 to 3.26.2 (#2311)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.0 to 3.26.2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/eb055d739abdc2e8de2e5f4ba1a8b246daa779aa...429e1977040da7a23b6822b13c129cd1ba93dbb2)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Restore size_t as default offset, in Tribits builds (#2313)

If building KokkosKernels standalone, leave int as the default offset
(this was the case since #2140). But if building KokkosKernels as a
Trilinos/Tribits package, then make size_t the default offset because
this is what the Tpetra stack currently uses.

Signed-off-by: Brian Kelley <[email protected]>

* Improve GH action to produce release artifacts (#2312)

* Fix minor typing error. (#2314)

* Bump github/codeql-action from 3.26.2 to 3.26.5 (#2315)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.2 to 3.26.5.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/429e1977040da7a23b6822b13c129cd1ba93dbb2...2c779ab0d087cd7fe7b826087247c2c81f27bfa6)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Implement batched serial pttrs (#2277)

* Implement batched serial pttrs

* Add tests for pttrs

* Add tag for pttrs

* fix: remove unnecessary specialization for pttrs internal

* format

* format

---------

Co-authored-by: Yuuichi Asahi <[email protected]>

* .github/workflows: Group jobs under common github-AT2 name (#2320)

* coo2csr: add parens to function calls (#2318)

* Bump github/codeql-action from 3.26.5 to 3.26.6 (#2323)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.5 to 3.26.6.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/2c779ab0d087cd7fe7b826087247c2c81f27bfa6...4dd16135b69a43b6c8efb853346f8437d92d3c93)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump actions/upload-artifact from 4.3.6 to 4.4.0 (#2324)

Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.6 to 4.4.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/834a144ee995460fba8ed112a2fc961b36a5ec5a...50769540e7f4bd5e21e526ee35c689e35e0d6874)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add MAGMA TPL support for GESV on HIP backend (#2326)

* Small changes for MAGMA GESV on HIP

* Apply clang-format

* Relax eps to 1e-8 for multi-rhs tests

---------

Co-authored-by: Vinh Quang Dang (-EXP) <[email protected]>

* implement batched serial pbtrf (#2322)

* implement batched serial pbtrf

* fix: docstring

* Add tests for info

* fix CodeQL

* fix: type

* Add a analytical test case for pbtrf

---------

Co-authored-by: Yuuichi Asahi <[email protected]>

* remove unneeded volatile qualifier for Kokkos::Single (#2333)

* AT-2: adding non-TPL build for HIP backend (#2329)

* AT-2: adding non-TPL build for HIP backend

Clean-up a few things in the mi210 workflow as well should
make it a little bit more readable and maintainable.

* AT-2: updating hip no tpl runs-on tag

By reusing the same tag this should allow the job to run without issues
with the same runner as the tpl job.

* removing tabs and putting whitespaces instead

* hopefully fixing paths in mi210.yml

* AT-2: using env variable to get abs path, let's see...

* replacing tabs with whitespaces

* AST-2: Fixing mkdir?

* removing a tab...

* Fix typo in working-directory for kokkos build step

* another fix to a path

* Fixing quotation...

* Fixing working-dir which is already in $GITHUB_WORKSPACE

* fixing path in the kokkos-kernels configure step

* Fixing configure step for tpl build

* Bump github/codeql-action from 3.26.6 to 3.26.7 (#2338)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.6 to 3.26.7.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/4dd16135b69a43b6c8efb853346f8437d92d3c93...8214744c546c1e5c8f03dde8fab3a7353211988d)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump step-security/harden-runner from 2.9.1 to 2.10.1 (#2339)

Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.9.1 to 2.10.1.
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](https://github.com/step-security/harden-runner/compare/5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde...91182cccc01eb5e619899d80e4e971d6181294a7)

---
updated-dependencies:
- dependency-name: step-security/harden-runner
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update changelog for 4.4.01 (#2340)

* Bump github/codeql-action from 3.26.7 to 3.26.8 (#2343)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.7 to 3.26.8.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/8214744c546c1e5c8f03dde8fab3a7353211988d...294a9d92911152fe08befb9ec03e240add280cb3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump github/codeql-action from 3.26.8 to 3.26.9 (#2348)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.8 to 3.26.9.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/294a9d92911152fe08befb9ec03e240add280cb3...461ef6c76dfe95d5c364de2f431ddbd31a417628)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* .github/workflows: Add remaining spr and bdw checks (#2321)

* .github/workflows: Add llvm1001 and inteloneapi AT2 checks

* .github/workflows: Enable gcc10 AT2 builds

* .github/workflows: Stage volta70 checks

* .github/workflows: Test spr against kokkos 4.3.01

* .github/workflows: Specify ETI types for spr

* .github/workflows: Disable two of the GNU1020 builds

* Add KokkosKernels::eager_initialize() to common (#2317)

* Add KokkosKernels::eager_initialize() to common

* Formatting

* TPL singletons: allow query of whether initialized

And test KokkosKernels::eager_initialize() using this

* Fix magma build

- build TPL singleton file into library when magma's enabled
- include correct magma TPL header with declarations, not definitions

* Modify validity checks for output views sizes in svd (#2350)

* Modify validity check for output views sizes in svd

* Apply clang format

* Apply clang format

* kk_is_gpu_exec_space() -> is_gpu_exec_space_v (#2354)

* Fix #2344: SVD hanging (#2345)

* Fix #2344: hang in SerialSVD

Add test for the case that failed.

* Add more SVD tests to exercise corner cases

Used temporary printfs in the two zero-diagonal codepaths to make
sure they are now covered by testing

* Revert replacing spadd example with reproducer

* Clean up debug printouts

* Fix -Wshadow

* SVD: Add more rank-deficient test cases

* Last fix for SVD, test cleanup

* SVD test fixes

* Comment both test cases from issue 2344

* workflow: adding permissions in workflow files (#2357)

This should make the OSS scorecard a little happier?

Signed-off-by: Luc <[email protected]>

* Bypass bulk sort in KokkosSparse::sort_crs_matrix sometimes (#2353)

* set [[maybe_unused]] attribute on mySys (#2355)

* Fix compilation error, kk_is_gpu_exec_space->is_gpu_exec_space_v (#2358)

Apply change consistent with PR #2354

* Bump github/codeql-action from 3.26.9 to 3.26.11 (#2360)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.9 to 3.26.11.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/461ef6c76dfe95d5c364de2f431ddbd31a417628...6db8d6351fd0be61f9ed8ebd12ccd35dcec51fea)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* sparse_sort_crs: fix column shuffle indices (#2346)

* random_shuffle -> shuffle

random_shuffle is deprecated / removed

* sparse_sort_crs: Fix row begin/end offset in entry shuffle

* workflows: fixing some action versions using current sha (#2361)

* Bump actions/checkout from 4.1.7 to 4.2.1 (#2363)

Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.7 to 4.2.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/692973e3d937129bcbf40652eb9f2f61becf3332...eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* workflow: update the documentation workflow to use pinned python modules (#2366)

* Workflow volta70 (#2356)

* worflow - volta70: cleaning up cmake recipes

* Adding volta70 to at2.yml

* gemm perf_test: print matrix sizes (#2362)

* workflows: fixing dependency for checkout action to make dependabot happy (#2369)

Signed-off-by: Luc <[email protected]>

* workflows: limit the permissions in volta70 build (#2370)

Reducing the permissions keeps the workflow and repository
safe from potential malicious deeds.

Signed-off-by: Luc Berger-Vergiat <[email protected]>

* OpenMPSmartStatic_SPMV.hpp: throw if posix_memalign fails (#2368)

* Bump actions/upload-artifact from 4.4.0 to 4.4.3 (#2378)

Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.4.0 to 4.4.3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/50769540e7f4bd5e21e526ee35c689e35e0d6874...b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump github/codeql-action from 3.26.11 to 3.26.12 (#2377)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.11 to 3.26.12.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/6db8d6351fd0be61f9ed8ebd12ccd35dcec51fea...c36620d31ac7c881962c3d9dd939c40ec9434f2b)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* set KokkosKernels_ENABLE_COMPONENT variables to value instead of variable name (#2380)

Signed-off-by: Carl Pearson <[email protected]>

* Block Sptrsv fixes (#2376)

* Go back to original impl with vector reduce

Signed-off-by: James Foucar <[email protected]>

* Disable tp1 test for clang+cuda+complex

Signed-off-by: James Foucar <[email protected]>

* Fixes and warn users about broken case

Signed-off-by: James Foucar <[email protected]>

* formatting

Signed-off-by: James Foucar <[email protected]>

* Fix comments and print skip message

Signed-off-by: James Foucar <[email protected]>

---------

Signed-off-by: James Foucar <[email protected]>

* Do not specify template argument when using Kokkos atomics (#2382)

Let Function Template Argument Deduction do its job, do not interfere.

Signed-off-by: Damien L-G <[email protected]>

* Blas1 asum: work around for openblas error with short vectors (#2384)

Signed-off-by: Carl William Pearson <[email protected]>

* Prefer atomic_assign(ptr, val) -> atomic_store(ptr, val) (#2383)

We are looking at deprecating atomic_assign() https://github.com/kokkos/kokkos/issues/7449
Use atomic_store() instead.

Signed-off-by: Damien L-G <[email protected]>

* search/replace KOKKOS_-prefixed macros (#2372)

Signed-off-by: Carl Pearson <[email protected]>

* Replace atomic_{inc, dec}[rement] (#2386)

Signed-off-by: Damien L-G <[email protected]>

* put default types in KokkosKernels namespace (#2341)

* put default types in KokkosKernels namespace

Signed-off-by: Carl Pearson <[email protected]>

* Deprecate global namespace default type aliases

Signed-off-by: Carl Pearson <[email protected]>

---------

Signed-off-by: Carl Pearson <[email protected]>

* perf_tests: remove false dependence on google test (#2385)

* perf_tests: remove false dependence on google test

Signed-off-by: Carl Pearson <[email protected]>

* KokkosBlas3_gemm_perf_test.hpp: remove comment

Signed-off-by: Carl Pearson <[email protected]>

* Test::epsilon -> Kokkos::ArithTraits<>::eps

Signed-off-by: Carl Pearson <[email protected]>

---------

Signed-off-by: Carl Pearson <[email protected]>

* Prefer `expected == atomic_compare_exchange(ptr, expected, desired)` (#2387)

* Prefer expected == atomic_compare_exchange(ptr, expected, desired)

Signed-off-by: Damien L-G <[email protected]>

* Reintroduce break statement that was accidentally removed

Signed-off-by: Damien L-G <[email protected]>

---------

Signed-off-by: Damien L-G <[email protected]>

* workflows: adding variable to set kokkos version to test against (#2389)

* workflows: adding variable to set kokkos version to test against

The variable is set directly in at2.yml so it can be uniformly
applied to all the "sub-workflows" making maintenance when a
new release of kokkos comes out easier.

Signed-off-by: Luc Berger-Vergiat <[email protected]>

* workflow: fix for the osx builds

The new variable to set the version of Kokkos Core to build against
needs to use the "in script syntax" not the bash syntax.

Signed-off-by: Luc Berger-Vergiat <[email protected]>

---------

Signed-off-by: Luc Berger-Vergiat <[email protected]>

* Bump github/codeql-action from 3.26.12 to 3.26.13 (#2391)

Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.12 to 3.26.13.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/c36620d31ac7c881962c3d9dd939c40ec9434f2b...f779452ac5af1c261dce0346a8f964149f49322b)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* remove deprecation message on intel 19 (#2393)

Signed-off-by: Carl Pearson <[email protected]>

* deprecate `__KOKKOSBATCHED_PROMOTION__` (#2392)

* deprecate __KOKKOSBATCHED_PROMOTION__

Signed-off-by: Carl Pearson <[email protected]>

* __KOKKOSBATCHED_PROMOTION___DEPRECATED_MACRO -> KOKKOSBATCHED_IMPL_PROMOTION

Signed-off-by: Carl Pearson <[email protected]>

---------

Signed-off-by: Carl Pearson <[email protected]>

* Reduce duplicated code in trsv (#2388)

* Reduce duplicated code in trsv
A slightly different for loop can avoid having to
separate out the last iteration.

* Fix inner loops underflow
* Change to a more-readable loop

Signed-off-by: James Foucar <[email protected]>

* Implement batched serial laswp (#2395)

* Implement batched serial laswp

Signed-off-by: Yuuichi Asahi <[email protected]>

* fix: integer types in laswp test

Signed-off-by: Yuuichi Asahi <[email protected]>

* change loop order based on base layout

Signed-off-by: Yuuichi Asahi <[email protected]>

* update serial laswp test based on review

Signed-off-by: Yuuichi Asahi <[email protected]>

---------

Signed-off-by: Yuuichi Asahi <[email protected]>
Co-authored-by: Yuuichi Asahi <[email protected]>

* 2392 missed a case where __KOKKOSBATCHED_PROMOTION__ was defined (#2396)

Signed-off-by: Carl Pearson <[email protected]>

* Rename reserved identifiers (#2373)

* clang-tidy file for reserved identifiers

Signed-off-by: Carl Pearson <[email protected]>

* Batched: don't use reserved names in include guards

Signed-off-by: Carl Pearson <[email protected]>

* BLAS: don't use reserved names in include guards

Signed-off-by: Carl Pearson <[email protected]>

---------

Signed-off-by: Carl Pearson <[email protected]>

* implement batched serial pbtrs (#2330)

* implement …
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants