Cooperative Groups Lightweight Access to Grid Dimensions

The fragment:

tid = blockDim.xblockIdx.x+threadIdx.x;
while(tid < arraysize){
. . .
array[tid] = …
tid += blockDim.x
gridDim.x;
{

Is common in thread linear addressing applications. This translates nicely to cooperative group language, e.g blockDim.x => g.size() etc. (where g is this_thread_block()), EXCEPT gridDim is not available from thread_block. I know I could use grid_group for this BUT that does not work with the WDDM driver and has many other issues. A more lightweight way of accessing grid parameters in applications that don’t need grid wide synchonization would be tidy.

Thanks