diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2013-11-29 02:04:15 +0000 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2013-11-29 02:10:15 +0000 |
commit | 773527bad2f8e104fb700d6fa8ddf24790d7e4cc (patch) | |
tree | e08f9bfefbb84d3976a3c40df668135ec66fcc8d /sc | |
parent | 1d140dc9ea30c7d16738c2dec03756c34fabc7e1 (diff) |
GPU Calc: reflect the true cost of InterpretTail more accurately.
Change-Id: I7004150569e5329f19d2f08adbd70477bd6252ff
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/core/opencl/opencl_device.cxx | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sc/source/core/opencl/opencl_device.cxx b/sc/source/core/opencl/opencl_device.cxx index 452848fd3708..a91883f6b0d8 100644 --- a/sc/source/core/opencl/opencl_device.cxx +++ b/sc/source/core/opencl/opencl_device.cxx @@ -376,9 +376,17 @@ ds_status evaluateScoreForDevice(ds_device* device, void* evalData) testData->output[j] = fAverage + (fMin * fSoP); } + // InterpretTail - the S/W fallback is nothing like as efficient + // as any good openCL implementation: no SIMD, tons of branching + // in the inner loops etc. Generously characterise it as only 10x + // slower than the above. + float fInterpretTailFactor = 10.0; + device->score = (void*)new LibreOfficeDeviceScore; ((LibreOfficeDeviceScore*)device->score)->fTime = timerCurrent(&kernelTime); ((LibreOfficeDeviceScore*)device->score)->bNoCLErrors = true; + + ((LibreOfficeDeviceScore*)device->score)->fTime *= fInterpretTailFactor; } return DS_SUCCESS; } |