class_docstr: Graph debug runtime module.
  
  This is a debug wrapper over the TVM runtime.
  Runtime interfaces are wrapped with debug functionalities.
  Manage the debug framework to format the debug data and
  trigger the user interfaces.
  
  Parameters
  ----------
  module : Module
      The internal tvm module that holds the actual graph functions.
  
  device : Device
      The device that this module is under.
  
  graph_json_str : str or graph class
      Content of graph json file in string format
  
  dump_root : str
      To select which folder the outputs should be kept.
      None will make a temp folder in /tmp/tvmdbg<rand_string> and does the dumping
class_docstr_tok: ["Graph","debug","runtime","module",".","This","is","a","debug","wrapper","over","the","TVM","runtime",".","Runtime","interfaces","are","wrapped","with","debug","functionalities",".","Manage","the","debug","framework","to","format","the","debug","data","and","trigger","the","user","interfaces",".","Parameters","--","--","--","--","--","module",":","Module","The","internal","tvm","module","that","holds","the","actual","graph","functions",".","device",":","Device","The","device","that","this","module","is","under",".","graph_json_str",":","str","or","graph","class","Content","of","graph","json","file","in","string","format","dump_root",":","str","To","select","which","folder","the","outputs","should","be","kept",".","None","will","make","a","temp","folder","in","\/tmp\/tvmdbg","<","rand_string",">","and","does","the","dumping"]
docstr: Run each operation in the graph and get the time per op for all ops.
  
  number: int
      The number of times to run this function for taking average.
      We call these runs as one `repeat` of measurement.
  
  repeat: int, optional
      The number of times to repeat the measurement.
      In total, the function will be invoked (1 + number x repeat) times,
      where the first one is warm up and will be discarded.
      The returned result contains `repeat` costs,
      each of which is an average of `number` costs.
  
  min_repeat_ms: int, optional
      The minimum duration of one `repeat` in milliseconds.
      By default, one `repeat` contains `number` runs. If this parameter is set,
      the parameters `number` will be dynamically adjusted to meet the
      minimum duration requirement of one `repeat`.
      i.e., When the run time of one `repeat` falls below this time, the `number` parameter
      will be automatically increased.
  
  limit_zero_time_iterations: int, optional
      The maximum number of repeats when measured time is equal to 0.
      It helps to avoid hanging during measurements.
  
  cooldown_interval_ms: int, optional
      The cooldown interval in milliseconds between the number of repeats defined by
      `repeats_to_cooldown`.
  
  repeats_to_cooldown: int, optional
      The number of repeats before the cooldown is activated.
  
  Returns
  -------
  A 2-dimensional array where the dimensions are: the index of the operation and
  the repeat of the measurement.
docstr_tok: ["Run","each","operation","in","the","graph","and","get","the","time","per","op","for","all","ops",".","number",":","int","The","number","of","times","to","run","this","function","for","taking","average",".","We","call","these","runs","as","one","`","repeat","`","of","measurement",".","repeat",":","int",",","optional","The","number","of","times","to","repeat","the","measurement",".","In","total",",","the","function","will","be","invoked","(","1","+","number","x","repeat",")","times",",","where","the","first","one","is","warm","up","and","will","be","discarded",".","The","returned","result","contains","`","repeat","`","costs",",","each","of","which","is","an","average","of","`","number","`","costs",".","min_repeat_ms",":","int",",","optional","The","minimum","duration","of","one","`","repeat","`","in","milliseconds",".","By","default",",","one","`","repeat","`","contains","`","number","`","runs",".","If","this","parameter","is","set",",","the","parameters","`","number","`","will","be","dynamically","adjusted","to","meet","the","minimum","duration","requirement","of","one","`","repeat","`",".","i.e.",",","When","the","run","time","of","one","`","repeat","`","falls","below","this","time",",","the","`","number","`","parameter","will","be","automatically","increased",".","limit_zero_time_iterations",":","int",",","optional","The","maximum","number","of","repeats","when","measured","time","is","equal","to","0",".","It","helps","to","avoid","hanging","during","measurements",".","cooldown_interval_ms",":","int",",","optional","The","cooldown","interval","in","milliseconds","between","the","number","of","repeats","defined","by","`","repeats_to_cooldown","`",".","repeats_to_cooldown",":","int",",","optional","The","number","of","repeats","before","the","cooldown","is","activated",".","Returns","--","--","--","-","A","2-dimensional","array","where","the","dimensions","are",":","the","index","of","the","operation","and","the","repeat","of","the","measurement","."]
code: def run_individual(
      self,
      number,
      repeat=1,
      min_repeat_ms=0,
      limit_zero_time_iterations=100,
      cooldown_interval_ms=0,
      repeats_to_cooldown=1,
  ):
      """Run each operation in the graph and get the time per op for all ops.
  
      number: int
          The number of times to run this function for taking average.
          We call these runs as one `repeat` of measurement.
  
      repeat: int, optional
          The number of times to repeat the measurement.
          In total, the function will be invoked (1 + number x repeat) times,
          where the first one is warm up and will be discarded.
          The returned result contains `repeat` costs,
          each of which is an average of `number` costs.
  
      min_repeat_ms: int, optional
          The minimum duration of one `repeat` in milliseconds.
          By default, one `repeat` contains `number` runs. If this parameter is set,
          the parameters `number` will be dynamically adjusted to meet the
          minimum duration requirement of one `repeat`.
          i.e., When the run time of one `repeat` falls below this time, the `number` parameter
          will be automatically increased.
  
      limit_zero_time_iterations: int, optional
          The maximum number of repeats when measured time is equal to 0.
          It helps to avoid hanging during measurements.
  
      cooldown_interval_ms: int, optional
          The cooldown interval in milliseconds between the number of repeats defined by
          `repeats_to_cooldown`.
  
      repeats_to_cooldown: int, optional
          The number of repeats before the cooldown is activated.
  
      Returns
      -------
      A 2-dimensional array where the dimensions are: the index of the operation and
      the repeat of the measurement.
      """
      res = self._run_individual(
          number,
          repeat,
          min_repeat_ms,
          limit_zero_time_iterations,
          cooldown_interval_ms,
          repeats_to_cooldown,
      )
      results = []
      offset = 0
      format_size = "@q"
      (nodes_count,) = struct.unpack_from(format_size, res, offset)
      offset += struct.calcsize(format_size)
      format_data = "@" + repeat * "d"
      for _ in range(0, nodes_count):
          ret = struct.unpack_from(format_data, res, offset)
          offset += struct.calcsize(format_data)
          results.append([*ret])
      return results
  
imports: import logging
  import os
  import shutil
  import struct
  import tempfile
  import tvm._ffi
  from tvm._ffi.base import string_types
  from tvm.contrib import graph_executor
  from tvm.runtime.module import BenchmarkResult
  from ...runtime.profiling import Report
  from .None import debug_result
label_desc: Use image node_id 12 for calling the GraphModuleDebug obj's underlying member method code with example usage: obj.run_individual(number, repeat, min_repeat_ms, limit_zero_time_iterations, cooldown_interval_ms, repeats_to_cooldown) and returns: results