Repository: pytorch
Issue: NCCL error of PyTorch 2.1.0 when using multiple gpus
Labels: oncall: distributed

### 🐛 Describe the bug

Hi,

I encountered some NCCL error when  using pytorch version 2.1.0 with multiple gpus.
When I downgraded pytorch to 2.0.1, the error disappeared.

## Code
export NCCL_DEBUG=INFO
```python
import torch

torch.cuda.nccl.all_gather([torch.zeros(5).cuda()], [torch.zeros(5).cuda()])
```
## Error Message
```
JMUSE-AS-2124GQ-NART:2311505:2311505 [0] NCCL INFO cudaDriverVersion 12000
JMUSE-AS-2124GQ-NART:2311505:2311505 [0] NCCL INFO Bootstrap : Using enxb03af2b6059f:169.254.3.1<0>
JMUSE-AS-2124GQ-NART:2311505:2311505 [0] NCCL INFO NET/Plugin : Plugin load (libnccl-net.so) returned 2 : libnccl-net.so: cannot open shared object file: No such file or directory
JMUSE-AS-2124GQ-NART:2311505:2311505 [0] NCCL INFO NET/Plugin : No plugin found, using internal implementation
NCCL version 2.18.5+cuda11.8
JMUSE-AS-2124GQ-NART:2311505:2311519 [0] NCCL INFO NET/IB : No device found.
JMUSE-AS-2124GQ-NART:2311505:2311519 [0] NCCL INFO NET/Socket : Using [0]enxb03af2b6059f:169.254.3.1<0> [1]enp97s0f0:192.168.187.57<0> [2]tun0:10.8.0.1<0> [3]br-cf914d50c295:172.18.0.1<0> [4]br-0eebd337ccf4:172.19.0.1<0> [5]tun1:198.18.192.11<0> [6]veth232c90d:fe80::985b:78ff:feeb:62d9%veth232c90d<0> [7]vethb4455b0:fe80::dc02:2dff:fe34:ab7f%vethb4455b0<0> [8]veth83972a3:fe80::7056:a7ff:fec4:94a5%veth83972a3<0> [9]veth8319398:fe80::440c:daff:fe3c:354c%veth8319398<0> [10]veth70b5a2c:fe80::1ccc:70ff:feb2:af31%veth70b5a2c<0> [11]veth67387c5:fe80::7c78:6fff:fe57:c5bf%veth67387c5<0> [12]veth7be2777:fe80::8408:f5ff:fe93:685d%veth7be2777<0> [13]vethb8dc075:fe80::9405:e4ff:fe22:dfa2%vethb8dc075<0>
JMUSE-AS-2124GQ-NART:2311505:2311519 [0] NCCL INFO Using network Socket
JMUSE-AS-2124GQ-NART:2311505:2311519 [0] NCCL INFO comm 0x560e80708b00 rank 0 nranks 1 cudaDev 0 nvmlDev 0 busId 1000 commId 0x12a81fddad48cd92 - Init START

JMUSE-AS-2124GQ-NART:2311505:2311519 [0] graph/xml.h:85 NCCL WARN Attribute busid of node nic not found
JMUSE-AS-2124GQ-NART:2311505:2311519 [0] NCCL INFO graph/xml.cc:585 -> 3
JMUSE-AS-2124GQ-NART:2311505:2311519 [0] NCCL INFO graph/xml.cc:767 -> 3
JMUSE-AS-2124GQ-NART:2311505:2311519 [0] NCCL INFO graph/topo.cc:655 -> 3
JMUSE-AS-2124GQ-NART:2311505:2311519 [0] NCCL INFO init.cc:840 -> 3
JMUSE-AS-2124GQ-NART:2311505:2311519 [0] NCCL INFO init.cc:1358 -> 3
JMUSE-AS-2124GQ-NART:2311505:2311519 [0] NCCL INFO group.cc:65 -> 3 [Async thread]
JMUSE-AS-2124GQ-NART:2311505:2311505 [0] NCCL INFO group.cc:406 -> 3
JMUSE-AS-2124GQ-NART:2311505:2311505 [0] NCCL INFO group.cc:96 -> 3
JMUSE-AS-2124GQ-NART:2311505:2311505 [0] NCCL INFO init.cc:1691 -> 3
Traceback (most recent call last):
  File "/mnt/ramdisk0/test.py", line 2, in <module>
    torch.cuda.nccl.all_gather([torch.zeros(5).cuda()], [torch.zeros(5).cuda()])
  File "/home/ping/mambaforge/envs/pytorch-nccl/lib/python3.11/site-packages/torch/cuda/nccl.py", line 121, in all_gather
    torch._C._nccl_all_gather(inputs, outputs, streams, comms)
RuntimeError: NCCL Error 3: internal error - please report this issue to the NCCL developers
```

### Versions

Collecting environment information...
PyTorch version: 2.1.0
Is debug build: False
CUDA used to build PyTorch: 11.8
ROCM used to build PyTorch: N/A

OS: Ubuntu 22.04.1 LTS (x86_64)
GCC version: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Clang version: Could not collect
CMake version: Could not collect
Libc version: glibc-2.35

Python version: 3.10.12 | packaged by conda-forge | (main, Jun 23 2023, 22:40:32) [GCC 12.3.0] (64-bit runtime)
Python platform: Linux-6.2.0-36-generic-x86_64-with-glibc2.35
Is CUDA available: True
CUDA runtime version: 11.6.55
CUDA_MODULE_LOADING set to: LAZY
GPU models and configuration: 
GPU 0: NVIDIA A100-SXM4-40GB
GPU 1: NVIDIA A100-SXM4-40GB
GPU 2: NVIDIA A100-SXM4-40GB
GPU 3: NVIDIA A100-SXM4-40GB

