See #7250
The cub::DeviceFind::Lower/UpperBound APIs follow C++ standard library semantics, returning an iterator representing the lower/upper bound positions, rather than indices. However, the vectorized versions of thrust::lower_bound and thrust::upper_bound return indices, not iterators.
For parity with Thrust, the CUB APIs should either be changed to return indices, or an overload provided that return indices.