PC: fix onnxruntime excessive CPU (#23051)

* onnxruntime-gpu two threads

* relock pipfile

Co-authored-by: jwolffe <wolffja@gmail.com>
Co-authored-by: Willem Melching <willem.melching@gmail.com>
old-commit-hash: db9ea45cd5
commatwo_master
jimw 4 years ago committed by GitHub
parent 1473ec97da
commit ce83b94fa6
  1. 4
      Pipfile
  2. 4
      Pipfile.lock
  3. 23
      selfdrive/modeld/runners/onnx_runner.py

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:52b8d2b00d9d1d8b3430c2bc74e4ff51ab460317f931ed35cc74c6b9cc90f4d0
size 1211
oid sha256:46258ab149de8606b809e271264382d5450c11e914bb72c37697345290bd39f1
size 1215

4
Pipfile.lock generated

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3a3f3fe1935735e8ad7b9f24c39e200e5d462704d97276520227043bab07890e
size 145075
oid sha256:871bf11488728e41699192b10314fde73cd8ca57acc803d452de76ac756bf3af
size 144757

@ -5,8 +5,9 @@ import sys
import numpy as np
os.environ["OMP_NUM_THREADS"] = "4"
os.environ["OMP_WAIT_POLICY"] = "PASSIVE"
import onnxruntime as ort
import onnxruntime as ort # pylint: disable=import-error
def read(sz):
dd = []
@ -38,22 +39,22 @@ def run_loop(m):
if __name__ == "__main__":
print(ort.get_available_providers(), file=sys.stderr)
print("Onnx available providers: ", ort.get_available_providers(), file=sys.stderr)
options = ort.SessionOptions()
options.graph_optimization_level = ort.GraphOptimizationLevel.ORT_DISABLE_ALL
if 'OpenVINOExecutionProvider' in ort.get_available_providers() and 'ONNXCPU' not in os.environ:
print("OnnxJit is using openvino", file=sys.stderr)
options = ort.SessionOptions()
options.graph_optimization_level = ort.GraphOptimizationLevel.ORT_DISABLE_ALL
provider = 'OpenVINOExecutionProvider'
elif 'CUDAExecutionProvider' in ort.get_available_providers() and 'ONNXCPU' not in os.environ:
options.intra_op_num_threads = 2
provider = 'CUDAExecutionProvider'
else:
print("OnnxJit is using CPU", file=sys.stderr)
options = ort.SessionOptions()
options.intra_op_num_threads = 4
options.intra_op_num_threads = 2
options.inter_op_num_threads = 8
options.execution_mode = ort.ExecutionMode.ORT_SEQUENTIAL
options.graph_optimization_level = ort.GraphOptimizationLevel.ORT_ENABLE_ALL
provider = 'CPUExecutionProvider'
ort_session = ort.InferenceSession(sys.argv[1], options)
ort_session.set_providers([provider], None)
print("Onnx selected provider: ", [provider], file=sys.stderr)
ort_session = ort.InferenceSession(sys.argv[1], options, providers=[provider])
print("Onnx using ", ort_session.get_providers(), file=sys.stderr)
run_loop(ort_session)

Loading…
Cancel
Save