Nvidia driver version: 525.125.06
cuDNN version: Probably one of the following:
/usr/local/cuda-11.6/targets/x86_64-linux/lib/libcudnn.so.8.4.0
/usr/local/cuda-11.6/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8.4.0
/usr/local/cuda-11.6/targets/x86_64-linux/lib/libcudnn_adv_train.so.8.4.0
/usr/local/cuda-11.6/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8.4.0
/usr/local/cuda-11.6/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8.4.0
/usr/local/cuda-11.6/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8.4.0
/usr/local/cuda-11.6/targets/x86_64-linux/lib/libcudnn_ops_train.so.8.4.0
HIP runtime version: N/A
MIOpen runtime version: N/A
Is XNNPACK available: True

CPU:
Architecture:                       x86_64
CPU op-mode(s):                     32-bit, 64-bit
Address sizes:                      48 bits physical, 48 bits virtual
Byte Order:                         Little Endian
CPU(s):                             128
On-line CPU(s) list:                0-127
Vendor ID:                          AuthenticAMD
Model name:                         AMD EPYC 7543 32-Core Processor
CPU family:                         25
Model:                              1
Thread(s) per core:                 2
Core(s) per socket:                 32
Socket(s):                          2
Stepping:                           1
Frequency boost:                    enabled
CPU max MHz:                        3737.8899
CPU min MHz:                        1500.0000
BogoMIPS:                           5589.51
Flags:                              fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 invpcid_single hw_pstate ssbd mba ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 invpcid cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr rdpru wbnoinvd amd_ppin brs arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold v_vmsave_vmload vgif v_spec_ctrl umip pku ospke vaes vpclmulqdq rdpid overflow_recov succor smca
Virtualization:                     AMD-V
L1d cache:                          2 MiB (64 instances)
L1i cache:                          2 MiB (64 instances)
L2 cache:                           32 MiB (64 instances)
L3 cache:                           512 MiB (16 instances)
NUMA node(s):                       2
NUMA node0 CPU(s):                  0-31,64-95
NUMA node1 CPU(s):                  32-63,96-127
Vulnerability Gather data sampling: Not affected
Vulnerability Itlb multihit:        Not affected
Vulnerability L1tf:                 Not affected
Vulnerability Mds:                  Not affected
Vulnerability Meltdown:             Not affected
Vulnerability Mmio stale data:      Not affected
Vulnerability Retbleed:             Not affected
Vulnerability Spec rstack overflow: Mitigation; safe RET
Vulnerability Spec store bypass:    Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:           Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:           Mitigation; Retpolines, IBPB conditional, IBRS_FW, STIBP always-on, RSB filling, PBRSB-eIBRS Not affected
Vulnerability Srbds:                Not affected
Vulnerability Tsx async abort:      Not affected

Versions of relevant libraries:
[pip3] numpy==1.25.2
[pip3] pytorch-lightning==1.9.4
[pip3] pytorch_optimizer==2.12.0
[pip3] torch==2.1.0
[pip3] torch-tb-profiler==0.4.1
[pip3] torchaudio==2.1.0
[pip3] torchinfo==1.8.0
[pip3] torchmetrics==0.11.4
[pip3] torchvision==0.16.0
[pip3] triton==2.1.0
[conda] blas                      2.116                       mkl    conda-forge
[conda] blas-devel                3.9.0            16_linux64_mkl    conda-forge
[conda] cudatoolkit               11.8.0              h4ba93d1_12    conda-forge
[conda] ffmpeg                    4.3                  hf484d3e_0    pytorch
[conda] libblas                   3.9.0            16_linux64_mkl    conda-forge
[conda] libcblas                  3.9.0            16_linux64_mkl    conda-forge
[conda] libjpeg-turbo             2.0.0                h9bf148f_0    pytorch
[conda] liblapack                 3.9.0            16_linux64_mkl    conda-forge
[conda] liblapacke                3.9.0            16_linux64_mkl    conda-forge
[conda] mkl                       2022.1.0           h84fe81f_915    conda-forge
[conda] mkl-devel                 2022.1.0           ha770c72_916    conda-forge
[conda] mkl-include               2022.1.0           h84fe81f_915    conda-forge
[conda] numpy                     1.25.2          py310ha4c1d20_0    conda-forge
[conda] pytorch                   2.1.0           py3.10_cuda11.8_cudnn8.7.0_0    pytorch
[conda] pytorch-cuda              11.8                 h7e8668a_5    pytorch
[conda] pytorch-lightning         1.9.4              pyhd8ed1ab_1    conda-forge
[conda] pytorch-mutex             1.0                        cuda    pytorch
[conda] pytorch-optimizer         2.12.0                   pypi_0    pypi
[conda] torch-tb-profiler         0.4.1                    pypi_0    pypi
[conda] torchaudio                2.1.0               py310_cu118    pytorch
[conda] torchinfo                 1.8.0                    pypi_0    pypi
[conda] torchmetrics              0.11.4             pyhd8ed1ab_0    conda-forge
[conda] torchtriton               2.1.0                     py310    pytorch
[conda] torchvision               0.16.0              py310_cu118    pytorch


cc @mrshenli @pritamdamania87 @zhaojuanmao @satgera @rohan-varma @gqchen @aazzolini @osalpekar @jiayisuse @H-Huang @kwen2501 @awgu @penguinwu @fegin