kylinfires's picture
Sync main: low-VRAM live test results (624x360)
b9fc164 verified
Raw History Blame Contribute Delete
789 Bytes
# Adapted from https://github.com/hao-ai-lab/FastVideo/blob/main/fastvideo/distributed/communication_op.py
import torch
import torch.distributed as dist
def broadcast_item(item, src: int = 0):
if not dist.is_initialized():
return item
item_list = [item]
dist.broadcast_object_list(item_list, src=src)
return item_list[0]
def all_ranks_finite(value: torch.Tensor) -> bool:
"""Make the same finite-value decision on every rank before backward/step."""
from torch.distributed.tensor import DTensor
if isinstance(value, DTensor):
value = value.to_local()
finite = torch.isfinite(value.detach()).all().to(dtype=torch.int32)
if dist.is_initialized():
dist.all_reduce(finite, op=dist.ReduceOp.MIN)
return bool(finite.item())