template <char Value, typename ViewType>
struct Work {
template <std::integral IndexType>
KOKKOS_FUNCTION
void operator()(
const IndexType index)
const noexcept {
}
};
template <Kokkos::ExecutionSpace Exec>
public:
using policy_t = Kokkos::RangePolicy<Exec>;
using view_t = Kokkos::View<char[6], Exec>;
public:
,
data(Kokkos::view_alloc(Kokkos::WithoutInitializing, this->exec,
"data")) {
}
const auto mirror = Kokkos::create_mirror_view_and_copy(
data);
if (std::strcmp(mirror.data(), "ABCBA") != 0) {
throw std::runtime_error(std::format("'{}' is not equal to 'ABCBA'.", mirror.data()));
}
}
Kokkos::deep_copy(this->exec,
data, 0);
}
const auto graph = Kokkos::Experimental::create_graph(
Kokkos::Experimental::get_device_handle(this->exec), [&](const auto& root) {
});
graph.submit(this->exec);
this->exec.fence();
}
stdexec::sync_wait(
}
protected:
};
}
int main(
int argc,
char* argv[]) {
const Kokkos::ScopeGuard guard{argc, argv};
{
}
return EXIT_SUCCESS;
}
int main(int argc, char **argv)
constexpr parallel_for_t parallel_for
Kokkos::RangePolicy< Exec > policy_t
Kokkos::View< char[6], Exec > view_t
void with_kokkos_graph() const
Create the sequence with Kokkos::Graph.
Kokkos::utils::tests::scoped::ExecutionSpace< Exec > base_t
void with_graph_context() const
Create the sequence with Kokkos::Execution::GraphContext.
void operator()(const IndexType index) const noexcept
Execution context using Kokkos::Experimental::Graph under the hood.
auto get_scheduler() const noexcept -> GraphImpl::Scheduler< execution_space >