Kaydet (Commit) 7f2cfa63 authored tarafından I-Jui (Ray) Sung's avatar I-Jui (Ray) Sung

GPU Calc: fix compilation failures

Change-Id: Idafbd9fb3fb71a1da9ba6b7a39007eac3865c932
üst 3b79cc5f
...@@ -1422,7 +1422,14 @@ public: ...@@ -1422,7 +1422,14 @@ public:
} }
virtual std::string BinFuncName(void) const { return "fsop"; } virtual std::string BinFuncName(void) const { return "fsop"; }
}; };
namespace {
struct SumIfsArgs {
SumIfsArgs(cl_mem x): mCLMem(x), mConst(0.0) {}
SumIfsArgs(double x): mCLMem(NULL), mConst(x) {}
cl_mem mCLMem;
double mConst;
};
}
/// Helper functions that have multiple buffers /// Helper functions that have multiple buffers
class DynamicKernelSoPArguments: public DynamicKernelArgument class DynamicKernelSoPArguments: public DynamicKernelArgument
{ {
...@@ -1455,12 +1462,6 @@ public: ...@@ -1455,12 +1462,6 @@ public:
if (OpSumCodeGen->NeedReductionKernel()) if (OpSumCodeGen->NeedReductionKernel())
{ {
struct SumIfsArgs {
SumIfsArgs(cl_mem x): mCLMem(x), mConst(0.0) {}
SumIfsArgs(double x): mCLMem(NULL), mConst(x) {}
cl_mem mCLMem;
double mConst;
};
assert(slidingArgPtr); assert(slidingArgPtr);
size_t nInput = slidingArgPtr -> GetArrayLength(); size_t nInput = slidingArgPtr -> GetArrayLength();
size_t nCurWindowSize = slidingArgPtr -> GetWindowSize(); size_t nCurWindowSize = slidingArgPtr -> GetWindowSize();
...@@ -1470,13 +1471,13 @@ public: ...@@ -1470,13 +1471,13 @@ public:
e= mvSubArguments.end(); it!=e; ++it) e= mvSubArguments.end(); it!=e; ++it)
{ {
if (VectorRef *VR = dynamic_cast<VectorRef *>(it->get())) if (VectorRef *VR = dynamic_cast<VectorRef *>(it->get()))
vclmem.push_back(VR->GetCLBuffer()); vclmem.push_back(SumIfsArgs(VR->GetCLBuffer()));
else if (DynamicKernelConstantArgument *CA = else if (DynamicKernelConstantArgument *CA =
dynamic_cast< dynamic_cast<
DynamicKernelConstantArgument *>(it->get())) DynamicKernelConstantArgument *>(it->get()))
vclmem.push_back(CA->GetDouble()); vclmem.push_back(SumIfsArgs(CA->GetDouble()));
else else
vclmem.push_back((cl_mem)NULL); vclmem.push_back(SumIfsArgs((cl_mem)NULL));
} }
mpClmem2 = clCreateBuffer(kEnv.mpkContext, CL_MEM_READ_WRITE, mpClmem2 = clCreateBuffer(kEnv.mpkContext, CL_MEM_READ_WRITE,
sizeof(double)*nVectorWidth, NULL, &err); sizeof(double)*nVectorWidth, NULL, &err);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment