Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 24 additions & 6 deletions batched/KokkosBatched_Util.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@
#include <complex>
#include <iostream>

#include <Kokkos_Assert.hpp>
#include "Kokkos_Complex.hpp"
#include "Kokkos_DynRankView.hpp"

#include "KokkosKernels_config.h"
#include "KokkosKernels_Macros.hpp"
Expand Down Expand Up @@ -677,9 +679,17 @@ KOKKOS_INLINE_FUNCTION void fma_bounds_check(ViewType v, SizeType m, SizeType n,
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.");
// Check for view and dynrankview
if constexpr (Kokkos::is_view_v<ViewType>) {
static_assert(ViewType::rank() <= 2, "KokkosBatched: ViewType must have rank 0, 1 or 2.");
} else if constexpr (Kokkos::is_dyn_rank_view_v<ViewType>) {
KOKKOS_EXPECTS((v.rank() <= 2));
} else {
Comment thread
lucbv marked this conversation as resolved.
static_assert(Kokkos::is_view_v<ViewType> || Kokkos::is_dyn_rank_view_v<ViewType>,
"KokkosBatched: ViewType must be a Kokkos::View or a Kokkos::DynRankView");
}

const std::size_t V_rank = v.rank();

if (r == 0) {
int V_extent_0 = V_rank < 1 ? 1 : v.extent_int(0);
Expand All @@ -694,9 +704,17 @@ KOKKOS_INLINE_FUNCTION int get_extent_int(const ViewType &v, const int r) {

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.");
// Check for view and dynrankview
if constexpr (Kokkos::is_view_v<ViewType>) {
static_assert(ViewType::rank() <= 2, "KokkosBatched: ViewType must have rank 0, 1 or 2.");
} else if constexpr (Kokkos::is_dyn_rank_view_v<ViewType>) {
KOKKOS_EXPECTS((v.rank() <= 2));
} else {
static_assert(Kokkos::is_view_v<ViewType> || Kokkos::is_dyn_rank_view_v<ViewType>,
"KokkosBatched: ViewType must be a Kokkos::View or a Kokkos::DynRankView");
}
Comment thread
lucbv marked this conversation as resolved.

const std::size_t V_rank = v.rank();

if (r == 0) {
std::size_t V_stride_0 = V_rank < 1 ? 1 : v.stride(0);
Expand Down
Loading