class_docstr: RuntimeMemTracer for the module training using ColoParameter.
  
  Trace non-model memory usage during fwd+bwd process.
  It is obtained by using a tensor with the same shape as the training process as the inputs
  and running an single fwd+bwd to trace the statistics.
  
  NOTE()
  1. The premise to use this tracer is that the target DNN execute the same operations at each iterations,
  2. Module buffers are viewed as non-model data.
class_docstr_tok: ["RuntimeMemTracer","for","the","module","training","using","ColoParameter",".","Trace","non-model","memory","usage","during","fwd+bwd","process",".","It","is","obtained","by","using","a","tensor","with","the","same","shape","as","the","training","process","as","the","inputs","and","running","an","single","fwd+bwd","to","trace","the","statistics",".","NOTE","(",")","1",".","The","premise","to","use","this","tracer","is","that","the","target","DNN","execute","the","same","operations","at","each","iterations",",","2",".","Module","buffers","are","viewed","as","non-model","data","."]
code: def _pre_forward(self):
      self._clear_cuda_mem_info()
      self._backup_params()
      self.grad_hook.register_grad_hook(self.module)
      self.param_op_hook.mem_monitor.start()
  
file_path: colossalai/colossalai/zero/gemini/memory_tracer/runtime_mem_tracer.py
imports: import torch.nn
  from colossalai.legacy.zero.gemini.ophooks.runtime_mem_tracer_hook import GradMemStats, GradMemTracerHook, ParamMemTracerHook
  from colossalai.tensor.param_op_hook import ColoParamOpHookManager
  from colossalai.utils import _cast_float
  from .memory_stats import MemStats
label_desc: Use image node_id 7 for calling the RuntimeMemTracer obj's underlying member method code with example usage: obj._pre_forward() without return types