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

Method prepare

src/tests/performance/perf-gemv.cpp:182–218  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

180}
181
182template <typename ElemType> int
183GemvPerformanceTest<ElemType>::prepare(void)
184{
185 size_t lenX, lenY;
186 bool useAlpha = base_->useAlpha();
187 bool useBeta = base_->useBeta();
188
189 if (useAlpha) {
190 alpha_ = convertMultiplier<ElemType>(params_.alpha);
191 }
192 if (useBeta) {
193 beta_ = convertMultiplier<ElemType>(params_.beta);
194 }
195
196 if (params_.transA == clblasNoTrans) {
197 lenX = params_.N;
198 lenY = params_.M;
199 }
200 else {
201 lenX = params_.M;
202 lenY = params_.N;
203 }
204 randomGemmxMatrices<ElemType>(params_.order, params_.transA, params_.transB,
205 params_.transC, lenY, params_.K, lenX, useAlpha,
206 &alpha_, A_, params_.lda, B_, params_.ldb, useBeta,
207 &beta_, C_, params_.ldc);
208
209 mobjA_ = base_->createEnqueueBuffer(A_, params_.rowsA * params_.columnsA *
210 sizeof(*A_), params_.offA * sizeof(*A_),
211 CL_MEM_READ_ONLY);
212 mobjB_ = base_->createEnqueueBuffer(B_, params_.rowsB * params_.columnsB *
213 sizeof(*B_), 0, CL_MEM_READ_ONLY);
214 mobjC_ = base_->createEnqueueBuffer(backC_, params_.rowsC * params_.columnsC *
215 sizeof(*backC_), 0, CL_MEM_READ_WRITE);
216
217 return ((mobjA_ != NULL) && (mobjB_ != NULL) && (mobjC_ != NULL)) ? 0 : -1;
218}
219
220template <typename ElemType> nano_time_t
221GemvPerformanceTest<ElemType>::etalonPerfSingle(void)

Callers

nothing calls this directly

Calls 3

useAlphaMethod · 0.80
useBetaMethod · 0.80
createEnqueueBufferMethod · 0.80

Tested by

no test coverage detected