Skip to content

Commit

Permalink
Add a test for the dependency on host-only types from alpaka libraries
Browse files Browse the repository at this point in the history
Co-authored-by: Andres Rios Tascon <ariostas@gmail.com>
  • Loading branch information
fwyzard and ariostas committed Jun 22, 2024
1 parent 1234e95 commit f285ad2
Show file tree
Hide file tree
Showing 7 changed files with 71 additions and 0 deletions.
1 change: 1 addition & 0 deletions HeterogeneousCore/AlpakaTest/BuildFile.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<use name="FWCore/Framework"/>
<use name="HeterogeneousCore/AlpakaCore"/>
<use name="HeterogeneousCore/AlpakaInterface"/>
<!-- need a way to declare that the alpaka library depends on the general library -->
<flags ALPAKA_BACKENDS="1"/>
<export>
<lib name="1"/>
Expand Down
21 changes: 21 additions & 0 deletions HeterogeneousCore/AlpakaTest/interface/HostOnlyType.h
Original file line number Diff line number Diff line change
@@ -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
12 changes: 12 additions & 0 deletions HeterogeneousCore/AlpakaTest/interface/alpaka/printAnswer.h
Original file line number Diff line number Diff line change
@@ -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
9 changes: 9 additions & 0 deletions HeterogeneousCore/AlpakaTest/src/HostOnlyType.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#include <iostream>

#include "HeterogeneousCore/AlpakaTest/interface/HostOnlyType.h"

namespace alpakatest {

void HostOnlyType::print() { std::cout << "The HostOnlyType value is " << value_ << '\n'; }

} // namespace alpakatest
14 changes: 14 additions & 0 deletions HeterogeneousCore/AlpakaTest/src/alpaka/printAnswer.cc
Original file line number Diff line number Diff line change
@@ -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
6 changes: 6 additions & 0 deletions HeterogeneousCore/AlpakaTest/test/BuildFile.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,9 @@
<!-- dependence only to trigger the unit test when AMD GPU is (expected to be) present -->
<use name="rocm"/>
</test>

<bin name="alpakaTestPrintAnswer" file="alpaka/printAnswer.cpp">
<use name="HeterogeneousCore/AlpakaInterface"/>
<use name='HeterogeneousCore/AlpakaTest'/>
<flags ALPAKA_BACKENDS="1"/>
</bin>
8 changes: 8 additions & 0 deletions HeterogeneousCore/AlpakaTest/test/alpaka/printAnswer.cpp
Original file line number Diff line number Diff line change
@@ -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(); }

0 comments on commit f285ad2

Please sign in to comment.