Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 3 additions & 2 deletions cmake/SetTrilinosCxxStandard.cmake
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Set up C++ language standard selection (rest is handled by TriBITS)
SET(${PROJECT_NAME}_CMAKE_CXX_STANDARD_DEFAULT 17)
SET(${PROJECT_NAME}_CMAKE_CXX_STANDARDS_ALLOWED "(17|20|23)")
SET(${PROJECT_NAME}_CMAKE_CXX_STANDARD_DEFAULT 20)
SET(${PROJECT_NAME}_CMAKE_CXX_STANDARDS_ALLOWED "(20|23)")
SET(CMAKE_CXX_STANDARD_REQUIRED ON CACHE BOOL "Require the specified C++ standard")
ADVANCED_SET(CMAKE_CXX_STANDARD ${${PROJECT_NAME}_CMAKE_CXX_STANDARD_DEFAULT}
CACHE STRING
"C++ standard number with values ${${PROJECT_NAME}_CMAKE_CXX_STANDARDS_ALLOWED} (default ${${PROJECT_NAME}_CMAKE_CXX_STANDARD_DEFAULT})")
Expand Down
10 changes: 0 additions & 10 deletions packages/framework/ini-files/config-specs.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1732,12 +1732,6 @@ opt-set-cmake-var Tempus_Test_NewmarkImplicitAForm_HarmonicOscillator_Damped_Fir
use rhel8_sems-gnu-8.5.0-openmpi-4.1.6-serial_debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables
use PACKAGE-ENABLES|ALL

[rhel8_cxx-20-sems-gnu-8.5.0-openmpi-4.1.6-serial_debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_all]
#uses sems-v2 modules
use rhel8_sems-gnu-8.5.0-openmpi-4.1.6-serial_debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables
use PACKAGE-ENABLES|ALL
opt-set-cmake-var CMAKE_CXX_STANDARD STRING FORCE : 20

[rhel8_sems-gnu-8.5.0-openmpi-4.1.6-serial_debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_all-no-epetra]
use rhel8_sems-gnu-8.5.0-openmpi-4.1.6-serial_debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables
use PACKAGE-ENABLES|ALL-NO-EPETRA
Expand Down Expand Up @@ -1845,8 +1839,6 @@ opt-set-cmake-var Belos_gcrodr_complex_hb_MPI_4_DISABLE
opt-set-cmake-var Belos_Tpetra_gcrodr_complex_hb_MPI_4_DISABLE BOOL : ON
opt-set-cmake-var Stratimikos_Galeri_xpetra_complex_double_Jacobi_MPI_4_DISABLE BOOL : ON

opt-set-cmake-var CMAKE_CXX_STANDARD STRING FORCE : 20

[rhel8_gcc-serial_release-debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_no-mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables]
use COMMON_SPACK_TPLS
use COMPILER|GNU
Expand Down Expand Up @@ -1985,8 +1977,6 @@ use PACKAGE-ENABLES|NO-PACKAGE-ENABLES

opt-set-cmake-var MPI_EXEC_PRE_NUMPROCS_FLAGS STRING : --bind-to;none --mca btl vader,self

opt-set-cmake-var CMAKE_CXX_STANDARD STRING FORCE : 20

[rhel8_gcc-openmpi-openmp_release-debug_static_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_all]
use rhel8_gcc-openmpi-openmp_release-debug_static_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables

Expand Down
57 changes: 57 additions & 0 deletions packages/kokkos-kernels/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,62 @@
# Change Log

