Skip to content

Commit a946c89

Browse files
committed
Removed reinterpret_cast from ArrayView.
1 parent f4d22db commit a946c89

34 files changed

+916
-643
lines changed

benchmarks/benchmarkArray1DR2TensorMultiplicationKernels.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,16 +54,16 @@ namespace benchmarking
5454

5555
template< typename VALUE_TYPE_CONST, int USD >
5656
inline LVARRAY_HOST_DEVICE constexpr
57-
void R2TensorMultiplyFortran( LvArray::ArraySlice< VALUE_TYPE_CONST, 2, USD, INDEX_TYPE > const & a,
58-
LvArray::ArraySlice< VALUE_TYPE_CONST, 2, USD, INDEX_TYPE > const & b,
59-
LvArray::ArraySlice< VALUE_TYPE, 2, USD, INDEX_TYPE > const & c )
57+
void R2TensorMultiplyFortran( LvArray::ArraySlice< VALUE_TYPE_CONST, 2, USD, INDEX_TYPE > const a,
58+
LvArray::ArraySlice< VALUE_TYPE_CONST, 2, USD, INDEX_TYPE > const b,
59+
LvArray::ArraySlice< VALUE_TYPE, 2, USD, INDEX_TYPE > const c )
6060
{ INNER_LOOP( a( j, l ), b( l, k ), c( j, k ) ) }
6161

6262
template< typename VALUE_TYPE_CONST, int USD >
6363
RAJA_INLINE LVARRAY_HOST_DEVICE constexpr
64-
void R2TensorMultiplySubscript( LvArray::ArraySlice< VALUE_TYPE_CONST, 2, USD, INDEX_TYPE > const & a,
65-
LvArray::ArraySlice< VALUE_TYPE_CONST, 2, USD, INDEX_TYPE > const & b,
66-
LvArray::ArraySlice< VALUE_TYPE, 2, USD, INDEX_TYPE > const & c )
64+
void R2TensorMultiplySubscript( LvArray::ArraySlice< VALUE_TYPE_CONST, 2, USD, INDEX_TYPE > const a,
65+
LvArray::ArraySlice< VALUE_TYPE_CONST, 2, USD, INDEX_TYPE > const b,
66+
LvArray::ArraySlice< VALUE_TYPE, 2, USD, INDEX_TYPE > const c )
6767
{ INNER_LOOP( a[ j ][ l ], b[ l ][ k ], c[ j ][ k ] ) }
6868

6969

benchmarks/benchmarkArray1DR2TensorMultiplicationKernels.hpp

Lines changed: 48 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -64,17 +64,17 @@ class ArrayOfR2TensorsNative
6464

6565
void fortranView() const
6666
{
67-
ArrayViewT< VALUE_TYPE const, PERMUTATION > const & a = m_a;
68-
ArrayViewT< VALUE_TYPE const, PERMUTATION > const & b = m_b;
69-
ArrayViewT< VALUE_TYPE, PERMUTATION > const & c = m_c;
67+
ArrayViewT< VALUE_TYPE const, PERMUTATION > const a = m_a.toViewConst();
68+
ArrayViewT< VALUE_TYPE const, PERMUTATION > const b = m_b.toViewConst();
69+
ArrayViewT< VALUE_TYPE, PERMUTATION > const c = m_c.toView();
7070
TIMING_LOOP( fortranViewKernel( a, b, c ) );
7171
}
7272

7373
void fortranSlice() const
7474
{
75-
ArraySliceT< VALUE_TYPE const, PERMUTATION > const a = m_a;
76-
ArraySliceT< VALUE_TYPE const, PERMUTATION > const b = m_b;
77-
ArraySliceT< VALUE_TYPE, PERMUTATION > const c = m_c;
75+
ArraySliceT< VALUE_TYPE const, PERMUTATION > const a = m_a.toSliceConst();
76+
ArraySliceT< VALUE_TYPE const, PERMUTATION > const b = m_b.toSliceConst();
77+
ArraySliceT< VALUE_TYPE, PERMUTATION > const c = m_c.toSlice();
7878
TIMING_LOOP( fortranSliceKernel( a, b, c ) );
7979
}
8080

@@ -83,17 +83,17 @@ class ArrayOfR2TensorsNative
8383

