gpu: mark all ancestor nodes of kernels as atomic
In the future, we will be creating kernel objects before any
AST generation has been performed. This means that during
the analysis of the kernel we cannot take into account any
possible separation on the outer dimensions. Mark those outer
dimensions as atomic such that exactly one kernel launch is
created for each node in the AST tree that is tagged as a kernel.
This ensures that both phases have a consistent view of the kernels.
Note that we only require the kernel statements to be considered
atomic, but currently the only way to do so is to mark the band
atomic.
If we want to allow separation of the outer dimensions in the future,
then we may want to consider performing this separation directly
on the schedule tree, so that we can perform the separation
before the kernels are created.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>