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

Method etalonPerfSingle

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

Source from the content-addressed store, hash-verified

207}
208
209template <typename ElemType> nano_time_t
210HerkPerformanceTest<ElemType>::etalonPerfSingle(void)
211{
212 nano_time_t time = 0;
213 clblasOrder order;
214 clblasUplo fUplo;
215 clblasTranspose fTransA;
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 memcpy(C_, backC_, params_.rowsC * params_.columnsC * sizeof(ElemType));
225 order = params_.order;
226 fUplo = params_.uplo;
227 fTransA = params_.transA;
228
229
230#ifdef PERF_TEST_WITH_ACML
231 fTransA = params_.transA;
232 fUplo = params_.uplo;
233
234 if (order != clblasColumnMajor)
235 {
236 fTransA = (params_.transA == clblasNoTrans) ? clblasConjTrans : clblasNoTrans;
237 fUplo = (params_.uplo == clblasUpper) ? clblasLower : clblasUpper;
238 }
239
240 time = getCurrentTime();
241 clMath::blas::herk(clblasColumnMajor, fUplo, fTransA, params_.N, params_.K, CREAL(alpha_),
242 A_, params_.lda,CREAL( beta_), C_, params_.ldc);
243 time = getCurrentTime() - time;
244
245#endif // PERF_TEST_WITH_ACML
246
247 return time;
248}
249
250
251template <typename ElemType> nano_time_t

Callers

nothing calls this directly

Calls 1

getCurrentTimeFunction · 0.50

Tested by

no test coverage detected