diff --git a/Pipfile b/Pipfile index c402520dc9..2336552c28 100644 --- a/Pipfile +++ b/Pipfile @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:52b8d2b00d9d1d8b3430c2bc74e4ff51ab460317f931ed35cc74c6b9cc90f4d0 -size 1211 +oid sha256:46258ab149de8606b809e271264382d5450c11e914bb72c37697345290bd39f1 +size 1215 diff --git a/Pipfile.lock b/Pipfile.lock index fb248bf830..8610993c34 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3a3f3fe1935735e8ad7b9f24c39e200e5d462704d97276520227043bab07890e -size 145075 +oid sha256:871bf11488728e41699192b10314fde73cd8ca57acc803d452de76ac756bf3af +size 144757 diff --git a/selfdrive/modeld/runners/onnx_runner.py b/selfdrive/modeld/runners/onnx_runner.py index 811ea91ab4..3b19550e8f 100755 --- a/selfdrive/modeld/runners/onnx_runner.py +++ b/selfdrive/modeld/runners/onnx_runner.py @@ -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)