Back to home page

Project CMSSW displayed by LXR

 
 

    


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 }  // namespace ALPAKA_ACCELERATOR_NAMESPACE