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

Function herCorrectnessTest

src/tests/correctness/corr-her.cpp:59–194  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

57
58template <typename T>
59void
60herCorrectnessTest(TestParams *params)
61{
62 cl_int err;
63 T *A, *X, *backA;
64 T alpha_;
65 cl_mem bufA, bufX;
66 clMath::BlasBase *base;
67 cl_event *events;
68
69 base = clMath::BlasBase::getInstance();
70
71 if ((typeid(T) == typeid(DoubleComplex)) &&
72 !base->isDevSupportDoublePrecision()) {
73
74 std::cerr << ">> WARNING: The target device doesn't support native "
75 "double precision floating point arithmetic" <<
76 std::endl << ">> Test skipped" << std::endl;
77 SUCCEED();
78 return;
79 }
80
81 printf("number of command queues : %d\n\n", params->numCommandQueues);
82
83 events = new cl_event[params->numCommandQueues];
84 memset(events, 0, params->numCommandQueues * sizeof(cl_event));
85
86 size_t lengthA = params->N * params->lda;
87 size_t lengthX = (1 + ((params->N -1) * abs(params->incx)));
88 alpha_ = convertMultiplier<T>(params->alpha);
89
90 A = new T[lengthA + params->offa ];
91 backA = new T[lengthA + params->offa ];
92 X = new T[lengthX + params->offBX ];
93
94 if((A == NULL) || (backA == NULL) || (X == NULL))
95 {
96 ::std::cerr << "Cannot allocate memory on host side\n" << "!!!!!!!!!!!!Test skipped.!!!!!!!!!!!!" << ::std::endl;
97 deleteBuffers<T>(A, X, backA);
98 delete[] events;
99 SUCCEED();
100 return;
101 }
102 srand(params->seed);
103
104 randomHerMatrices( params->order, params->uplo, params->N, &alpha_, (A + params->offa), params->lda, (X + params->offBX), params->incx );
105 memcpy(backA, A, (lengthA + params->offa)* sizeof(*A));
106
107 // Allocate buffers
108 bufA = base->createEnqueueBuffer(A, (lengthA + params->offa) * sizeof(*A), 0, CL_MEM_READ_WRITE);
109 bufX = base->createEnqueueBuffer(X, (lengthX + params->offBX) * sizeof(*X), 0, CL_MEM_READ_ONLY);
110
111 clblasOrder fOrder;
112 clblasUplo fUplo;
113 fOrder = params->order;
114 fUplo = params->uplo;
115
116 if (fOrder != clblasColumnMajor) {

Callers

nothing calls this directly

Calls 7

doConjugateFunction · 0.85
printTestParamsFunction · 0.85
createEnqueueBufferMethod · 0.80
commandQueuesMethod · 0.80
releaseMemObjectsFunction · 0.70
waitForSuccessfulFinishFunction · 0.50

Tested by

no test coverage detected