diff --git a/HeterogeneousCore/AlpakaTest/BuildFile.xml b/HeterogeneousCore/AlpakaTest/BuildFile.xml index eee6052d26e2d..47be29a7165d5 100644 --- a/HeterogeneousCore/AlpakaTest/BuildFile.xml +++ b/HeterogeneousCore/AlpakaTest/BuildFile.xml @@ -1,6 +1,7 @@ + diff --git a/HeterogeneousCore/AlpakaTest/interface/HostOnlyType.h b/HeterogeneousCore/AlpakaTest/interface/HostOnlyType.h new file mode 100644 index 0000000000000..966d00e0d4e50 --- /dev/null +++ b/HeterogeneousCore/AlpakaTest/interface/HostOnlyType.h @@ -0,0 +1,21 @@ +#ifndef HeterogeneousCore_AlpakaTest_interface_HostOnlyType_h +#define HeterogeneousCore_AlpakaTest_interface_HostOnlyType_h + +namespace alpakatest { + + /* A simple class to demonstarte the dependency on host-only types from alpaka libraries */ + class HostOnlyType { + public: + HostOnlyType() : value_{0} {} + HostOnlyType(int value) : value_{value} {} + void set(int value) { value_ = value; } + int get() { return value_; } + void print(); + + private: + int value_; + }; + +} // namespace alpakatest + +#endif // HeterogeneousCore_AlpakaTest_interface_HostOnlyType_h diff --git a/HeterogeneousCore/AlpakaTest/interface/alpaka/printAnswer.h b/HeterogeneousCore/AlpakaTest/interface/alpaka/printAnswer.h new file mode 100644 index 0000000000000..75c8dacaf2fd4 --- /dev/null +++ b/HeterogeneousCore/AlpakaTest/interface/alpaka/printAnswer.h @@ -0,0 +1,12 @@ +#ifndef HeterogeneousCore_AlpakaTest_interface_alpaka_printAnswer_h +#define HeterogeneousCore_AlpakaTest_interface_alpaka_printAnswer_h + +#include "HeterogeneousCore/AlpakaInterface/interface/config.h" + +namespace ALPAKA_ACCELERATOR_NAMESPACE::alpakatest { + + void printAnswer(); + +} // namespace ALPAKA_ACCELERATOR_NAMESPACE::alpakatest + +#endif // HeterogeneousCore_AlpakaTest_interface_alpaka_printAnswer_h diff --git a/HeterogeneousCore/AlpakaTest/src/HostOnlyType.cc b/HeterogeneousCore/AlpakaTest/src/HostOnlyType.cc new file mode 100644 index 0000000000000..e2ae3c46be4e1 --- /dev/null +++ b/HeterogeneousCore/AlpakaTest/src/HostOnlyType.cc @@ -0,0 +1,9 @@ +#include + +#include "HeterogeneousCore/AlpakaTest/interface/HostOnlyType.h" + +namespace alpakatest { + + void HostOnlyType::print() { std::cout << "The HostOnlyType value is " << value_ << '\n'; } + +} // namespace alpakatest diff --git a/HeterogeneousCore/AlpakaTest/src/alpaka/printAnswer.cc b/HeterogeneousCore/AlpakaTest/src/alpaka/printAnswer.cc new file mode 100644 index 0000000000000..ccabe2eb7b020 --- /dev/null +++ b/HeterogeneousCore/AlpakaTest/src/alpaka/printAnswer.cc @@ -0,0 +1,14 @@ +#include "HeterogeneousCore/AlpakaInterface/interface/config.h" +#include "HeterogeneousCore/AlpakaTest/interface/HostOnlyType.h" +#include "HeterogeneousCore/AlpakaTest/interface/alpaka/printAnswer.h" + +namespace ALPAKA_ACCELERATOR_NAMESPACE::alpakatest { + using namespace ::alpakatest; + + // A simple function to demonstarte the dependency on host-only types from alpaka libraries + void printAnswer() { + HostOnlyType answer(42); + answer.print(); + } + +} // namespace ALPAKA_ACCELERATOR_NAMESPACE::alpakatest diff --git a/HeterogeneousCore/AlpakaTest/test/BuildFile.xml b/HeterogeneousCore/AlpakaTest/test/BuildFile.xml index 459add79383f3..0774d964fa70f 100644 --- a/HeterogeneousCore/AlpakaTest/test/BuildFile.xml +++ b/HeterogeneousCore/AlpakaTest/test/BuildFile.xml @@ -13,3 +13,9 @@ + + + + + + diff --git a/HeterogeneousCore/AlpakaTest/test/alpaka/printAnswer.cpp b/HeterogeneousCore/AlpakaTest/test/alpaka/printAnswer.cpp new file mode 100644 index 0000000000000..9d8c7e503e803 --- /dev/null +++ b/HeterogeneousCore/AlpakaTest/test/alpaka/printAnswer.cpp @@ -0,0 +1,8 @@ +#include "HeterogeneousCore/AlpakaInterface/interface/config.h" +#include "HeterogeneousCore/AlpakaTest/interface/alpaka/printAnswer.h" + +// each test binary is built for a single Alpaka backend +using namespace ALPAKA_ACCELERATOR_NAMESPACE; +using namespace ALPAKA_ACCELERATOR_NAMESPACE::alpakatest; + +int main() { printAnswer(); }