1 #ifndef ARRAY_DEEP_COPY_HPP
2 #define ARRAY_DEEP_COPY_HPP
10 template<
typename T,
typename Device>
11 inline void array_deep_copy(T* array,
const Kokkos::View<T*,Kokkos::LayoutRight,Device>& view){
12 Kokkos::View<T*,Kokkos::LayoutRight, Kokkos::HostSpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> array_view(
13 array,view.extent(0));
14 Kokkos::deep_copy(array_view, view);
17 template<
typename T,
typename Device>
18 inline void array_deep_copy(T* array,
const Kokkos::View<T**,Kokkos::LayoutRight,Device>& view){
19 Kokkos::View<T**,Kokkos::LayoutRight, Kokkos::HostSpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> array_view(
20 array,view.extent(0),view.extent(1));
21 Kokkos::deep_copy(array_view, view);
24 template<
typename T,
typename Device>
25 inline void array_deep_copy(T* array,
const Kokkos::View<T***,Kokkos::LayoutRight,Device>& view){
26 Kokkos::View<T***,Kokkos::LayoutRight, Kokkos::HostSpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> array_view(
27 array,view.extent(0),view.extent(1),view.extent(2));
28 Kokkos::deep_copy(array_view, view);
31 template<
typename T,
typename Device>
32 inline void array_deep_copy(T* array,
const Kokkos::View<T****,Kokkos::LayoutRight,Device>& view){
33 Kokkos::View<T****,Kokkos::LayoutRight, Kokkos::HostSpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> array_view(
34 array,view.extent(0),view.extent(1),view.extent(2),view.extent(3));
35 Kokkos::deep_copy(array_view, view);
38 template<
typename T,
typename Device>
39 inline void array_deep_copy(T* array,
const Kokkos::View<T*****,Kokkos::LayoutRight,Device>& view){
40 Kokkos::View<T*****,Kokkos::LayoutRight, Kokkos::HostSpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> array_view(
41 array,view.extent(0),view.extent(1),view.extent(2),view.extent(3),view.extent(4));
42 Kokkos::deep_copy(array_view, view);
45 template<
typename T,
typename Device>
46 inline void array_deep_copy(T* array,
const Kokkos::View<T******,Kokkos::LayoutRight,Device>& view){
47 Kokkos::View<T******,Kokkos::LayoutRight, Kokkos::HostSpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> array_view(
48 array,view.extent(0),view.extent(1),view.extent(2),view.extent(3),view.extent(4),view.extent(5));
49 Kokkos::deep_copy(array_view, view);
53 template<
typename T,
typename Device>
54 inline void array_deep_copy(
const Kokkos::View<T*,Kokkos::LayoutRight,Device>& view, T* array){
55 Kokkos::View<T*,Kokkos::LayoutRight, Kokkos::HostSpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> array_view(
56 array,view.extent(0));
57 Kokkos::deep_copy(view, array_view);
60 template<
typename T,
typename Device>
61 inline void array_deep_copy(
const Kokkos::View<T**,Kokkos::LayoutRight,Device>& view, T* array){
62 Kokkos::View<T**,Kokkos::LayoutRight, Kokkos::HostSpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> array_view(
63 array,view.extent(0),view.extent(1));
64 Kokkos::deep_copy(view, array_view);
67 template<
typename T,
typename Device>
68 inline void array_deep_copy(
const Kokkos::View<T***,Kokkos::LayoutRight,Device>& view, T* array){
69 Kokkos::View<T***,Kokkos::LayoutRight, Kokkos::HostSpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> array_view(
70 array,view.extent(0),view.extent(1),view.extent(2));
71 Kokkos::deep_copy(view, array_view);
74 template<
typename T,
typename Device>
75 inline void array_deep_copy(
const Kokkos::View<T****,Kokkos::LayoutRight,Device>& view, T* array){
76 Kokkos::View<T****,Kokkos::LayoutRight, Kokkos::HostSpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> array_view(
77 array,view.extent(0),view.extent(1),view.extent(2),view.extent(3));
78 Kokkos::deep_copy(view, array_view);
81 template<
typename T,
typename Device>
82 inline void array_deep_copy(
const Kokkos::View<T*****,Kokkos::LayoutRight,Device>& view, T* array){
83 Kokkos::View<T*****,Kokkos::LayoutRight, Kokkos::HostSpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> array_view(
84 array,view.extent(0),view.extent(1),view.extent(2),view.extent(3),view.extent(4));
85 Kokkos::deep_copy(view, array_view);
88 template<
typename T,
typename Device>
89 inline void array_deep_copy(
const Kokkos::View<T******,Kokkos::LayoutRight,Device>& view, T* array){
90 Kokkos::View<T******,Kokkos::LayoutRight, Kokkos::HostSpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> array_view(
91 array,view.extent(0),view.extent(1),view.extent(2),view.extent(3),view.extent(4),view.extent(5));
92 Kokkos::deep_copy(view, array_view);
102 inline void subarray_deep_copy(T* array,
const Kokkos::View<T*,Kokkos::LayoutRight,DeviceType>& view,
int isp){
103 Kokkos::View<T*,Kokkos::LayoutRight, Kokkos::HostSpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> array_view(
104 array + view.size()*isp,view.extent(0));
105 Kokkos::deep_copy(array_view, view);
109 inline void subarray_deep_copy(T* array,
const Kokkos::View<T***,Kokkos::LayoutRight,DeviceType>& view,
int isp){
110 Kokkos::View<T***,Kokkos::LayoutRight, Kokkos::HostSpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> array_view(
111 array + view.size()*isp,view.extent(0),view.extent(1),view.extent(2));
112 Kokkos::deep_copy(array_view, view);
117 inline void subarray_deep_copy(
const Kokkos::View<T*,Kokkos::LayoutRight,DeviceType>& view, T* array,
int isp){
118 Kokkos::View<T*,Kokkos::LayoutRight, Kokkos::HostSpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> array_view(
119 array + view.size()*isp,view.extent(0));
120 Kokkos::deep_copy(view, array_view);
124 inline void subarray_deep_copy(
const Kokkos::View<T***,Kokkos::LayoutRight,DeviceType>& view, T* array,
int isp){
125 Kokkos::View<T***,Kokkos::LayoutRight, Kokkos::HostSpace, Kokkos::MemoryTraits<Kokkos::Unmanaged>> array_view(
126 array + view.size()*isp,view.extent(0),view.extent(1),view.extent(2));
127 Kokkos::deep_copy(view, array_view);
void array_deep_copy(T *array, const Kokkos::View< T *, Kokkos::LayoutRight, Device > &view)
Definition: array_deep_copy.hpp:11
void subarray_deep_copy(T *array, const Kokkos::View< T *, Kokkos::LayoutRight, DeviceType > &view, int isp)
Definition: array_deep_copy.hpp:102