use dynamically computed grid sizes to bound block ids