'Mimick CUDA python\'s square-bracket notation for configuration.
This assumes a the argument to be:
`griddim, blockdim, stream`
The blockdim maps directly to local_size.
The actual global_size is computed by multiplying the local_size to
griddim.'

def __getitem__(self, args):

    griddim = _ensure_list(args[0])
    blockdim = _ensure_list(args[1])
    size = max(len(griddim), len(blockdim))
    _ensure_size_or_append(griddim, size)
    _ensure_size_or_append(blockdim, size)
    gs = [(g * l) for (g, l) in zip(griddim, blockdim)]
    return self.configure(gs, blockdim, *args[2:])
