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

Function generator

src/library/blas/gens/asum.cpp:211–261  ·  view source on GitHub ↗

FIXME: Report correct return value - Needs change in KPRINTF

Source from the content-addressed store, hash-verified

209// FIXME: Report correct return value - Needs change in KPRINTF
210//
211static ssize_t
212generator(
213 char *buf,
214 size_t buflen,
215 const struct SubproblemDim *subdims,
216 const struct PGranularity *pgran,
217 void *extra)
218{
219
220 DUMMY_ARG_USAGE(subdims);
221 size_t BLOCKSIZE = pgran->wgSize[0];
222 char tempTemplate[32*1024];
223
224 if ( buf == NULL) // return buffer size
225 {
226 buflen = (32 * 1024 * sizeof(char));
227 return (ssize_t)buflen;
228 }
229 CLBLASKernExtra *extraFlags = ( CLBLASKernExtra *)extra;
230
231 #ifdef DEBUG_ASUM
232 printf("ASUM GENERATOR called....\n");
233 printf("dataType : %c\n", Prefix[extraFlags->dtype]);
234 #endif
235
236 unsigned int vecLenA = extraFlags->vecLenA;
237
238 #ifdef DEBUG_ASUM
239 printf("Vector length used : %d\n\n", vecLenA);
240 #endif
241
242 bool doVLOAD = false;
243 if( extraFlags->flags & KEXTRA_NO_COPY_VEC_A )
244 {
245 doVLOAD = true;
246 #ifdef DEBUG_ASUM
247 printf("DOing VLOAD as Aligned Data Pointer not Availabe\n");
248 #endif
249 }
250 else
251 {
252 #ifdef DEBUG_ASUM
253 printf("Using Aligned Data Pointer \n");
254 #endif
255 }
256 strcpy( tempTemplate, (char*)asum_kernel );
257 kprintf kobj( Prefix[extraFlags->dtype], vecLenA, doVLOAD, doVLOAD, BLOCKSIZE);
258 kobj.spit((char*)buf, tempTemplate);
259
260 return (32 * 1024 * sizeof(char));
261}
262
263/*
264__kernel void %PREFIXasum_kernel( __global %TYPE *_X, __global %TYPE *scratchBuff, uint N, uint offx, int incx)

Callers

nothing calls this directly

Calls 1

spitMethod · 0.80

Tested by

no test coverage detected