vision/smolvlm2/smolvlm/utils.py (20 lines of code) (raw):

import datetime import logging import logging.handlers import os import sys import torch.distributed as dist def pretty_print_semaphore(semaphore): if semaphore is None: return "None" return f"Semaphore(value={semaphore._value}, locked={semaphore.locked()})" def mprint(*args, **kwargs): rank = int(os.environ.get("RANK", 0)) world_size = int(os.environ.get("WORLD_SIZE", 1)) if world_size > 1 and dist.is_initialized(): if rank == 0: return print(f"[dist-{rank}-of-{world_size}]", *args, **kwargs) else: return else: return print(*args, **kwargs)