kokkos-execution
0.0.1
Toggle main menu visibility
Loading...
Searching...
No Matches
load_check_add.hpp
Go to the documentation of this file.
1
#ifndef KOKKOS_EXECUTION_TESTS_UTILS_FUNCTORS_LOAD_CHECK_ADD_HPP
2
#define KOKKOS_EXECUTION_TESTS_UTILS_FUNCTORS_LOAD_CHECK_ADD_HPP
3
4
#include "Kokkos_Macros.hpp"
5
#ifdef KOKKOS_ENABLE_EXPERIMENTAL_CXX20_MODULES
6
import
kokkos.core;
7
#else
8
# include "Kokkos_Core.hpp"
9
#endif
10
11
namespace
Tests::Utils::Functors
{
12
18
template
<
typename
ValueType,
bool
OnDevice>
19
struct
LoadCheckAdd
{
20
ValueType
prev
;
21
ValueType
value
;
22
ValueType*
data
;
23
24
KOKKOS_FUNCTION
25
void
operator()
()
const
{
26
if
constexpr
(OnDevice) {
27
KOKKOS_IF_ON_HOST(Kokkos::abort(
"You should not be running on host."
);)
28
}
else
{
29
KOKKOS_IF_ON_DEVICE(Kokkos::abort(
"You should not be running on device."
);)
30
}
31
32
if
(*
data
!=
prev
) {
33
KOKKOS_IF_ON_HOST(Kokkos::abort(
"Unexpected value on host."
);)
34
KOKKOS_IF_ON_DEVICE(Kokkos::abort(
"Unexpected value on device."
);)
35
}
36
*
data
+=
value
;
37
}
38
};
39
40
}
// namespace Tests::Utils::Functors
41
42
#endif
// KOKKOS_EXECUTION_TESTS_UTILS_FUNCTORS_LOAD_CHECK_ADD_HPP
Tests::Utils::Functors
Definition
counter.hpp:11
Tests::Utils::Functors::LoadCheckAdd
Load the value at data and check it is equal to prev. Then, add value to it.
Definition
load_check_add.hpp:19
Tests::Utils::Functors::LoadCheckAdd::prev
ValueType prev
Definition
load_check_add.hpp:20
Tests::Utils::Functors::LoadCheckAdd::value
ValueType value
Definition
load_check_add.hpp:21
Tests::Utils::Functors::LoadCheckAdd::operator()
void operator()() const
Definition
load_check_add.hpp:25
Tests::Utils::Functors::LoadCheckAdd::data
ValueType * data
Definition
load_check_add.hpp:22
tests
utils
functors
load_check_add.hpp
Generated on
for kokkos-execution by
1.18.0