Skip to content

Commit bf4a322

Browse files
committed
Use the correct memory space in the empty deriv chunkspans
1 parent b027037 commit bf4a322

5 files changed

Lines changed: 30 additions & 15 deletions

File tree

benchmarks/splines.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,9 @@ void characteristics_advection_unitary(benchmark::State& state)
183183
ddc::StridedDiscreteDomain<
184184
DDimX<IsNonUniform, s_degree_x>,
185185
ddc::Deriv<typename DDimX<IsNonUniform, s_degree_x>::continuous_dimension_type>,
186-
DDimY>> const derivs {};
186+
DDimY>,
187+
Kokkos::layout_right,
188+
typename ExecSpace::memory_space> const derivs {};
187189

188190
for (auto _ : state) {
189191
Kokkos::Profiling::pushRegion("FeetCharacteristics");

examples/characteristics_advection.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include <ddc/kernels/splines.hpp>
1414

1515
#include <Kokkos_Core.hpp>
16+
#include <Kokkos_Core_fwd.hpp>
1617

1718
#define PERIODIC_DOMAIN // Comment this to run non-periodic simulation
1819

@@ -234,10 +235,9 @@ int main(int argc, char** argv)
234235
// Instantiate empty derivative chunkspan
235236
ddc::ChunkSpan<
236237
double const,
237-
ddc::StridedDiscreteDomain<
238-
DDimX,
239-
ddc::Deriv<DDimX::continuous_dimension_type>,
240-
DDimY>> const derivs {};
238+
ddc::StridedDiscreteDomain<DDimX, ddc::Deriv<DDimX::continuous_dimension_type>, DDimY>,
239+
Kokkos::layout_right,
240+
ddc::DeviceAllocator<double>::memory_space> const derivs {};
241241
//! [instantiate intermediate chunks]
242242

243243

tests/splines/extrapolation_rule.cpp

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -199,14 +199,21 @@ void ExtrapolationRuleSplineTest()
199199
auto const dom_spline = spline_builder.batched_spline_domain(dom_vals);
200200

201201
// Create empty ChunkSpans for the derivatives, as they are not used here
202-
ddc::ChunkSpan<double const, ddc::StridedDiscreteDomain<DDimI1, ddc::Deriv<I1>, DDimI2>> const
203-
derivs1 {};
204-
ddc::ChunkSpan<double const, ddc::StridedDiscreteDomain<DDimI2, DDimI1, ddc::Deriv<I2>>> const
205-
derivs2 {};
206202
ddc::ChunkSpan<
207203
double const,
208-
ddc::StridedDiscreteDomain<DDimI1, DDimI2, ddc::Deriv<I1>, ddc::Deriv<I2>>> const
209-
mixed_derivs1_2 {};
204+
ddc::StridedDiscreteDomain<DDimI1, ddc::Deriv<I1>, DDimI2>,
205+
Kokkos::layout_right,
206+
MemorySpace> const derivs1 {};
207+
ddc::ChunkSpan<
208+
double const,
209+
ddc::StridedDiscreteDomain<DDimI2, DDimI1, ddc::Deriv<I2>>,
210+
Kokkos::layout_right,
211+
MemorySpace> const derivs2 {};
212+
ddc::ChunkSpan<
213+
double const,
214+
ddc::StridedDiscreteDomain<DDimI1, DDimI2, ddc::Deriv<I1>, ddc::Deriv<I2>>,
215+
Kokkos::layout_right,
216+
MemorySpace> const mixed_derivs1_2 {};
210217

211218
// Allocate and fill a chunk containing values to be passed as input to spline_builder. Those are values of cosine along interest dimension duplicated along batch dimensions
212219
ddc::Chunk vals_1d_host_alloc(dom_interpolation, ddc::HostAllocator<double>());

tests/splines/periodic_spline_builder.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,11 @@ void TestPeriodicSplineBuilderTestIdentity()
106106
KOKKOS_LAMBDA(DElemX const ix) { yvals(ix) = evaluator(ddc::coordinate(ix)); });
107107

108108
// 6. Create a empty chunk for the derivatives, as they are not used with periodic boundary conditions
109-
ddc::ChunkSpan<double const, ddc::StridedDiscreteDomain<DDimX, ddc::Deriv<DimX>>> const
110-
derivs {};
109+
ddc::ChunkSpan<
110+
double const,
111+
ddc::StridedDiscreteDomain<DDimX, ddc::Deriv<DimX>>,
112+
Kokkos::layout_right,
113+
memory_space> const derivs {};
111114

112115
// 7. Finally build the spline by filling `coef`
113116
spline_builder(coef.span_view(), yvals.span_cview(), derivs);

tests/splines/periodicity_spline_builder.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,11 @@ void PeriodicitySplineBuilderTest()
149149
ddc::ChunkSpan const coef = coef_alloc.span_view();
150150

151151
// Instantiate empty chunk of derivatives
152-
ddc::ChunkSpan<double const, ddc::StridedDiscreteDomain<DDim<X>, ddc::Deriv<X>>> const
153-
derivs {};
152+
ddc::ChunkSpan<
153+
double const,
154+
ddc::StridedDiscreteDomain<DDim<X>, ddc::Deriv<X>>,
155+
Kokkos::layout_right,
156+
MemorySpace> const derivs {};
154157

155158
// Finally compute the spline by filling `coef`
156159
spline_builder(coef, vals.span_cview(), derivs.span_cview());

0 commit comments

Comments
 (0)