Is it possible to get a 1d id for blocks and threads?
Do you mean something like blockDim.x * blockIdx.x + threadIdx.x?
Also if you just use a trivial 2D (or 3D…) array with only one dimension that is not 1, you should get no performance overhead since that must be nothing but syntaxic sugar …