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

Method prepare

src/tests/performance/perf-symm.cpp:207–243  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

205}
206
207template <typename ElemType> int
208SymmPerformanceTest<ElemType>::prepare(void)
209{
210 bool useAlpha = base_->useAlpha();
211 bool useBeta = base_->useBeta();
212
213 if (useAlpha) {
214 alpha_ = convertMultiplier<ElemType>(params_.alpha);
215 }
216 if (useBeta) {
217 beta_ = convertMultiplier<ElemType>(params_.beta);
218 }
219
220
221 int creationFlags = 0;
222 int AcreationFlags = 0;
223 creationFlags = creationFlags | RANDOM_INIT;
224
225 creationFlags = ( (params_.order) == clblasRowMajor)? (creationFlags | ROW_MAJOR_ORDER) : (creationFlags);
226 AcreationFlags = ( (params_.uplo) == clblasLower)? (creationFlags | LOWER_HALF_ONLY) : (creationFlags | UPPER_HALF_ONLY);
227 BlasRoutineID BlasFn = CLBLAS_SYMM;
228
229 populate( A_ + params_.offa, ka, ka, params_.lda, BlasFn, (AcreationFlags ));
230 populate( B_ + params_.offb, params_.M, params_.N, params_.ldb, BlasFn, creationFlags );
231 populate( C_ + params_.offc, params_.M, params_.N, params_.ldc, BlasFn, creationFlags );
232 memcpy( backC_, C_, (kbc * params_.ldc + params_.offc) * sizeof(ElemType) );
233
234 mobjA_ = base_->createEnqueueBuffer(A_, (params_.lda * ka + params_.offa) * sizeof(ElemType), 0, CL_MEM_READ_ONLY);
235 if (mobjA_) {
236 mobjB_ = base_->createEnqueueBuffer(B_, (params_.ldb * kbc + params_.offb) * sizeof(ElemType), 0, CL_MEM_READ_ONLY);
237 }
238 if (mobjB_) {
239 mobjC_ = base_->createEnqueueBuffer(backC_, (params_.ldc * kbc + params_.offc) * sizeof(ElemType), 0, CL_MEM_READ_WRITE);
240 }
241
242 return (mobjC_) ? 0 : -1;
243}
244
245template <typename ElemType> nano_time_t
246SymmPerformanceTest<ElemType>::etalonPerfSingle(void)

Callers

nothing calls this directly

Calls 4

populateFunction · 0.85
useAlphaMethod · 0.80
useBetaMethod · 0.80
createEnqueueBufferMethod · 0.80

Tested by

no test coverage detected