8484
void subscriptView() const
8585
{
86-
ArrayViewT< VALUE_TYPE const, PERMUTATION > const & a = m_a;
87-
ArrayViewT< VALUE_TYPE const, PERMUTATION > const & b = m_b;
88-
ArrayViewT< VALUE_TYPE, PERMUTATION > const & c = m_c;
86+
ArrayViewT< VALUE_TYPE const, PERMUTATION > const a = m_a.toViewConst();
87+
ArrayViewT< VALUE_TYPE const, PERMUTATION > const b = m_b.toViewConst();
88+
ArrayViewT< VALUE_TYPE, PERMUTATION > const c = m_c.toView();
8989
TIMING_LOOP( subscriptViewKernel( a, b, c ) );
9090
}
9191

9292
void subscriptSlice() const
9393
{
94-
ArraySliceT< VALUE_TYPE const, PERMUTATION > const a = m_a;
95-
ArraySliceT< VALUE_TYPE const, PERMUTATION > const b = m_b;
96-
ArraySliceT< VALUE_TYPE, PERMUTATION > const c = m_c;
94+
ArraySliceT< VALUE_TYPE const, PERMUTATION > const a = m_a.toSliceConst();
95+
ArraySliceT< VALUE_TYPE const, PERMUTATION > const b = m_b.toSliceConst();
96+
ArraySliceT< VALUE_TYPE, PERMUTATION > const c = m_c.toSlice();
9797
TIMING_LOOP( subscriptSliceKernel( a, b, c ) );
9898
}
9999

@@ -102,17 +102,17 @@ class ArrayOfR2TensorsNative
102102

103103
void tensorAbstractionFortranView() const
104104
{
105-
ArrayViewT< VALUE_TYPE const, PERMUTATION > const & a = m_a;
106-
ArrayViewT< VALUE_TYPE const, PERMUTATION > const & b = m_b;
107-
ArrayViewT< VALUE_TYPE, PERMUTATION > const & c = m_c;
105+
ArrayViewT< VALUE_TYPE const, PERMUTATION > const a = m_a.toViewConst();
106+
ArrayViewT< VALUE_TYPE const, PERMUTATION > const b = m_b.toViewConst();
107+
ArrayViewT< VALUE_TYPE, PERMUTATION > const c = m_c.toView();
108108
TIMING_LOOP( tensorAbstractionFortranViewKernel( a, b, c ) );
109109
}
110110

111111
void tensorAbstractionFortranSlice() const
112112
{
113-
ArraySliceT< VALUE_TYPE const, PERMUTATION > const a = m_a;
114-
ArraySliceT< VALUE_TYPE const, PERMUTATION > const b = m_b;
115-
ArraySliceT< VALUE_TYPE, PERMUTATION > const c = m_c;
113+
ArraySliceT< VALUE_TYPE const, PERMUTATION > const a = m_a.toSliceConst();
114+
ArraySliceT< VALUE_TYPE const, PERMUTATION > const b = m_b.toSliceConst();
115+
ArraySliceT< VALUE_TYPE, PERMUTATION > const c = m_c.toSlice();
116116
TIMING_LOOP( tensorAbstractionFortranSliceKernel( a, b, c ) );
117117
}
118118

@@ -121,17 +121,17 @@ class ArrayOfR2TensorsNative
121121

122122
void tensorAbstractionSubscriptView() const
123123
{
124-
ArrayViewT< VALUE_TYPE const, PERMUTATION > const & a = m_a;
125-
ArrayViewT< VALUE_TYPE const, PERMUTATION > const & b = m_b;
126-
ArrayViewT< VALUE_TYPE, PERMUTATION > const & c = m_c;
124+
ArrayViewT< VALUE_TYPE const, PERMUTATION > const a = m_a.toViewConst();
125+
ArrayViewT< VALUE_TYPE const, PERMUTATION > const b = m_b.toViewConst();
126+
ArrayViewT< VALUE_TYPE, PERMUTATION > const c = m_c.toView();
127127
TIMING_LOOP( tensorAbstractionSubscriptViewKernel( a, b, c ) );
128128
}
129129

130130
void tensorAbstractionSubscriptSlice() const
131131
{
132-
ArraySliceT< VALUE_TYPE const, PERMUTATION > const a = m_a;
133-
ArraySliceT< VALUE_TYPE const, PERMUTATION > const b = m_b;
134-
ArraySliceT< VALUE_TYPE, PERMUTATION > const c = m_c;
132+
ArraySliceT< VALUE_TYPE const, PERMUTATION > const a = m_a.toSliceConst();
133+
ArraySliceT< VALUE_TYPE const, PERMUTATION > const b = m_b.toSliceConst();
134+
ArraySliceT< VALUE_TYPE, PERMUTATION > const c = m_c.toSlice();
135135
TIMING_LOOP( tensorAbstractionSubscriptSliceKernel( a, b, c ) );
136136
}
137137

