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

Function hemmCorrectnessTest

src/tests/correctness/corr-hemm.cpp:71–240  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

69
70template <typename T>
71void
72hemmCorrectnessTest(TestParams *params)
73{
74 cl_int err;
75 T *A, *B, *C, *backC;
76 T alpha_, beta_;
77 cl_mem bufA, bufB, bufC;
78 clMath::BlasBase *base;
79 cl_event *events;
80 size_t ka, kbc;
81
82 base = clMath::BlasBase::getInstance();
83
84 if ((typeid(T) == typeid(DoubleComplex)) &&
85 !base->isDevSupportDoublePrecision()) {
86
87 std::cerr << ">> WARNING: The target device doesn't support native "
88 "double precision floating point arithmetic" <<
89 std::endl << ">> Test skipped" << std::endl;
90 SUCCEED();
91 return;
92 }
93
94 events = new cl_event[params->numCommandQueues];
95 if (events == NULL)
96 {
97 std::cerr << ">> WARNING: Unable to allocate memory for events" <<
98 std::endl << ">> Test skipped" << std::endl;
99 SUCCEED();
100 return;
101 }
102 memset(events, 0, params->numCommandQueues * sizeof(cl_event));
103
104 if( params->side == clblasLeft )
105 ka = params->M;
106 else ka = params->N;
107
108 if( params->order == clblasColumnMajor )
109 kbc = params->N;
110 else kbc = params->M;
111
112 size_t lengthA = ka * params->lda;
113 size_t lengthB = kbc * params->ldb;
114 size_t lengthC = kbc * params->ldc;
115
116 alpha_ = convertMultiplier<T>(params->alpha);
117 beta_ = convertMultiplier<T>(params->beta);
118
119
120 A = new T[ lengthA + params->offA ];
121 B = new T[ lengthB + params->offBX ];
122 C = new T[ lengthC + params->offCY ];
123 backC = new T[ lengthC + params->offCY ];
124
125 if((A == NULL) || (B == NULL) || (C == NULL) || (backC == NULL))
126 {
127 ::std::cerr << "Cannot allocate memory on host side\n" << "!!!!!!!!!!!!Test skipped.!!!!!!!!!!!!" << ::std::endl;
128 deleteBuffers<T>(A, B, C, backC);

Callers

nothing calls this directly

Calls 7

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

Tested by

no test coverage detected