docstr: Perform a backward pass and copy the low-precision gradients to the
  high-precision copy.
  
  We copy/accumulate to the high-precision grads now to prevent accumulating in the
  bf16 grads after successive backward() calls (i.e., grad accumulation steps > 1)
  
  The low-precision grads are deallocated during this procedure.
docstr_tok: ["Perform","a","backward","pass","and","copy","the","low-precision","gradients","to","the","high-precision","copy",".","We","copy\/accumulate","to","the","high-precision","grads","now","to","prevent","accumulating","in","the","bf16","grads","after","successive","backward","(",")","calls","(","i.e.",",","grad","accumulation","steps",">","1",")","The","low-precision","grads","are","deallocated","during","this","procedure","."]
code: def backward(
      self,
      loss,
      update_hp_grads=True,
      clear_lp_grads=False,
      **bwd_kwargs,
  ):
      """Perform a backward pass and copy the low-precision gradients to the
      high-precision copy.
  
      We copy/accumulate to the high-precision grads now to prevent accumulating in the
      bf16 grads after successive backward() calls (i.e., grad accumulation steps > 1)
  
      The low-precision grads are deallocated during this procedure.
      """
      self.clear_lp_grads()
      loss.backward(**bwd_kwargs)
  
      if update_hp_grads:
          self.update_hp_grads(clear_lp_grads=clear_lp_grads)
  
imports: from collections import OrderedDict
  import torch
  import sys
  import os
  from torch._utils import _flatten_dense_tensors, _unflatten_dense_tensors
  from deepspeed import comm
  from deepspeed.runtime.constants import PIPE_REPLICATED
  from deepspeed.runtime import ZeROOptimizer
  from packaging import version
  from deepspeed.git_version_info import version
  from deepspeed.runtime.utils import get_global_norm_of_tensors, clip_tensors_by_global_norm, DummyOptim, align_dense_tensors, all_gather_dp_groups, bwc_tensor_model_parallel_rank, is_model_parallel_parameter, see_memory_usage, graph_process
  from deepspeed.utils import link_hp_params, fragment_address
  from deepspeed.checkpoint import enable_universal_checkpoint
  from deepspeed.checkpoint.constants import DS_VERSION, PARTITION_COUNT, BASE_OPTIMIZER_STATE, SINGLE_PARTITION_OF_FP32_GROUPS, CLIP_GRAD, GROUP_PADDINGS, PARAM_SLICE_MAPPINGS
label_desc: Use image node_id 11 for calling the BF16_Optimizer obj's underlying member method code with example usage: obj.backward(loss, update_hp_grads, clear_lp_grads) without return types