[Libreoffice-commits] core.git: Branch 'feature/perfwork5' - sc/source
Michael Meeks
michael.meeks at collabora.com
Tue Nov 11 07:55:51 PST 2014
sc/source/core/opencl/opencl_device.cxx | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
New commits:
commit 141e9aa11bd43f209dec8d0f00121af4924fae16
Author: Michael Meeks <michael.meeks at collabora.com>
Date: Tue Nov 11 15:55:23 2014 +0000
sc:opencl waste less time measuring CPU performance.
Change-Id: I7650896e794b9107d2e454e0f694ee6f94b0ed2b
diff --git a/sc/source/core/opencl/opencl_device.cxx b/sc/source/core/opencl/opencl_device.cxx
index 2703040..122cb56 100644
--- a/sc/source/core/opencl/opencl_device.cxx
+++ b/sc/source/core/opencl/opencl_device.cxx
@@ -358,8 +358,14 @@ ds_status evaluateScoreForDevice(ds_device* device, void* evalData)
timer kernelTime;
timerStart(&kernelTime);
+ // 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.
+ int nInterpretTailFactor = 10;
+
LibreOfficeDeviceEvaluationIO* testData = (LibreOfficeDeviceEvaluationIO*)evalData;
- for (unsigned long j = 0; j < testData->outputSize; j++)
+ for (unsigned long j = 0; j < testData->outputSize / nInterpretTailFactor; j++)
{
double fAverage = 0.0f;
double fMin = DBL_MAX;
@@ -374,17 +380,14 @@ 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;
+ // Since we the test size by nInterpretTailFactor to save time, and to
+ // accelerate this test, we need to apply the factor twice to
+ // get a realistic idea of the real time taken by InterpretTail.
+ ((LibreOfficeDeviceScore*)device->score)->fTime *= nInterpretTailFactor * nInterpretTailFactor;
}
return DS_SUCCESS;
}
More information about the Libreoffice-commits
mailing list