My understanding may be flawed, but I am under the impression that 2 x GPUs with NVLink will pool memory. It does not change the underlying 2 x GPU architecture in a way that would represent 2x as a single when looking at the system config. Furthermore, I believe the application code needs to have NVLink enabled to take advantage of the pooled memory. Pytorch and Tensorflow have knobs to turn in order to take advantage of NVLink... where programs like DaVinci Resolve may need patching, etc.
2 x GPUs with NVLink will pool memory
None of major ML frameworks such as Pytorch of TF support that. I’m not sure why.
I think they both support data exchange over the NVLink via NCCL.
That's different, NCCL manages traffic between GPUs, but each GPU (with its memory) is still treated as a separate entity by Pytorch or TF. Basically if your model does not fit in a single GPU memory, Pytorch will not automatically distribute it across two GPUs even if the GPUs are connected with NVLink. You can use model/tensor parallel methods to do this, but it's not going to be automatic (will require writing extra code).