Kaydet (Commit) af31ebe8 authored tarafından haochen's avatar haochen Kaydeden (comit) I-Jui (Ray) Sung

GPU Calc: Remove unnecessary 'std::cerr'

And add 'exception catching' for return  to CPU caculate

Change-Id: I640894d677eaf73367bb51dec51c8baeb412bca6
Signed-off-by: 's avatarhaochen <haochen@multicorewareinc.com>
Signed-off-by: 's avatarWei Wei <weiwei@multicorewareinc.com>
Signed-off-by: 's avatarI-Jui (Ray) Sung <ray@multicorewareinc.com>
üst 45211c27
...@@ -1930,7 +1930,8 @@ DynamicKernelSoPArguments::DynamicKernelSoPArguments( ...@@ -1930,7 +1930,8 @@ DynamicKernelSoPArguments::DynamicKernelSoPArguments(
mvSubArguments.push_back( mvSubArguments.push_back(
SubArgument(new DynamicKernelConstantArgument(ts, SubArgument(new DynamicKernelConstantArgument(ts,
ft->Children[i]))); ft->Children[i])));
} else if (pChild->GetType() == formula::svString) { } else if (pChild->GetType() == formula::svString
&& pCodeGen->takeString()) {
mvSubArguments.push_back( mvSubArguments.push_back(
SubArgument(new ConstStringArgument(ts, SubArgument(new ConstStringArgument(ts,
ft->Children[i]))); ft->Children[i])));
...@@ -3040,19 +3041,16 @@ void DynamicKernel::CreateKernel(void) ...@@ -3040,19 +3041,16 @@ void DynamicKernel::CreateKernel(void)
std::string KernelHash = mKernelSignature+GetMD5(); std::string KernelHash = mKernelSignature+GetMD5();
if (lastOneKernelHash == KernelHash && lastOneProgram) if (lastOneKernelHash == KernelHash && lastOneProgram)
{ {
std::cerr<<"cl_program cache hit: "<< KernelHash << "\n";
mpProgram = lastOneProgram; mpProgram = lastOneProgram;
} }
else if(lastSecondKernelHash == KernelHash && lastSecondProgram) else if(lastSecondKernelHash == KernelHash && lastSecondProgram)
{ {
std::cerr<<"cl_program cache hit: "<< KernelHash << "\n";
mpProgram = lastSecondProgram; mpProgram = lastSecondProgram;
} }
else else
{ // doesn't match the last compiled formula. { // doesn't match the last compiled formula.
if (lastSecondProgram) { if (lastSecondProgram) {
std::cerr<<"Freeing lastsecond program: "<< GetMD5() << "\n";
clReleaseProgram(lastSecondProgram); clReleaseProgram(lastSecondProgram);
} }
if (OpenclDevice::buildProgramFromBinary("", if (OpenclDevice::buildProgramFromBinary("",
...@@ -3240,6 +3238,10 @@ DynamicKernel* DynamicKernel::create(ScDocument& /* rDoc */, ...@@ -3240,6 +3238,10 @@ DynamicKernel* DynamicKernel::create(ScDocument& /* rDoc */,
return NULL; return NULL;
#endif #endif
} }
catch (...) {
std::cerr << "Dynamic formula compiler: unhandled compiler error\n";
return NULL;
}
return pDynamicKernel; return pDynamicKernel;
} }
......
...@@ -364,6 +364,8 @@ public: ...@@ -364,6 +364,8 @@ public:
virtual void GenSlidingWindowFunction(std::stringstream &ss, virtual void GenSlidingWindowFunction(std::stringstream &ss,
const std::string sSymName, SubArguments &vSubArguments); const std::string sSymName, SubArguments &vSubArguments);
virtual std::string BinFuncName(void) const { return "Convert"; } virtual std::string BinFuncName(void) const { return "Convert"; }
virtual bool takeString() const { return true; }
}; };
class OpEven: public Normal class OpEven: public Normal
{ {
......
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