code: def _bench(self, *args, config, **meta):
      # check for conflicts, i.e. meta-parameters both provided
      # as kwargs and by the autotuner
      conflicts = meta.keys() & config.kwargs.keys()
      if conflicts:
          raise ValueError(
              f"Conflicting meta-parameters: {', '.join(conflicts)}."
              " Make sure that you don't re-define auto-tuned symbols."
          )
      # augment meta-parameters with tunable ones
      current = dict(meta, **config.kwargs)
  
      def kernel_call():
          if config.pre_hook:
              config.pre_hook(self.nargs)
          self.hook(args)
          self.fn.run(
              *args,
              num_warps=config.num_warps,
              num_stages=config.num_stages,
              **current,
          )
  
      try:
          # In testings using only 40 reps seems to be close enough and it appears to be what PyTorch uses
          # PyTorch also sets fast_flush to True, but I didn't see any speedup so I'll leave the default
          return triton.testing.do_bench(
              kernel_call, quantiles=(0.5, 0.2, 0.8), rep=40
          )
      except triton.OutOfResources:
          return (float("inf"), float("inf"), float("inf"))
  
file_path: text-generation-inference/server/text_generation_server/utils/gptq/custom_autotune.py
imports: import builtins
  import math
  import time
  from typing import Dict
  import triton
label_desc: Use image node_id 2 for calling the Autotuner obj's underlying member method code with example usage: obj._bench() and returns: triton, float,  float,  float