RAJA
RAJA provides a collection of platform portability abstractions for C++ HPC applications.
traits.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_arch_cuda_traits_HPP
21 #define RAJA_policy_tensor_arch_cuda_traits_HPP
22 
23 #include "RAJA/config.hpp"
24 
25 #if defined(RAJA_CUDA_ACTIVE)
26 
27 
28 namespace RAJA
29 {
30 namespace internal
31 {
32 namespace expt
33 {
34 
35 template<typename T>
36 struct RegisterTraits<RAJA::expt::cuda_warp_register, T>
37 {
38  using element_type = T;
39  using register_policy = RAJA::expt::cuda_warp_register;
40  static constexpr camp::idx_t s_num_elem = RAJA_CUDA_WARPSIZE;
41  static constexpr camp::idx_t s_num_bits = sizeof(T) * s_num_elem;
42  using int_element_type = int32_t;
43 };
44 
45 } // namespace expt
46 } // namespace internal
47 } // namespace RAJA
48 
49 
50 #endif // RAJA_CUDA_ACTIVE
51 
52 #endif
Definition: AlignedRangeIndexSetBuilders.cpp:35