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

Method prepare

src/tests/performance/perf-hemm.cpp:205–229  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

203}
204
205template <typename ElemType> int
206HemmPerformanceTest<ElemType>::prepare(void)
207{
208 //bool useAlpha = base_->useAlpha();
209 //bool useBeta = base_->useBeta();
210
211 int creationFlags = 0, AcreationFlags = 0;
212 creationFlags = creationFlags | RANDOM_INIT;
213
214 creationFlags = ( (params_.order) == clblasRowMajor)? (creationFlags | ROW_MAJOR_ORDER) : (creationFlags);
215 AcreationFlags = ( (params_.uplo) == clblasLower)? (creationFlags | LOWER_HALF_ONLY) : (creationFlags | UPPER_HALF_ONLY);
216 BlasRoutineID BlasFn = CLBLAS_HEMM;
217
218 populate( A_ + params_.offA, ka, ka, params_.lda, BlasFn, AcreationFlags);
219 populate( B_ + params_.offBX, params_.M, params_.N, params_.ldb, BlasFn, creationFlags );
220 populate( C_ + params_.offCY, params_.M, params_.N, params_.ldc, BlasFn, creationFlags );
221
222 memcpy( backC_, C_, (kbc * params_.ldc + params_.offCY) * sizeof(ElemType) );
223
224 mobjA_ = base_->createEnqueueBuffer(A_, (params_.lda * ka + params_.offA) * sizeof(ElemType), 0, CL_MEM_READ_ONLY);
225 mobjB_ = base_->createEnqueueBuffer(B_, (params_.ldb * kbc + params_.offBX) * sizeof(ElemType), 0, CL_MEM_READ_ONLY);
226 mobjC_ = base_->createEnqueueBuffer(backC_, (params_.ldc * kbc + params_.offCY) * sizeof(ElemType), 0, CL_MEM_READ_WRITE);
227
228 return (mobjC_) ? 0 : -1;
229}
230
231template <typename ElemType> nano_time_t
232HemmPerformanceTest<ElemType>::etalonPerfSingle(void)

Callers

nothing calls this directly

Calls 2

populateFunction · 0.85
createEnqueueBufferMethod · 0.80

Tested by

no test coverage detected