File indexing completed on 2024-09-05 05:04:34
0001 #include "HeterogeneousCore/AlpakaInterface/interface/workdivision.h"
0002
0003 #include "testPtrAlgoAsync.h"
0004
0005 namespace ALPAKA_ACCELERATOR_NAMESPACE {
0006 portabletest::TestProductWithPtr<Device> testPtrAlgoAsync(Queue& queue, int size) {
0007 portabletest::TestProductWithPtr<Device> ret{size, queue};
0008 using View = portabletest::TestProductWithPtr<Device>::View;
0009 alpaka::exec<Acc1D>(
0010 queue,
0011 cms::alpakatools::make_workdiv<Acc1D>(1, 1),
0012 [] ALPAKA_FN_ACC(Acc1D const& acc, View view) {
0013 if (cms::alpakatools::once_per_grid(acc)) {
0014 portabletest::setPtrInTestProductWithPtr(view);
0015 }
0016 },
0017 ret.view());
0018 alpaka::exec<Acc1D>(
0019 queue,
0020 cms::alpakatools::make_workdiv<Acc1D>(1, size),
0021 [] ALPAKA_FN_ACC(Acc1D const& acc, View view) {
0022 for (auto i : cms::alpakatools::uniform_elements(acc)) {
0023 view.ptr()[i] = 2 * i + 1;
0024 }
0025 },
0026 ret.view());
0027 return ret;
0028 }
0029 }