Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-11 23:28:00

0001 #ifndef HeterogeneousTest_AlpakaDevice_interface_alpaka_DeviceAddition_h
0002 #define HeterogeneousTest_AlpakaDevice_interface_alpaka_DeviceAddition_h
0003 
0004 #include <cstdint>
0005 
0006 #include <alpaka/alpaka.hpp>
0007 
0008 #include "HeterogeneousCore/AlpakaInterface/interface/config.h"
0009 #include "HeterogeneousCore/AlpakaInterface/interface/workdivision.h"
0010 
0011 namespace ALPAKA_ACCELERATOR_NAMESPACE::test {
0012 
0013   inline ALPAKA_FN_ACC void add_vectors_f(Acc1D const& acc,
0014                                           float const* __restrict__ in1,
0015                                           float const* __restrict__ in2,
0016                                           float* __restrict__ out,
0017                                           uint32_t size) {
0018     for (auto i : cms::alpakatools::uniform_elements(acc, size)) {
0019       out[i] = in1[i] + in2[i];
0020     }
0021   }
0022 
0023   inline ALPAKA_FN_ACC void add_vectors_d(Acc1D const& acc,
0024                                           double const* __restrict__ in1,
0025                                           double const* __restrict__ in2,
0026                                           double* __restrict__ out,
0027                                           uint32_t size) {
0028     for (auto i : cms::alpakatools::uniform_elements(acc, size)) {
0029       out[i] = in1[i] + in2[i];
0030     }
0031   }
0032 
0033 }  // namespace ALPAKA_ACCELERATOR_NAMESPACE::test
0034 
0035 #endif  // HeterogeneousTest_AlpakaDevice_interface_alpaka_DeviceAddition_h