class_docstr: Persistent buffer for main gradients that remains allocated between training iterations
docstr: Synchronous buffer data allreduce 
code: def allreduce_buffer(self):
      """Synchronous buffer data allreduce"""
      self.data.div_(
          get_data_parallel_world_size(with_context_parallel=True)
      )
      torch.distributed.all_reduce(
          self.data,
          group=get_data_parallel_group(with_context_parallel=True),
      )
  
imports: from contextlib import contextmanager
  import torch
  from nemo.utils import logging
label_desc: Use image node_id 3 for calling the GradBucket obj's underlying member method code with example usage: obj.allreduce_buffer() without return types