        'nav_instructions': np.zeros(NAV_INSTRUCTION_LEN, dtype=np.float32),
        'feature_buffer': np.zeros(HISTORY_BUFFER_LEN * FEATURE_LEN, dtype=np.float32),
      }
  
      self.model = ModelRunner(MODEL_PATH, self.output, Runtime.GPU, False, context)
      self.model.addInput("input_imgs", None)
      self.model.addInput("big_input_imgs", None)
      for k,v in self.inputs.items():
        self.model.addInput(k, v)
  
 
</s> remove USE_THNEED = int(os.getenv('USE_THNEED', str(int(TICI))))
if USE_THNEED:
  from selfdrive.modeld.runners.thneedmodel_pyx import ThneedModel as ModelRunner
else:
  from selfdrive.modeld.runners.onnxmodel_pyx import ONNXModel as ModelRunner

MODEL_PATH = str(Path(__file__).parent / f"models/supercombo.{'thneed' if USE_THNEED else 'onnx'}")
 </s> add MODEL_PATHS = {
  ModelRunner.THNEED: Path(__file__).parent / 'models/supercombo.thneed',
  ModelRunner.ONNX: Path(__file__).parent / 'models/supercombo.onnx'} </s> remove from openpilot.selfdrive.modeld.runners.runmodel_pyx import Runtime
 </s> add from openpilot.selfdrive.modeld.runners import ModelRunner, Runtime </s> remove from openpilot.system.hardware import TICI
 </s> add  </s> remove import os
 </s> add 
    self.model = ModelRunner(MODEL_PATHS, self.output, Runtime.GPU, False, context)
        'nav_instructions': np.zeros(NAV_INSTRUCTION_LEN, dtype=np.float32),
        'feature_buffer': np.zeros(HISTORY_BUFFER_LEN * FEATURE_LEN, dtype=np.float32),
      }
  
    self.model = ModelRunner(MODEL_PATHS, self.output, Runtime.GPU, False, context)
      self.model.addInput("input_imgs", None)
      self.model.addInput("big_input_imgs", None)
      for k,v in self.inputs.items():
        self.model.addInput(k, v)
  
keep keep keep keep replace keep keep keep keep keep
 Added ModelRunner helpers in modeld/runners/__init__.py (#29737)

* Added ModelRunner helper class

* import Runtime in __init__.py 
selfdrive/modeld/modeld.py