@@ -244,65 +244,65 @@ class ArrayOfR2TensorsRAJA : private ArrayOfR2TensorsNative< PERMUTATION >
244244

245245
void fortranView() const
246246
{
247-
ArrayViewT< VALUE_TYPE const, PERMUTATION > const & a = this->m_a;
248-
ArrayViewT< VALUE_TYPE const, PERMUTATION > const & b = this->m_b;
249-
ArrayViewT< VALUE_TYPE, PERMUTATION > const & c = this->m_c;
247+
ArrayViewT< VALUE_TYPE const, PERMUTATION > const a = this->m_a.toViewConst();
248+
ArrayViewT< VALUE_TYPE const, PERMUTATION > const b = this->m_b.toViewConst();
249+
ArrayViewT< VALUE_TYPE, PERMUTATION > const c = this->m_c.toView();
250250
TIMING_LOOP( fortranViewKernel( a, b, c ) );
251251
}
252252

253253
void fortranSlice() const
254254
{
255-
ArraySliceT< VALUE_TYPE const, PERMUTATION > const a = this->m_a;
256-
ArraySliceT< VALUE_TYPE const, PERMUTATION > const b = this->m_b;
257-
ArraySliceT< VALUE_TYPE, PERMUTATION > const c = this->m_c;
255+
ArraySliceT< VALUE_TYPE const, PERMUTATION > const a = this->m_a.toSliceConst();
256+
ArraySliceT< VALUE_TYPE const, PERMUTATION > const b = this->m_b.toSliceConst();
257+
ArraySliceT< VALUE_TYPE, PERMUTATION > const c = this->m_c.toSlice();
258258
TIMING_LOOP( fortranSliceKernel( a, b, c ) );
259259
}
260260

261261
void subscriptView() const
262262
{
263-
ArrayViewT< VALUE_TYPE const, PERMUTATION > const & a = this->m_a;
264-
ArrayViewT< VALUE_TYPE const, PERMUTATION > const & b = this->m_b;
265-
ArrayViewT< VALUE_TYPE, PERMUTATION > const & c = this->m_c;
263+
ArrayViewT< VALUE_TYPE const, PERMUTATION > const a = this->m_a.toViewConst();
264+
ArrayViewT< VALUE_TYPE const, PERMUTATION > const b = this->m_b.toViewConst();
265+
ArrayViewT< VALUE_TYPE, PERMUTATION > const c = this->m_c.toView();
266266
TIMING_LOOP( subscriptViewKernel( a, b, c ) );
267267
}
268268

269269
void subscriptSlice() const
270270
{
271-
ArraySliceT< VALUE_TYPE const, PERMUTATION > const a = this->m_a;
272-
ArraySliceT< VALUE_TYPE const, PERMUTATION > const b = this->m_b;
273-
ArraySliceT< VALUE_TYPE, PERMUTATION > const c = this->m_c;
271+
ArraySliceT< VALUE_TYPE const, PERMUTATION > const a = this->m_a.toSliceConst();
272+
ArraySliceT< VALUE_TYPE const, PERMUTATION > const b = this->m_b.toSliceConst();
273+
ArraySliceT< VALUE_TYPE, PERMUTATION > const c = this->m_c.toSlice();
274274
TIMING_LOOP( subscriptSliceKernel( a, b, c ) );
275275
}
276276

277277
void tensorAbstractionFortranView() const
278278
{
279-
ArrayViewT< VALUE_TYPE const, PERMUTATION > const & a = this->m_a;
280-
ArrayViewT< VALUE_TYPE const, PERMUTATION > const & b = this->m_b;
281-
ArrayViewT< VALUE_TYPE, PERMUTATION > const & c = this->m_c;
279+
ArrayViewT< VALUE_TYPE const, PERMUTATION > const a = this->m_a.toViewConst();
280+
ArrayViewT< VALUE_TYPE const, PERMUTATION > const b = this->m_b.toViewConst();
281+
ArrayViewT< VALUE_TYPE, PERMUTATION > const c = this->m_c.toView();
282282
TIMING_LOOP( tensorAbstractionFortranViewKernel( a, b, c ) );
283283
}
284284

