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

Method etalonPerfSingle

src/tests/performance/perf-her2.cpp:209–255  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls 2

doConjugateFunction · 0.85
getCurrentTimeFunction · 0.50

Tested by

no test coverage detected