diff --git a/torch/csrc/cuda/nccl.cpp b/torch/csrc/cuda/nccl.cpp index daae91e06a134..2e6fc08ed503e 100644 --- a/torch/csrc/cuda/nccl.cpp +++ b/torch/csrc/cuda/nccl.cpp @@ -652,6 +652,9 @@ void all2all_single_equal_split(at::Tensor& input, const auto* sendbuff = reinterpret_cast(input.data_ptr()); auto* recvbuff = reinterpret_cast(output.data_ptr()); auto comm = to_nccl_comm(_comm); +#if defined(USE_ROCM) && ROCM_VERSION >= 50000 + NCCL_CHECK(ncclAllToAll(sendbuff , recvbuff , count, type, comm, stream)); +#else NCCL_CHECK(ncclCommCount(comm, &numranks)); NCCL_CHECK(ncclGroupStart()); for(const auto r : c10::irange(numranks)) { @@ -663,6 +666,7 @@ void all2all_single_equal_split(at::Tensor& input, } } NCCL_CHECK(ncclGroupEnd()); +#endif #else AT_ERROR("all2all is only supported for NCCL lib version >= 2.7.0"); #endif