I now tried the following, which worked:
__kernel void makea(const unsigned int ySize, const float cov,
const int x0, const int y0, __global const float *x, __global const float *y,
__global cfloat_t *a)
{
int xIdx = get_local_id(0)+get_group_id(0)*get_local_size(0);
int yIdx = get_local_id(1)+get_group_id(1)*get_local_size(1);
a[yIdx + ySize*xIdx] = (cfloat_t)(1, 0);
}
""").build()
prg.makeA(queue, a.shape, (32,32), np.int32(ySize),
np.float32(c), np.int32(x0), np.int32(y0), x_buf, y_buf, a_dest_buf)
By this I introduced a workgroup of size 32x32 [function call parameter: (32,32)
]. It appears that this now makes use of several multi stream processors.