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

Function symmCorrectnessTest

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

Source from the content-addressed store, hash-verified

69
70template <typename T>
71void
72symmCorrectnessTest(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(cl_double) ||
85 typeid(T) == typeid(DoubleComplex)) &&
86 !base->isDevSupportDoublePrecision()) {
87
88 std::cerr << ">> WARNING: The target device doesn't support native "
89 "double precision floating point arithmetic" <<
90 std::endl << ">> Test skipped" << std::endl;
91 SUCCEED();
92 return;
93 }
94
95 events = new cl_event[params->numCommandQueues];
96 if (events == NULL)
97 {
98 }
99 memset(events, 0, params->numCommandQueues * sizeof(cl_event));
100
101 if( params->side == clblasLeft )
102 ka = params->M;
103 else ka = params->N;
104
105 if( params->order == clblasColumnMajor )
106 kbc = params->N;
107 else kbc = params->M;
108
109 size_t lengthA = ka * params->lda;
110 size_t lengthB = kbc * params->ldb;
111 size_t lengthC = kbc * params->ldc;
112
113 alpha_ = convertMultiplier<T>(params->alpha);
114 beta_ = convertMultiplier<T>(params->beta);
115
116 A = new T[ lengthA + params->offa ];
117 B = new T[ lengthB + params->offb ];
118 C = new T[ lengthC + params->offc ];
119 backC = new T[ lengthC + params->offc ];
120
121 if((A == NULL) || (B == NULL) || (C == NULL) || (backC == NULL))
122 {
123 ::std::cerr << "Cannot allocate memory on host side\n" << "!!!!!!!!!!!!Test skipped.!!!!!!!!!!!!" << ::std::endl;
124 deleteBuffers<T>(A, B, C, backC);
125 delete[] events;
126 SUCCEED();
127 return;
128 }

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