Another issue introduced in#830 and being reviewed in #882
This is related to (almost a sub-component of) the SIMD issue #894 but I prefer to address it separately.
As clarified during the meeting today and #894 (comment) (thanks @roiser), the cudacpp implementation should assume that all channelids are the same in a warp. To avoid all unexpected behaviour due to hidden assumption, a sanity check (an asser essentially is needed). I think we had discussed this in the past, maybe I will dig that out. Anyway, this is a prerequisite to simplifying the SIMD implementation.
I file this as a separate issue also because it may be appropriate to expose these assumptions in the fortan-cudacpp bridge, so that they have the same assumptions. (Example: warp_size can be modified in the runcard, there must be a sanity check on allowed values).