code: def estimate_peak_flops(
      func: PrimFunc,
      features: Dict[str, np.ndarray],
      target: Target,
      dev: Device,
      remote: Optional[RPCSession],
  ) -> Tuple[float, float, str]:
      """
      Estimate the maximum number of FLOP/s this target/device combo is capable
      of reaching by running a test program. This is a generic function that
      should be overridden for each target.
  
      Parameters
      ----------
      func : PrimFunc
          Function to estimate peak flops for. Used to check if a specific kind
          intrinsic or dtype could be used with this function.
      features : Dict[str, np.ndarry]
          Features extracted from `func`. Used to check if a specific kind
          intrinsic or dtype could be used with this function.
      target : Target
          Target to run on. This should be as specific to the actual hardware as
          possible to make sure that LLVM generates the best vector code.
      dev : Device
          Device to run on.
      remote : Optional[RPCSession]
        Remote session used to upload artifacts for runtime evaluation. Must be
        the same session used to create `dev`.
  
      Returns
      -------
      flops : float
          Estimated number of flops used by `func`.
      peak_flops : float
          Approximate sustained FLOP/s of this target/device combo assuming
          vectorized FMA instructions. Each FMA operation counts as two FLOPs.
      name : str
          Dtype/intrinsic used by `func` to achieve peak flops.
      """
      raise NotImplementedError()
  
file_path: tvm/python/tvm/utils/roofline/registry.py
imports: from typing import Dict, Optional, Tuple
  import numpy
  from ...rpc.client import RPCSession
  from ...runtime import Device
  from ...target import Target, generic_func
  from ...tir import PrimFunc
label_desc: Use image node_id 2 for calling a global function with example usage: estimate_peak_flops(func, features, target, dev, remote) without return types