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