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

Function call_kernel_triple_update

src/library/blas/functor/gpu_dtrsm.cc:127–175  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

125
126
127cl_int call_kernel_triple_update(const char* kernel_name,
128 const cl_program prg,
129 const cl_command_queue queue,
130 cl_mem A,
131 unsigned int offA,
132 cl_mem d_dinvA,
133 int i,
134 unsigned int lda,
135 int M,
136 cl_event *event)
137{
138 cl_int err = 0;
139
140 unsigned int m = M;
141
142 int npages = M/(i*2)+(M%(i*2)!=0);
143 size_t globalLocal [2] = { (i <= 32)?(i/4):16, 4};
144 size_t globalThreads[2] = { (i/(globalLocal[0]*globalLocal[1]))* globalLocal[0],
145 npages*(i/16) * globalLocal[1]};
146
147 cl_kernel kernel = clCreateKernel(prg, kernel_name, &err);
148 if (err != CL_SUCCESS) {
149 //printf( "create kernel %s failed with %d\n", kernel_name, err );
150 return err;
151 }
152
153 clSetKernelArg(kernel, 0, sizeof(cl_mem), &A);
154 clSetKernelArg(kernel, 1, sizeof(unsigned int), &offA);
155 clSetKernelArg(kernel, 2, sizeof(cl_mem), &d_dinvA);
156 clSetKernelArg(kernel, 3, sizeof(int), &i);
157 clSetKernelArg(kernel, 4, sizeof(unsigned int), &lda);
158 clSetKernelArg(kernel, 5, sizeof(int), &npages);
159 clSetKernelArg(kernel, 6, sizeof(unsigned int), &m);
160
161 err = clEnqueueNDRangeKernel(queue, kernel, 2, NULL,
162 globalThreads, globalLocal ,
163 0, NULL, event);
164
165
166 if (err != CL_SUCCESS) {
167 clReleaseKernel(kernel);
168 //printf( "execution of kernel %s failed with %d\n", kernel_name, err );
169 return err;
170 }
171
172 err = clReleaseKernel(kernel);
173 return err;
174
175}
176
177
178

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected