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

Method prepare

src/tests/performance/perf-trmv.cpp:193–220  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

191}
192
193template <typename ElemType> int
194TrmvPerformanceTest<ElemType>::prepare(void)
195{
196 size_t lenX, N;
197 N = params_.N;
198 lenX = 1 + (N-1) * abs(params_.incx);
199
200
201 int creationFlags = 0;
202 creationFlags = creationFlags | RANDOM_INIT;
203
204 // Default is Column-Major
205 creationFlags = ( (this-> params_.order) == clblasRowMajor)? (creationFlags | ROW_MAJOR_ORDER) : (creationFlags);
206 creationFlags = ( (this-> params_.uplo) == clblasLower)? (creationFlags | LOWER_HALF_ONLY) : (creationFlags | UPPER_HALF_ONLY);
207 BlasRoutineID BlasFn = CLBLAS_TRMV;
208
209 // Matrix A
210 populate( (A_ + params_.offa), N, N, params_.lda, BlasFn, creationFlags);
211 populate( X_ , lenX + params_.offBX, 1, lenX + params_.offBX, BlasFn);
212 memcpy(backX_, X_, ((1 + (params_.N-1) * abs(params_.incx))+ params_.offBX )* sizeof(ElemType));
213
214
215 mobjA_ = base_->createEnqueueBuffer(A_, (params_.N * params_.lda + params_.offa)* sizeof(*A_), 0, CL_MEM_READ_ONLY);
216 mobjX_ = base_->createEnqueueBuffer(X_, (lenX + params_.offBX )* sizeof(*X_), 0, CL_MEM_WRITE_ONLY);
217 scratchBuff = base_->createEnqueueBuffer(NULL , lenX * sizeof(*X_), 0, CL_MEM_READ_ONLY);
218
219 return ( (mobjA_ != NULL) && (mobjX_ != NULL) && (scratchBuff != NULL) ) ? 0 : -1;
220}
221
222template <typename ElemType> nano_time_t
223TrmvPerformanceTest<ElemType>::etalonPerfSingle(void)

Callers

nothing calls this directly

Calls 2

populateFunction · 0.85
createEnqueueBufferMethod · 0.80

Tested by

no test coverage detected