#include #include #include #include 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