<Number of kernels> <ID> <alpha> <beta> <incX> <incY> <source file> <author name> . . <ID> <alpha> <beta> <incX> <incY> <source file> <author name>
Here's an explanation of these values:
For example, here is an example AXPY/dcases.dsc:
3 1 2 0 0 axpy1_x0y0.c "R. Clint Whaley" 2 2 1 1 axpy1_x1y1.c "R. Clint Whaley" 2 -1 1 1 axpy1_an1x1y1.c "R. Clint Whaley" <ID> <ialpha> <incX> <incY> <rout> <author> [\
So, to make this work, all three filenames mentioned above must appear in your AXPY/ subdir. The first kernel routine is the general case: general incX, incY, and alpha. The second specializes both vector increments to unit stride, but takes any alpha. Finally, the last routine specializes even further, with unit strides and requiring alpha be negative one. Note that all index files must contain at least one routine that handles the most general cases, and passes the tester.
If you need a particular compiler and flag combo to compile your kernel
you end the line with a \
, and put the compiler on the following line,
and the flags on a line after that. So, if axpy_x1y1.c needed gcc,
with -O1 -fschedule-insns -DGOODPERFORMANCE for flags, the above
file would be changed to:
3 1 2 0 0 axpy1_x0y0.c "R. Clint Whaley" 2 2 1 1 axpy1_x1y1.c "R. Clint Whaley" \ gcc -O1 -fschedule-insns -DGOODPERFORMANCE 2 -1 1 1 axpy1_an1x1y1.c "R. Clint Whaley" <ID> <ialpha> <incX> <incY> <rout> <author> [\