MCPcopy Create free account
hub / github.com/clMathLibraries/clBLAS / etalonPerfSingle

Method etalonPerfSingle

src/tests/performance/perf-hpr2.cpp:213–257  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

211}
212
213template <typename ElemType> nano_time_t
214Hpr2PerformanceTest<ElemType>::etalonPerfSingle(void)
215{
216 clblasOrder order;
217 clblasUplo fUplo;
218 nano_time_t time = 0;
219
220#ifndef PERF_TEST_WITH_ROW_MAJOR
221 if (params_.order == clblasRowMajor) {
222 cerr << "Row major order is not allowed" << endl;
223 return NANOTIME_ERR;
224 }
225#endif
226
227 order = params_.order;
228 fUplo = params_.uplo;
229
230#ifdef PERF_TEST_WITH_ACML
231
232 ElemType *fX, *fY;
233 int fIncx, fIncy;
234 size_t fOffx, fOffy;
235 fX = X_; fOffx = params_.offBX; fIncx = params_.incx;
236 fY = Y_; fOffy = params_.offCY; fIncy = params_.incy;
237
238
239 if (order != clblasColumnMajor)
240 {
241 doConjugate( (X_ + params_.offBX), (1 + (params_.N-1) * abs(params_.incx)), 1, 1 );
242 doConjugate( (Y_ + params_.offCY), (1 + (params_.N-1) * abs(params_.incy)), 1, 1 );
243 order = clblasColumnMajor;
244 fUplo = (fUplo == clblasLower)? clblasUpper : clblasLower;
245 fX = Y_; fOffx = params_.offCY; fIncx = params_.incy;
246 fY = X_; fOffy = params_.offBX; fIncy = params_.incx;
247 }
248
249 time = getCurrentTime();
250 clMath::blas::hpr2(order, fUplo, params_.N, alpha_, fX, fOffx, fIncx, fY,
251 fOffy, fIncy, AP_, params_.offa);
252 time = getCurrentTime() - time;
253
254#endif // PERF_TEST_WITH_ACML
255
256 return time;
257}
258
259
260template <typename ElemType> nano_time_t

Callers

nothing calls this directly

Calls 2

doConjugateFunction · 0.85
getCurrentTimeFunction · 0.50

Tested by

no test coverage detected