#include "acl/acl.h"
#include "acl/DataTypes/aclConstant.h"
#include "acl/DataTypes/aclArray.h"
#include "acl/Kernels/aclKernel.h"
#include "acl/Kernels/aclKernelMerger.h"
#include "aslUtilities.h"
#include <math.h>
#include <initializer_list>
using namespace std;
{
cout <<
"Test of \"KernelMerger\" functionality..." <<
flush;
Element c0(
new Constant<cl_double>(2));
Element c1(
new Constant<cl_double>(1));
Element c2(
new Constant<cl_double>(4));
Element c3(
new Constant<cl_double>(7));
{
using namespace elementOperators;
}
KernelMerger km;
km.addKernel(k0);
km.addKernel(k1);
km.addKernel(k2);
km.setup();
km.compute();
bool status((acl::map<float>(vec0).get()[9] == 2) &&
(acl::map<float>(vec1).get()[3] == 1) &&
(acl::map<float>(vec2).get()[7] == 4));
cout << km.getKernelSource() << endl;
return status;
}
{
bool allTestsPassed(true);
return allTestsPassed ? EXIT_SUCCESS : EXIT_FAILURE;
}
Element operatorAssignment(Element e1, Element e2)
void errorMessage(cl_int status, const char *errorMessage)
Prints errorMessage and exits depending on the status.
Advanced Computational Language.
std::shared_ptr< MemBlock > ElementData
std::shared_ptr< Kernel > SPKernel
std::shared_ptr< ElementBase > Element