class_docstr: A training engine hybrid pipeline, data, and model parallel training.
  
  This engine is created by ``deepspeed.initialize()`` when a :class:`PipelineModule`
  is provided.
docstr: True if the engine is executing a gradient reduction or optimizer step instruction.
  
  This is overridden from :class:`DeepSpeedEngine` to force reductions
  and steps when the pipeline engine is instructed to do so.
  
  Returns:
      bool: whether reductions and optimizer steps should occur.
docstr_tok: ["True","if","the","engine","is","executing","a","gradient","reduction","or","optimizer","step","instruction",".","This","is","overridden","from",":","class",":","`","DeepSpeedEngine","`","to","force","reductions","and","steps","when","the","pipeline","engine","is","instructed","to","do","so",".","Returns",":","bool",":","whether","reductions","and","optimizer","steps","should","occur","."]
code: def is_gradient_accumulation_boundary(self):
      """True if the engine is executing a gradient reduction or optimizer step instruction.
  
      This is overridden from :class:`DeepSpeedEngine` to force reductions
      and steps when the pipeline engine is instructed to do so.
  
      Returns:
          bool: whether reductions and optimizer steps should occur.
      """
      return self._force_grad_boundary
  
imports: from types import MethodType
  import torch
  from deepspeed import comm
  from deepspeed.utils import logger
  from deepspeed.utils.timer import ThroughputTimer
  from ..engine import DeepSpeedEngine, MEMORY_OPT_ALLREDUCE_SIZE
  from ..utils import PartitionedTensor
  from ..dataloader import RepeatingLoader
  from .module import PipelineModule, PipelineError
  from .None import p2p
  from .None import schedule
label_desc: Use image node_id 20 for calling the PipelineEngine obj's underlying member method code with example usage: obj.is_gradient_accumulation_boundary() and returns: self