Download inference_code/inference/infra/distributed/utils.py from Agnes-AI/Agnes-Video-2.0-MoE: direct link, hf CLI and curl.
- Browser
- Download file 1.54 kB
-
https://huggingface.co/Agnes-AI/Agnes-Video-2.0-MoE/resolve/main/inference_code/inference/infra/distributed/utils.py
- Command line
-
hf download hf://Agnes-AI/Agnes-Video-2.0-MoE/inference_code/inference/infra/distributed/utils.py
-
curl -L -o utils.py https://huggingface.co/Agnes-AI/Agnes-Video-2.0-MoE/resolve/main/inference_code/inference/infra/distributed/utils.py
1.54 kB
| # Copyright (c) 2026 SandAI. All Rights Reserved. | |
| # | |
| # Licensed under the Apache License, Version 2.0 (the "License"); | |
| # you may not use this file except in compliance with the License. | |
| # You may obtain a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, software | |
| # distributed under the License is distributed on an "AS IS" BASIS, | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| # See the License for the specific language governing permissions and | |
| # limitations under the License. | |
| import torch | |
| from .parallel_state import get_tp_rank, get_tp_world_size | |
| def is_last_rank(): | |
| return torch.distributed.get_rank() == (torch.distributed.get_world_size() - 1) | |
| def is_last_tp_cp_rank(): | |
| return get_tp_rank(with_context_parallel=True) == get_tp_world_size(with_context_parallel=True) - 1 | |
| def get_world_size(): | |
| if torch.distributed.is_available() and torch.distributed.is_initialized(): | |
| world_size = torch.distributed.get_world_size() | |
| else: | |
| world_size = 1 | |
| return world_size | |
| def get_device(local_rank=None): | |
| backend = torch.distributed.get_backend() | |
| if backend == "nccl": | |
| if local_rank is None: | |
| device = torch.device("cuda") | |
| else: | |
| device = torch.device(f"cuda:{local_rank}") | |
| elif backend == "gloo": | |
| device = torch.device("cpu") | |
| else: | |
| raise RuntimeError | |
| return device | |