File indexing completed on 2024-12-19 04:04:42
0001 #ifndef HeterogeneousCore_AlpakaTest_plugins_alpaka_TestAlgo_h
0002 #define HeterogeneousCore_AlpakaTest_plugins_alpaka_TestAlgo_h
0003
0004 #include "DataFormats/PortableTestObjects/interface/alpaka/TestDeviceCollection.h"
0005 #include "DataFormats/PortableTestObjects/interface/alpaka/TestDeviceObject.h"
0006 #include "HeterogeneousCore/AlpakaInterface/interface/config.h"
0007 #include "HeterogeneousCore/AlpakaTest/interface/alpaka/AlpakaESTestData.h"
0008
0009 namespace ALPAKA_ACCELERATOR_NAMESPACE {
0010
0011 class TestAlgo {
0012 public:
0013 void fill(Queue& queue, portabletest::TestDeviceCollection& collection, double xvalue = 0.) const;
0014 void fillObject(
0015 Queue& queue, portabletest::TestDeviceObject& object, double x, double y, double z, int32_t id) const;
0016
0017 portabletest::TestDeviceCollection update(Queue& queue,
0018 portabletest::TestDeviceCollection const& input,
0019 AlpakaESTestDataEDevice const& esData) const;
0020
0021 portabletest::TestDeviceMultiCollection2 updateMulti2(Queue& queue,
0022 portabletest::TestDeviceMultiCollection2 const& input,
0023 AlpakaESTestDataEDevice const& esData) const;
0024 portabletest::TestDeviceMultiCollection3 updateMulti3(Queue& queue,
0025 portabletest::TestDeviceMultiCollection3 const& input,
0026 AlpakaESTestDataEDevice const& esData) const;
0027
0028 struct UpdateInfo {
0029 int x, y, z;
0030 };
0031 portabletest::TestDeviceCollection update(Queue& queue,
0032 portabletest::TestDeviceCollection const& input,
0033 UpdateInfo const* d_updateInfo) const;
0034 portabletest::TestDeviceMultiCollection2 updateMulti2(Queue& queue,
0035 portabletest::TestDeviceMultiCollection2 const& input,
0036 UpdateInfo const* d_updateInfo) const;
0037 portabletest::TestDeviceMultiCollection3 updateMulti3(Queue& queue,
0038 portabletest::TestDeviceMultiCollection3 const& input,
0039 UpdateInfo const* d_updateInfo) const;
0040
0041 void fillMulti2(Queue& queue, portabletest::TestDeviceMultiCollection2& collection, double xvalue = 0.) const;
0042 void fillMulti3(Queue& queue, portabletest::TestDeviceMultiCollection3& collection, double xvalue = 0.) const;
0043
0044 void checkZero(Queue& queue, portabletest::TestDeviceCollection const& collection) const;
0045 void checkZero(Queue& queue, portabletest::TestDeviceMultiCollection2 const& collection) const;
0046 void checkZero(Queue& queue, portabletest::TestDeviceMultiCollection3 const& collection) const;
0047 void checkZero(Queue& queue, portabletest::TestDeviceObject const& object) const;
0048 };
0049
0050 }
0051
0052 #endif