RAJA
RAJA provides a collection of platform portability abstractions for C++ HPC applications.
policy.hpp
Go to the documentation of this file.
1 
11 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
12 // Copyright (c) Lawrence Livermore National Security, LLC and other
13 // RAJA Project Developers. See top-level LICENSE and COPYRIGHT
14 // files for dates and other details. No copyright assignment is required
15 // to contribute to RAJA.
16 //
17 // SPDX-License-Identifier: (BSD-3-Clause)
18 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
19 
20 #ifndef RAJA_policy_tensor_policy_HPP
21 #define RAJA_policy_tensor_policy_HPP
22 
24 #include "RAJA/config.hpp"
25 
26 //
28 //
29 // Execution policies
30 //
32 //
33 
37 namespace RAJA
38 {
39 namespace policy
40 {
41 namespace tensor
42 {
43 
44 template<typename EXEC_POLICY,
45  typename TENSOR_TYPE,
46  camp::idx_t DIM,
47  camp::idx_t TILE_SIZE>
48 struct tensor_exec : public EXEC_POLICY
49 {
50  using exec_policy = EXEC_POLICY;
51  using tensor_type = TENSOR_TYPE;
52 
53  static constexpr camp::idx_t s_tensor_dim = DIM;
54  static constexpr camp::idx_t s_tile_size = TILE_SIZE;
55 };
56 
57 
58 } // end of namespace tensor
59 
60 } // end of namespace policy
61 
62 namespace expt
63 {
64 
65 
66 template<typename TENSOR_TYPE, camp::idx_t TILE_SIZE = -1>
67 using vector_exec =
69 
70 template<typename TENSOR_TYPE, camp::idx_t TILE_SIZE = -1>
73 
74 template<typename TENSOR_TYPE, camp::idx_t TILE_SIZE = -1>
77 
78 
79 } // namespace expt
80 
81 
82 } // end of namespace RAJA
83 
84 #endif
Header file for basic RAJA policy mechanics.
Definition: AlignedRangeIndexSetBuilders.cpp:35
Definition: policy.hpp:49
EXEC_POLICY exec_policy
Definition: policy.hpp:50
TENSOR_TYPE tensor_type
Definition: policy.hpp:51
static constexpr camp::idx_t s_tensor_dim
Definition: policy.hpp:53
static constexpr camp::idx_t s_tile_size
Definition: policy.hpp:54