285285
void tensorAbstractionFortranSlice() const
286286
{
287-
ArraySliceT< VALUE_TYPE const, PERMUTATION > const a = this->m_a;
288-
ArraySliceT< VALUE_TYPE const, PERMUTATION > const b = this->m_b;
289-
ArraySliceT< VALUE_TYPE, PERMUTATION > const c = this->m_c;
287+
ArraySliceT< VALUE_TYPE const, PERMUTATION > const a = this->m_a.toSliceConst();
288+
ArraySliceT< VALUE_TYPE const, PERMUTATION > const b = this->m_b.toSliceConst();
289+
ArraySliceT< VALUE_TYPE, PERMUTATION > const c = this->m_c.toSlice();
290290
TIMING_LOOP( tensorAbstractionFortranSliceKernel( a, b, c ) );
291291
}
292292

293293
void tensorAbstractionSubscriptView() const
294294
{
295-
ArrayViewT< VALUE_TYPE const, PERMUTATION > const & a = this->m_a;
296-
ArrayViewT< VALUE_TYPE const, PERMUTATION > const & b = this->m_b;
297-
ArrayViewT< VALUE_TYPE, PERMUTATION > const & c = this->m_c;
295+
ArrayViewT< VALUE_TYPE const, PERMUTATION > const a = this->m_a.toViewConst();
296+
ArrayViewT< VALUE_TYPE const, PERMUTATION > const b = this->m_b.toViewConst();
297+
ArrayViewT< VALUE_TYPE, PERMUTATION > const c = this->m_c.toView();
298298
TIMING_LOOP( tensorAbstractionSubscriptViewKernel( a, b, c ) );
299299
}
300300

301301
void tensorAbstractionSubscriptSlice() const
302302
{
303-
ArraySliceT< VALUE_TYPE const, PERMUTATION > const a = this->m_a;
304-
ArraySliceT< VALUE_TYPE const, PERMUTATION > const b = this->m_b;
305-
ArraySliceT< VALUE_TYPE, PERMUTATION > const c = this->m_c;
303+
ArraySliceT< VALUE_TYPE const, PERMUTATION > const a = this->m_a.toSliceConst();
304+
ArraySliceT< VALUE_TYPE const, PERMUTATION > const b = this->m_b.toSliceConst();
305+
ArraySliceT< VALUE_TYPE, PERMUTATION > const c = this->m_c.toSlice();
306306
TIMING_LOOP( tensorAbstractionSubscriptSliceKernel( a, b, c ) );
307307
}
308308

benchmarks/benchmarkEigendecompositionKernels.hpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,16 +59,16 @@ class Eigendecomposition
5959

6060
void eigenvalues() const
6161
{
62-
ArrayViewT< VALUE_TYPE const, PERM_2D > const & matrices = m_matrices.toViewConst();
63-
ArrayViewT< FLOAT, PERM_2D > const & eigenvalues = m_eigenvalues.toView();
62+
ArrayViewT< VALUE_TYPE const, PERM_2D > const matrices = m_matrices.toViewConst();
63+
ArrayViewT< FLOAT, PERM_2D > const eigenvalues = m_eigenvalues.toView();
6464
TIMING_LOOP( eigenvaluesKernel( matrices, eigenvalues ) );
6565
}
6666

6767
void eigenvectors() const
6868
{
69-
ArrayViewT< VALUE_TYPE const, PERM_2D > const & matrices = m_matrices.toViewConst();
70-
ArrayViewT< FLOAT, PERM_2D > const & eigenvalues = m_eigenvalues.toView();
71-
ArrayViewT< FLOAT, PERM_3D > const & eigenvectors = m_eigenvectors.toView();
69+
ArrayViewT< VALUE_TYPE const, PERM_2D > const matrices = m_matrices.toViewConst();
70+
ArrayViewT< FLOAT, PERM_2D > const eigenvalues = m_eigenvalues.toView();
71+
ArrayViewT< FLOAT, PERM_3D > const eigenvectors = m_eigenvectors.toView();
7272
TIMING_LOOP( eigenvectorsKernel( matrices, eigenvalues, eigenvectors ) );
7373
}
7474

benchmarks/benchmarkInnerProductKernels.hpp

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,15 @@ class InnerProductNative
6060

6161
void fortranView()
6262
{
63-
ArrayViewT< VALUE_TYPE const, RAJA::PERM_I > const & a = m_a.toViewConst();
64-
ArrayViewT< VALUE_TYPE const, RAJA::PERM_I > const & b = m_b.toViewConst();
63+
ArrayViewT< VALUE_TYPE const, RAJA::PERM_I > const a = m_a.toViewConst();
64+
ArrayViewT< VALUE_TYPE const, RAJA::PERM_I > const b = m_b.toViewConst();
6565
TIMING_LOOP( fortranViewKernel( a, b ) );
6666
}
6767

