kokkos-execution 0.0.1
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_Core.hpp"
5
7
13template <typename ValueType, bool OnDevice>
15 ValueType prev;
16 ValueType value;
17 ValueType* data;
18
19 KOKKOS_FUNCTION
20 void operator()() const {
21 if constexpr (OnDevice) {
22 KOKKOS_IF_ON_HOST(Kokkos::abort("You should not be running on host.");)
23 } else {
24 KOKKOS_IF_ON_DEVICE(Kokkos::abort("You should not be running on device.");)
25 }
26
27 if (*data != prev) {
28 KOKKOS_IF_ON_HOST(Kokkos::abort("Unexpected value on host.");)
29 KOKKOS_IF_ON_DEVICE(Kokkos::abort("Unexpected value on device.");)
30 }
31 *data += value;
32 }
33};
34
35} // namespace Tests::Utils::Functors
36
37#endif // KOKKOS_EXECUTION_TESTS_UTILS_FUNCTORS_LOAD_CHECK_ADD_HPP
Load the value at data and check it is equal to prev. Then, add value to it.