No, PyTorch does not use NCCL for to() (copying from one GPU to another). That’s not one of the operations provided by NCCL (https://github.com/NVIDIA/nccl#whats-inside 14)
PyTorch does use NCCL as a distributed backend and for DataParallel broadcast and reduction.