| #include <ATen/ThreadLocalState.h> |
| #include <torch/csrc/distributed/c10d/ProcessGroup.hpp> |
| |
| #include <c10/util/Logging.h> |
| #include <fmt/format.h> |
| |
| namespace c10d { |
| |
| std::string opTypeToString(OpType opType) { |
| switch (opType) { |
| case OpType::BROADCAST: |
| return "BROADCAST"; |
| case OpType::ALLREDUCE: |
| return "ALLREDUCE"; |
| case OpType::ALLREDUCE_COALESCED: |
| return "ALLREDUCE_COALESCED"; |
| case OpType::REDUCE: |
| return "REDUCE"; |
| case OpType::ALLGATHER: |
| return "ALLGATHER"; |
| case OpType::_ALLGATHER_BASE: |
| return "_ALLGATHER_BASE"; |
| case OpType::ALLGATHER_COALESCED: |
| return "ALLGATHER_COALESCED"; |
| case OpType::GATHER: |
| return "GATHER"; |
| case OpType::SCATTER: |
| return "SCATTER"; |
| case OpType::REDUCE_SCATTER: |
| return "REDUCE_SCATTER"; |
| case OpType::ALLTOALL_BASE: |
| return "ALLTOALL_BASE"; |
| case OpType::ALLTOALL: |
| return "ALLTOALL"; |
| case OpType::SEND: |
| return "SEND"; |
| case OpType::RECV: |
| return "RECV"; |
| case OpType::RECVANYSOURCE: |
| return "RECVANYSOURCE"; |
| case OpType::BARRIER: |
| return "BARRIER"; |
| case OpType::UNKNOWN: |
| return "UNKNOWN"; |
| case OpType::_REDUCE_SCATTER_BASE: |
| return "_REDUCE_SCATTER_BASE"; |
| default: |
| TORCH_INTERNAL_ASSERT(false, "Unknown op type!"); |
| } |
| return "UNKNOWN"; |
| } |
| |
| bool isP2POp(OpType opType, bool batchP2P /*= false*/) { |
| if (batchP2P) |
| return false; |
| return opType == OpType::SEND || opType == OpType::RECV || |
| opType == OpType::RECVANYSOURCE; |
| } |
| |
| ProcessGroup::ProcessGroup(int rank, int size) |
| : rank_(rank), size_(size), dist_debug_level_(debug_level()) { |
| C10_LOG_API_USAGE_ONCE("c10d.process_group"); |
| } |
| |
| ProcessGroup::~ProcessGroup() {} |
| |
| void ProcessGroup::init() { |
| C10_LOG_API_USAGE_ONCE( |
| fmt::format("c10d.process_group_{}", getBackendName())); |
| } |
| } // namespace c10d |