Nvlink with different cards: what are the rules?

I could not find any documentation about compatibility between two different cards connected by NVlink. This is from the context of using cuda.

  • Can we connect the same model but from different manufacturers (eg., EVGA Palit) or with different clock settings GPU or VRAM ?

  • Can we connect different cards within the same generation ? eg., 2080ti Titan RTX. Are there any limitation ?

  • Can we connect different cards with different generation ? eg., 2080ti 3090. Again, what are the contraints and limitations ? I’m thinking in particular in terms of compute calpabilities: I would expect both cards to provide their highest compute calpability, only one card can talk to the memory of the other.

Please reference official sources or actual experiments.