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

Method etalonPerfSingle

src/tests/performance/perf-gerc.cpp:230–290  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

228}
229
230template <typename ElemType> nano_time_t
231GercPerformanceTest<ElemType>::etalonPerfSingle(void)
232{
233 nano_time_t time = 0;
234 clblasOrder order;
235 size_t lda;
236 //int fIncx, fIncy;
237
238#ifndef PERF_TEST_WITH_ROW_MAJOR
239 if (params_.order == clblasRowMajor) {
240 cerr << "Row major order is not allowed" << endl;
241 return NANOTIME_ERR;
242 }
243#endif
244
245 order = params_.order;
246 lda = params_.lda;
247
248#ifdef PERF_TEST_WITH_ACML
249
250 clblasOrder fOrder;
251 size_t fN, fM;
252 size_t fOffx, fOffy;
253 int fIncx, fIncy;
254 ElemType *fX, *fY;
255 fOrder = params_.order;
256 fM = params_.M;
257 fN = params_.N;
258 fIncx = params_.incx;
259 fIncy = params_.incy;
260 fX = x_;
261 fY = y_;
262 fOffx = params_.offBX;
263 fOffy = params_.offCY;
264
265 if (fOrder != clblasColumnMajor) {
266 fOrder = clblasColumnMajor;
267
268 doConjugate( (y_ + params_.offCY), (1 + (params_.N-1) * abs(params_.incy)), 1, 1 );
269 fM = params_.N;
270 fN = params_.M;
271 fX = y_;
272 fY = x_;
273 fIncx = params_.incy;
274 fIncy = params_.incx;
275 fOffx = params_.offCY;
276 fOffy = params_.offBX;
277 // Note this according to the Legacy guide
278 time = getCurrentTime();
279 clMath::blas::ger(fOrder, fM, fN, alpha_, fX , fOffx, fIncx, fY, fOffy, fIncy, A_, params_.offa, params_.lda);
280 }
281 else{
282 time = getCurrentTime();
283 clMath::blas::gerc(order, fM, fN, alpha_, fX, fOffx, params_.incx, fY, fOffy, params_.incy, A_, params_.offa, lda);
284 }
285 time = getCurrentTime() - time;
286
287#endif // PERF_TEST_WITH_ACML<F2>

Callers

nothing calls this directly

Calls 2

doConjugateFunction · 0.85
getCurrentTimeFunction · 0.50

Tested by

no test coverage detected