docstr: Reduce (sum) a new local result into the existing local results.
  
  Subclasses should override this method.
  
  For a given ``out_id``, this method is called ``in_id-1`` times. The first input
  split is a simple assignment.
  
  Args:
      in_id (int): The input split that produced ``new_out``.
      out_id (int): The output split that produced ``new_out``.
      current_out (Any): The reduced form of all previous ``out_id`` results.
      new_out (Any): The local result from forward (``in_id``, ``out_id``)e
  
  Returns:
      Any: The combined result of ``current_out`` and ``new_out``.
docstr_tok: ["Reduce","(","sum",")","a","new","local","result","into","the","existing","local","results",".","Subclasses","should","override","this","method",".","For","a","given","``","out_id","``",",","this","method","is","called","``","in_id-1","``","times",".","The","first","input","split","is","a","simple","assignment",".","Args",":","in_id","(","int",")",":","The","input","split","that","produced","``","new_out","``",".","out_id","(","int",")",":","The","output","split","that","produced","``","new_out","``",".","current_out","(","Any",")",":","The","reduced","form","of","all","previous","``","out_id","``","results",".","new_out","(","Any",")",":","The","local","result","from","forward","(","``","in_id","``",",","``","out_id","``",")","e","Returns",":","Any",":","The","combined","result","of","``","current_out","``","and","``","new_out","``","."]
code: def _reduce_local_output(self, in_id, out_id, current_out, new_out):
      """Reduce (sum) a new local result into the existing local results.
  
      Subclasses should override this method.
  
      For a given ``out_id``, this method is called ``in_id-1`` times. The first input
      split is a simple assignment.
  
      Args:
          in_id (int): The input split that produced ``new_out``.
          out_id (int): The output split that produced ``new_out``.
          current_out (Any): The reduced form of all previous ``out_id`` results.
          new_out (Any): The local result from forward (``in_id``, ``out_id``)e
  
      Returns:
          Any: The combined result of ``current_out`` and ``new_out``.
      """
  
      if current_out is None:
          # this clone is necessary to preserve auto grad
          # there is some issue with inplace update for outputs that are views
          return new_out.clone()
      else:
          return current_out + new_out
  
file_path: DeepSpeed/deepspeed/runtime/zero/tiling.py
imports: import torch
  import deepspeed
  from deepspeed.runtime.utils import partition_uniform
label_desc: Use image node_id 4 for calling the TiledLinear obj's underlying member method code with example usage: obj._reduce_local_output(in_id, out_id, current_out, new_out) and returns: new_out, unknown