(names)
return [(name, _cumulative[name]) for name in names]
r"""Synchronize the global cumulative counters across devices and
    processes. Called internally by `Collector.update()`.
r"""Synchronize the global cumulative counters across devices and
    processes. Called internally by `Collector.update()`.
r Synchronize the global cumulative counters across devices and processes . Called internally by Collector . update () .
def _sync(names):
    r"""Synchronize the global cumulative counters across devices and
    processes. Called internally by `Collector.update()`.
    """
    if len(names) == 0:
        return []
    global _sync_called
    _sync_called = True

    # Collect deltas within current rank.
    deltas = []
    device = _sync_device if _sync_device is not None else torch.device('cpu')
    for name in names:
        delta = torch.zeros([_num_moments], dtype=_counter_dtype, device=device)
        for counter in _counters[name].values():
            delta.add_(counter.to(device))
            counter.copy_(torch.zeros_like(counter))
        deltas.append(delta)
    deltas = torch.stack(deltas)

    # Sum deltas across ranks.
    if _sync_device is not None:
        torch.distributed.all_reduce(deltas)

    # Update cumulative values.
    deltas = deltas.cpu()
    for idx, name in enumerate(names):
        if name not in _cumulative:
            _cumulative[name] = torch.zeros([_num_moments], dtype=_counter_dtype)
        _cumulative[name].add_(deltas[idx])

    # Return name-value pairs.
    return [(name, _cumulative[name]) for name in names]
def _sync ( names ) : if len ( names ) == 0 : return [ ] global _sync_called _sync_called = True # Collect deltas within current rank. deltas = [ ] device = _sync_device if _sync_device is not None else torch . device ( 'cpu' ) for name in names : delta = torch . zeros ( [ _num_moments ] , dtype = _counter_dtype , device = device ) for counter in _counters [ name ] . values ( ) : delta . add_ ( counter . to ( device ) ) counter . copy_ ( torch . zeros_like ( counter ) ) deltas . append ( delta ) deltas = torch . stack ( deltas ) # Sum deltas across ranks. if _sync_device is not None : torch . distributed . all_reduce ( deltas ) # Update cumulative values. deltas = deltas . cpu ( ) for idx , name in enumerate ( names ) : if name not in _cumulative : _cumulative [ name ] = torch . zeros ( [ _num_moments ] , dtype = _counter_dtype ) _cumulative [ name ] . add_ ( deltas [ idx ] ) # Return name-value pairs. return [ ( name , _cumulative [ name ] ) for name in names ]