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

Method etalonPerfSingle

src/tests/performance/perf-gemm.cpp:224–272  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

222}
223
224template <typename ElemType> nano_time_t
225GemmPerformanceTest<ElemType>::etalonPerfSingle(void)
226{
227 nano_time_t time = 0;
228 clblasOrder order;
229 size_t lda, ldb, ldc;
230
231#ifndef PERF_TEST_WITH_ROW_MAJOR
232 if (params_.order == clblasRowMajor) {
233 cerr << "Row major order is not allowed" << endl;
234 return NANOTIME_ERR;
235 }
236#endif
237
238 memcpy(C_, backC_, params_.rowsC * params_.columnsC * sizeof(ElemType));
239 order = params_.order;
240 lda = params_.lda;
241 ldb = params_.ldb;
242 ldc = params_.ldc;
243
244#ifdef PERF_TEST_WITH_ACML
245
246 if (order == clblasRowMajor) {
247 order = clblasColumnMajor;
248 if (params_.transA == clblasNoTrans) {
249 lda = params_.M;
250 }
251 else {
252 lda = params_.K;
253 }
254 if (params_.transB == clblasNoTrans) {
255 ldb = params_.K;
256 }
257 else {
258 ldb = params_.N;
259 }
260 ldc = params_.M;
261 }
262
263 time = getCurrentTime();
264 clMath::blas::gemm(order, params_.transA, params_.transB,
265 params_.M, params_.N, params_.K,
266 alpha_, A_, lda, B_, ldb, beta_, C_, ldc);
267 time = getCurrentTime() - time;
268
269#endif // PERF_TEST_WITH_ACML
270
271 return time;
272}
273
274
275template <typename ElemType> nano_time_t

Callers

nothing calls this directly

Calls 2

getCurrentTimeFunction · 0.50
gemmFunction · 0.50

Tested by

no test coverage detected