## [5.0.0](https://github.com/kokkos/kokkos-kernels/tree/5.0.0)
[Full Changelog](https://github.com/kokkos/kokkos-kernels/compare/4.7.01...5.0.0)

### Enhancements and updates:
- Improve performance of par_ilut and improve benchmark [\#2846](https://github.com/kokkos/kokkos-kernels/pull/2846)
- Prefer bit manipulation functions from Kokkos Core [\#2786](https://github.com/kokkos/kokkos-kernels/pull/2786)
- Common - ArithTraits: moving from Kokkos to KokkosKernels [\#2771](https://github.com/kokkos/kokkos-kernels/pull/2771)
- Update headers in preparation for the 5.0 release [\#2795](https://github.com/kokkos/kokkos-kernels/pull/2795)
- Add a member function to BsrMatrix to convert to Crs [\#2809](https://github.com/kokkos/kokkos-kernels/pull/2809)

### Bug Fixes:
- Batched - QR: fixes for complex scalars [\#2590](https://github.com/kokkos/kokkos-kernels/pull/2590)
- Kokkos Batched InnerTrsm: Allocate in inner scope to avoid warnings with Sacado types [\#2810](https://github.com/kokkos/kokkos-kernels/pull/2810)
- Define Fortran interface macros for LAPACK [\#2802](https://github.com/kokkos/kokkos-kernels/pull/2802)
- Fixed blas includes [\#2776](https://github.com/kokkos/kokkos-kernels/pull/2776)
- Minor fix for coefficient type in SPMV_Functor [\#2730](https://github.com/kokkos/kokkos-kernels/pull/2730)
- Drop deprecated double4 type for CUDA 13 [\#2718](https://github.com/kokkos/kokkos-kernels/pull/2718)

### Deprecations:
- Require `KOKKOS_ENABLE_DEPRECATED_CODE_5` to be defined for including `<Kokkos_ArithTraits.hpp>` [\#2798](https://github.com/kokkos/kokkos-kernels/pull/2798)

### Cleanup:
- Batched: Remove deprecated macros [\#2836](https://github.com/kokkos/kokkos-kernels/pull/2836)
- Sparse, Graph: remove deprecated declarations [\#2835](https://github.com/kokkos/kokkos-kernels/pull/2835)
- Avoid opening the Kokkos namespace [\#2800](https://github.com/kokkos/kokkos-kernels/pull/2800)
- Avoid using `Kokkos::reduction_identity` [\#2751](https://github.com/kokkos/kokkos-kernels/pull/2751)
- Rename more reserved identifiers [\#2727](https://github.com/kokkos/kokkos-kernels/pull/2727)
- variety of reserved indentifier cleanups [\#2720](https://github.com/kokkos/kokkos-kernels/pull/2720)
- Rename type HostMirror -> host_mirror_type [\#2713](https://github.com/kokkos/kokkos-kernels/pull/2713)
- Documentation: small clean-ups [\#2749](https://github.com/kokkos/kokkos-kernels/pull/2749)

### Documentation and Testing:
- [Docs] Adding the graph coloring publication [\#2834](https://github.com/kokkos/kokkos-kernels/pull/2834)
- [Docs] Add batched serial trsv documentation [\#2830](https://github.com/kokkos/kokkos-kernels/pull/2830)
- [Docs] batched serial laswp [\#2828](https://github.com/kokkos/kokkos-kernels/pull/2828)
- [Docs] batched serial lacgv [\#2825](https://github.com/kokkos/kokkos-kernels/pull/2825)
- [Docs] batched serial iamax [\#2804](https://github.com/kokkos/kokkos-kernels/pull/2804)
- [Docs] Add batched serial trsv example for documentation [\#2803](https://github.com/kokkos/kokkos-kernels/pull/2803)
- [Docs] Add batched serial lacgv example for documentation [\#2801](https://github.com/kokkos/kokkos-kernels/pull/2801)
- [Docs] Add batched serial laswp example for documentation [\#2797](https://github.com/kokkos/kokkos-kernels/pull/2797)
- [Docs] batched serial tbsv [\#2796](https://github.com/kokkos/kokkos-kernels/pull/2796)
- [Docs] Add serial iamax example for documentation [\#2789](https://github.com/kokkos/kokkos-kernels/pull/2789)
- [Docs] Add serial tbsv example for documentation [\#2788](https://github.com/kokkos/kokkos-kernels/pull/2788)
- [Docs] batched serial syr [\#2787](https://github.com/kokkos/kokkos-kernels/pull/2787)
- [Docs] Add serial syr example for documentation [\#2774](https://github.com/kokkos/kokkos-kernels/pull/2774)
- [Docs] batched serial ger [\#2773](https://github.com/kokkos/kokkos-kernels/pull/2773)
- [Docs] Add batched serial gbtrf/gbtrs [\#2767](https://github.com/kokkos/kokkos-kernels/pull/2767)
- [Docs] Add batched serial getrf/getrs [\#2765](https://github.com/kokkos/kokkos-kernels/pull/2765)
- [Docs] Add serial ger example for documentation [\#2756](https://github.com/kokkos/kokkos-kernels/pull/2756)
- [Docs] List available batched dense functions in a table [\#2750](https://github.com/kokkos/kokkos-kernels/pull/2750)
- [Docs] batched serial pbtrf and pbtrs [\#2748](https://github.com/kokkos/kokkos-kernels/pull/2748)
- [Docs] batched serial pttrf and pttrs [\#2678](https://github.com/kokkos/kokkos-kernels/pull/2678)
- CI: Adding benchmark build and run on Aurora [\#2824](https://github.com/kokkos/kokkos-kernels/pull/2824)
- CI: Adding ci yaml file for Polaris [\#2812](https://github.com/kokkos/kokkos-kernels/pull/2812)
- CI: Add V100 CUDA 12.6.2 build with TPLs [\#2738](https://github.com/kokkos/kokkos-kernels/pull/2738)
- CI: adding new build to test previous minor release [\#2737](https://github.com/kokkos/kokkos-kernels/pull/2737)

## [4.7.01](https://github.com/kokkos/kokkos-kernels/tree/4.7.01)
[Full Changelog](https://github.com/kokkos/kokkos-kernels/compare/4.7.00...4.7.01)

Expand Down
12 changes: 6 additions & 6 deletions packages/kokkos-kernels/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ GET_DIRECTORY_PROPERTY(KOKKOSKERNELS_HAS_PARENT PARENT_DIRECTORY)
SET(KOKKOSKERNELS_TOP_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR})
SET(KOKKOSKERNELS_TOP_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})

SET(KokkosKernels_VERSION_MAJOR 4)
SET(KokkosKernels_VERSION_MINOR 7)
SET(KokkosKernels_VERSION_PATCH 01)
SET(KokkosKernels_VERSION_MAJOR 5)
SET(KokkosKernels_VERSION_MINOR 0)
SET(KokkosKernels_VERSION_PATCH 0)
SET(KokkosKernels_VERSION "${KokkosKernels_VERSION_MAJOR}.${KokkosKernels_VERSION_MINOR}.${KokkosKernels_VERSION_PATCH}")

#Set variables for config file
Expand Down Expand Up @@ -147,13 +147,13 @@ ELSE()
SET(CMAKE_HIP_ARCHITECTURES ${Kokkos_HIP_ARCHITECTURES})
ENDIF()
ENDIF()
IF(${Kokkos_VERSION} VERSION_GREATER_EQUAL "4.6.01")
IF(${Kokkos_VERSION} VERSION_GREATER_EQUAL "4.7.01")
MESSAGE(STATUS "Found Kokkos version ${Kokkos_VERSION} at ${Kokkos_DIR}")
IF((${Kokkos_VERSION} VERSION_GREATER "4.7.99"))
IF((${Kokkos_VERSION} VERSION_GREATER "5.0.99"))
MESSAGE(WARNING "Configuring with Kokkos ${Kokkos_VERSION} which is newer than the expected develop branch - version check may need update")
ENDIF()
ELSE()
MESSAGE(FATAL_ERROR "Kokkos Kernels ${KokkosKernels_VERSION} requires Kokkos 4.6.01 or greater (found ${Kokkos_VERSION})")
MESSAGE(FATAL_ERROR "Kokkos Kernels ${KokkosKernels_VERSION} requires Kokkos 4.7.01 or greater (found ${Kokkos_VERSION})")
ENDIF()
ENDIF()

Expand Down
15 changes: 0 additions & 15 deletions packages/kokkos-kernels/LICENSE_FILE_HEADER

This file was deleted.

15 changes: 1 addition & 14 deletions packages/kokkos-kernels/batched/KokkosBatched_Util.cpp
Original file line number Diff line number Diff line change
@@ -1,18 +1,5 @@
//@HEADER
// ************************************************************************
//
// Kokkos v. 4.0
// Copyright (2022) National Technology & Engineering
// Solutions of Sandia, LLC (NTESS).
//
// Under the terms of Contract DE-NA0003525 with NTESS,
// the U.S. Government retains certain rights in this software.
//
// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions.
// See https://kokkos.org/LICENSE for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//@HEADER
// SPDX-FileCopyrightText: Copyright Contributors to the Kokkos project
#include "KokkosBatched_Util.hpp"

/// \author Kyungjoo Kim ([email protected])
Expand Down
136 changes: 41 additions & 95 deletions packages/kokkos-kernels/batched/KokkosBatched_Util.hpp
Original file line number Diff line number Diff line change
@@ -1,18 +1,5 @@
//@HEADER
// ************************************************************************
//
// Kokkos v. 4.0
// Copyright (2022) National Technology & Engineering
// Solutions of Sandia, LLC (NTESS).
//
// Under the terms of Contract DE-NA0003525 with NTESS,
// the U.S. Government retains certain rights in this software.
//
// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions.
// See https://kokkos.org/LICENSE for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//@HEADER
// SPDX-FileCopyrightText: Copyright Contributors to the Kokkos project
#ifndef KOKKOSBATCHED_UTIL_HPP
#define KOKKOSBATCHED_UTIL_HPP

Expand All @@ -22,21 +9,6 @@

#define KOKKOSBATCHED_IMPL_PROMOTION 1

#if defined(KOKKOS_COMPILER_MSVC)
#define __KOKKOSBATCHED_PROMOTION__ /*NOLINT(bugprone-reserved-identifier)*/ \
(__pragma(message("warning: __KOKKOSBATCHED_PROMOTION__ is deprecated and will be removed in a future version")) \
KOKKOSBATCHED_IMPL_PROMOTION)
#elif defined(KOKKOS_COMPILER_GNU) || defined(KOKKOS_COMPILER_CLANG)
#define __KOKKOSBATCHED_PROMOTION__ /*NOLINT(bugprone-reserved-identifier)*/ \
(__extension__({ \
_Pragma("GCC warning \"__KOKKOSBATCHED_PROMOTION__ is deprecated and will be removed in a future version\""); \
KOKKOSBATCHED_IMPL_PROMOTION; \
}))
#else
// no good way to deprecate
#define __KOKKOSBATCHED_PROMOTION__ KOKKOSBATCHED_IMPL_PROMOTION // NOLINT(bugprone-reserved-identifier)
#endif

#include <iomanip>
#include <random>
#include <string>
Expand All @@ -58,59 +30,13 @@

// TPL macros
#if defined(KOKKOSKERNELS_ENABLE_TPL_MKL)

#if defined(KOKKOS_COMPILER_MSVC)
#define KOKKOSBATCHED_IMPL_ENABLE_INTEL_MKL \
(__pragma( \
message("warning: __KOKKOSBATCHED_ENABLE_INTEL_MKL__ is deprecated and will be removed in a future version")) 1)
#elif defined(KOKKOS_COMPILER_GNU) || defined(KOKKOS_COMPILER_CLANG)
#define KOKKOSBATCHED_IMPL_ENABLE_INTEL_MKL \
(__extension__({ \
_Pragma("warning: __KOKKOSBATCHED_ENABLE_INTEL_MKL__ is deprecated and will be removed in a future version"); \
1; \
}))
#else
#define KOKKOSBATCHED_IMPL_ENABLE_INTEL_MKL 1 // no good way to deprecate?
#endif
#define __KOKKOSBATCHED_ENABLE_INTEL_MKL__ KOKKOSBATCHED_IMPL_ENABLE_INTEL_MKL

#include "mkl_version.h"
#if __INTEL_MKL__ >= 2018

#if defined(KOKKOS_COMPILER_MSVC)
#define KOKKOSBATCHED_IMPL_ENABLE_INTEL_MKL_BATCHED \
(__pragma(message( \
"warning: __KOKKOSBATCHED_ENABLE_INTEL_MKL_BATCHED__ is deprecated and will be removed in a future version")) 1)
#elif defined(KOKKOS_COMPILER_GNU) || defined(KOKKOS_COMPILER_CLANG)
#define KOKKOSBATCHED_IMPL_ENABLE_INTEL_MKL_BATCHED \
(__extension__({ \
_Pragma( \
"warning: __KOKKOSBATCHED_ENABLE_INTEL_MKL_BATCHED__ is deprecated and will be removed in a future version"); \
1; \
}))
#else
#define KOKKOSBATCHED_IMPL_ENABLE_INTEL_MKL_BATCHED 1 // no good way to deprecate?
#endif
#define __KOKKOSBATCHED_ENABLE_INTEL_MKL_BATCHED__ KOKKOSBATCHED_IMPL_ENABLE_INTEL_MKL_BATCHED

#define KOKKOSBATCHED_IMPL_ENABLE_INTEL_MKL_BATCHED 1
#define KOKKOSBATCHED_IMPL_ENABLE_INTEL_MKL_COMPACT_BATCHED 1
#if defined(KOKKOS_COMPILER_MSVC)
#define __KOKKOSBATCHED_ENABLE_INTEL_MKL_COMPACT_BATCHED__ \
( \
__pragma(message("warning: __KOKKOSBATCHED_ENABLE_INTEL_MKL_COMPACT_BATCHED__ is deprecated and will be " \
"removed in a future version")) KOKKOSBATCHED_IMPL_ENABLE_INTEL_MKL_COMPACT_BATCHED)
#elif defined(KOKKOS_COMPILER_GNU) || defined(KOKKOS_COMPILER_CLANG)
#define __KOKKOSBATCHED_ENABLE_INTEL_MKL_COMPACT_BATCHED__ \
(__extension__({ \
_Pragma( \
"\"__KOKKOSBATCHED_ENABLE_INTEL_MKL_COMPACT_BATCHED__ is deprecated and will be removed in a future " \
"version\""); \
KOKKOSBATCHED_IMPL_ENABLE_INTEL_MKL_COMPACT_BATCHED; \
}))
#else
#define __KOKKOSBATCHED_ENABLE_INTEL_MKL_COMPACT_BATCHED__ \
KOKKOSBATCHED_IMPL_ENABLE_INTEL_MKL_COMPACT_BATCHED // no good way to deprecate?
#endif

#include "mkl.h"
// #include "mkl_types.h"
Expand All @@ -119,22 +45,6 @@

#if defined(KOKKOSKERNELS_ENABLE_TPL_LAPACKE)
#define KOKKOSBATCHED_IMPL_ENABLE_LAPACKE 1
#if defined(KOKKOS_COMPILER_MSVC)
#define __KOKKOSBATCHED_ENABLE_LAPACKE__ \
( \
__pragma(message("warning: __KOKKOSBATCHED_ENABLE_LAPACKE__ is deprecated and will be " \
"removed in a future version")) KOKKOSBATCHED_IMPL_ENABLE_LAPACKE)
#elif defined(KOKKOS_COMPILER_GNU) || defined(KOKKOS_COMPILER_CLANG)
#define __KOKKOSBATCHED_ENABLE_LAPACKE__ \
(__extension__({ \
_Pragma( \
"\"__KOKKOSBATCHED_ENABLE_LAPACKE__ is deprecated and will be removed in a future " \
"version\""); \
KOKKOSBATCHED_IMPL_ENABLE_LAPACKE; \
}))
#else
#define __KOKKOSBATCHED_ENABLE_LAPACKE__ KOKKOSBATCHED_IMPL_ENABLE_LAPACKE // no good way to deprecate?
#endif

#include "lapacke.h"
#endif
Expand All @@ -154,10 +64,10 @@ struct is_vector : public std::false_type {};
template <typename Ta, typename Tb>
struct is_same_mag_type {
static const bool is_specialized =
(Kokkos::ArithTraits<Ta>::is_specialized && Kokkos::ArithTraits<Tb>::is_specialized);
(KokkosKernels::ArithTraits<Ta>::is_specialized && KokkosKernels::ArithTraits<Tb>::is_specialized);

static const bool is_mag_type_same =
std::is_same<typename Kokkos::ArithTraits<Ta>::mag_type, typename Kokkos::ArithTraits<Tb>::mag_type>::value;
static const bool is_mag_type_same = std::is_same<typename KokkosKernels::ArithTraits<Ta>::mag_type,
typename KokkosKernels::ArithTraits<Tb>::mag_type>::value;

static const bool value = is_specialized && is_mag_type_same;
};
Expand Down Expand Up @@ -764,5 +674,41 @@ KOKKOS_INLINE_FUNCTION void fma_bounds_check(ViewType v, SizeType m, SizeType n,
v(m, n) = fma_alpha(reg_c, alpha, alpha_tag);
}

namespace Impl {
template <typename ViewType>
KOKKOS_INLINE_FUNCTION int get_extent_int(const ViewType &v, const int r) {
static_assert(Kokkos::is_view_v<ViewType>, "KokkosBatched: ViewType is not a Kokkos::View.");
constexpr std::size_t V_rank = ViewType::rank();
static_assert(V_rank <= 2, "KokkosBatched: ViewType must have rank 0, 1 or 2.");

if (r == 0) {
int V_extent_0 = V_rank < 1 ? 1 : v.extent_int(0);
return V_extent_0;
} else if (r == 1) {
int V_extent_1 = V_rank < 2 ? 1 : v.extent_int(1);
return V_extent_1;
} else {
return 1;
}
}

template <typename ViewType>
KOKKOS_INLINE_FUNCTION std::size_t get_stride(const ViewType &v, const int r) {
static_assert(Kokkos::is_view_v<ViewType>, "KokkosBatched: ViewType is not a Kokkos::View.");
constexpr std::size_t V_rank = ViewType::rank();
static_assert(V_rank <= 2, "KokkosBatched: ViewType must have rank 0, 1 or 2.");

if (r == 0) {
std::size_t V_stride_0 = V_rank < 1 ? 1 : v.stride(0);
return V_stride_0;
} else if (r == 1) {
std::size_t V_stride_1 = V_rank < 2 ? 1 : v.stride(1);
return V_stride_1;
} else {
return 1;
}
}
} // namespace Impl

} // namespace KokkosBatched
#endif // KOKKOSBATCHED_UTIL_HPP
Loading
Loading