6868
void fortranSlice()
6969
{
70-
ArraySliceT< VALUE_TYPE const, RAJA::PERM_I > const & a = m_a.toSliceConst();
71-
ArraySliceT< VALUE_TYPE const, RAJA::PERM_I > const & b = m_b.toSliceConst();
70+
ArraySliceT< VALUE_TYPE const, RAJA::PERM_I > const a = m_a.toSliceConst();
71+
ArraySliceT< VALUE_TYPE const, RAJA::PERM_I > const b = m_b.toSliceConst();
7272
TIMING_LOOP( fortranSliceKernel( a, b ) );
7373
}
7474

@@ -77,15 +77,15 @@ class InnerProductNative
7777

7878
void subscriptView()
7979
{
80-
ArrayViewT< VALUE_TYPE const, RAJA::PERM_I > const & a = m_a.toViewConst();
81-
ArrayViewT< VALUE_TYPE const, RAJA::PERM_I > const & b = m_b.toViewConst();
80+
ArrayViewT< VALUE_TYPE const, RAJA::PERM_I > const a = m_a.toViewConst();
81+
ArrayViewT< VALUE_TYPE const, RAJA::PERM_I > const b = m_b.toViewConst();
8282
TIMING_LOOP( subscriptViewKernel( a, b ) );
8383
}
8484

8585
void subscriptSlice()
8686
{
87-
ArraySliceT< VALUE_TYPE const, RAJA::PERM_I > const & a = m_a.toSliceConst();
88-
ArraySliceT< VALUE_TYPE const, RAJA::PERM_I > const & b = m_b.toSliceConst();
87+
ArraySliceT< VALUE_TYPE const, RAJA::PERM_I > const a = m_a.toSliceConst();
88+
ArraySliceT< VALUE_TYPE const, RAJA::PERM_I > const b = m_b.toSliceConst();
8989
TIMING_LOOP( subscriptSliceKernel( a, b ) );
9090
}
9191

@@ -152,29 +152,29 @@ class InnerProductRAJA : public InnerProductNative
152152

153153
void fortranView()
154154
{
155-
ArrayViewT< VALUE_TYPE const, RAJA::PERM_I > const & a = m_a.toViewConst();
156-
ArrayViewT< VALUE_TYPE const, RAJA::PERM_I > const & b = m_b.toViewConst();
155+
ArrayViewT< VALUE_TYPE const, RAJA::PERM_I > const a = m_a.toViewConst();
156+
ArrayViewT< VALUE_TYPE const, RAJA::PERM_I > const b = m_b.toViewConst();
157157
TIMING_LOOP( fortranViewKernel( a, b ) );
158158
}
159159

160160
void fortranSlice()
161161
{
162-
ArraySliceT< VALUE_TYPE const, RAJA::PERM_I > const & a = m_a.toSliceConst();
163-
ArraySliceT< VALUE_TYPE const, RAJA::PERM_I > const & b = m_b.toSliceConst();
162+
ArraySliceT< VALUE_TYPE const, RAJA::PERM_I > const a = m_a.toSliceConst();
163+
ArraySliceT< VALUE_TYPE const, RAJA::PERM_I > const b = m_b.toSliceConst();
164164
TIMING_LOOP( fortranSliceKernel( a, b ) );
165165
}
166166

167167
void subscriptView()
168168
{
169-
ArrayViewT< VALUE_TYPE const, RAJA::PERM_I > const & a = m_a.toViewConst();
170-
ArrayViewT< VALUE_TYPE const, RAJA::PERM_I > const & b = m_b.toViewConst();
169+
ArrayViewT< VALUE_TYPE const, RAJA::PERM_I > const a = m_a.toViewConst();
170+
ArrayViewT< VALUE_TYPE const, RAJA::PERM_I > const b = m_b.toViewConst();
171171
TIMING_LOOP( subscriptViewKernel( a, b ) );
172172
}
173173

174174
void subscriptSlice()
175175
{
176-
ArraySliceT< VALUE_TYPE const, RAJA::PERM_I > const & a = m_a.toSliceConst();
177-
ArraySliceT< VALUE_TYPE const, RAJA::PERM_I > const & b = m_b.toSliceConst();
176+
ArraySliceT< VALUE_TYPE const, RAJA::PERM_I > const a = m_a.toSliceConst();
177+
ArraySliceT< VALUE_TYPE const, RAJA::PERM_I > const b = m_b.toSliceConst();
178178
TIMING_LOOP( subscriptSliceKernel( a, b ) );
179179
}
180180

0 commit comments

Comments
 (0)