From b03dc6faa2ed3c025765380ca19bf2178833afde Mon Sep 17 00:00:00 2001 From: Pranav Sharma Date: Mon, 22 Jul 2019 11:09:12 -0700 Subject: [PATCH 1/3] Mention OrtCreateSessionFromArray in C API doc --- docs/C_API.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/C_API.md b/docs/C_API.md index e13ddecfb095e..ea99c5875fe45 100644 --- a/docs/C_API.md +++ b/docs/C_API.md @@ -11,6 +11,7 @@ * Setting the thread pool size for each session. * Setting graph optimization level for each session. * Dynamically loading custom ops. [Instructions](/docs/AddingCustomOp.md) +* Ability to load a model from a byte array. See ```OrtCreateSessionFromArray``` in [onnxruntime_c_api.h](/include/onnxruntime/core/session/onnxruntime_c_api.h). ## Usage Overview From a25276da244d87b5b1df70e202170264bfa4770e Mon Sep 17 00:00:00 2001 From: Pranav Sharma Date: Mon, 19 Aug 2019 11:49:57 -0700 Subject: [PATCH 2/3] Update perf tool documentation to reflect the new graph optimization enums. Relax constraint for enable_all. --- onnxruntime/test/perftest/command_args_parser.cc | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/onnxruntime/test/perftest/command_args_parser.cc b/onnxruntime/test/perftest/command_args_parser.cc index de492fa87a8fd..38831525b0682 100644 --- a/onnxruntime/test/perftest/command_args_parser.cc +++ b/onnxruntime/test/perftest/command_args_parser.cc @@ -42,7 +42,12 @@ namespace perftest { "\t-v: Show verbose information.\n" "\t-x [thread_size]: Session thread pool size.\n" "\t-P: Use parallel executor instead of sequential executor.\n" - "\t-o [optimization level]: 0: disable optimization, 1: basic optimization, 2: extended optimization, 3: extended+layout optimization. \n" + "\t-o [optimization level]:\n" + "\t\t0: disable optimization\n" + "\t\t1: basic optimization\n" + "\t\t2: extended optimization\n" + "\t\t99: extended+layout optimization.\n" + "\t\tPlease see onnxruntime_c_api.h for the complete set of values. \n" "\t-h: help\n"); } @@ -143,8 +148,13 @@ namespace perftest { case ORT_ENABLE_ALL: test_config.run_config.optimization_level = ORT_ENABLE_ALL; break; - default: - return false; + default: { + if (tmp > ORT_ENABLE_ALL) { // relax constraint + test_config.run_config.optimization_level = ORT_ENABLE_ALL; + } else { + return false; + } + } } break; } From cd0f20d40c95dc0d5139783bb3a145ed0274a4f3 Mon Sep 17 00:00:00 2001 From: Pranav Sharma Date: Mon, 19 Aug 2019 12:00:25 -0700 Subject: [PATCH 3/3] Update one more doc --- docs/ONNX_Runtime_Perf_Tuning.md | 2 +- onnxruntime/test/perftest/command_args_parser.cc | 7 +------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/docs/ONNX_Runtime_Perf_Tuning.md b/docs/ONNX_Runtime_Perf_Tuning.md index b0ac2e0b2c039..3c7b238f1cfd4 100644 --- a/docs/ONNX_Runtime_Perf_Tuning.md +++ b/docs/ONNX_Runtime_Perf_Tuning.md @@ -72,7 +72,7 @@ sess_options.set_graph_optimization_level(2) ``` * sess_options.session_thread_pool_size=2 controls how many thread do you want to use to run your model * sess_options.enable_sequential_execution=True controls whether you want to run operators in your graph sequentially or in parallel. Usually when your model has many branches, set this option to false will give you better performance. -* sess_options.set_graph_optimization_level(2). There are three levels, 0 means disable optimization, 1 means enable optimizations before graph partition, 2 means enable all optimization. +* sess_options.set_graph_optimization_level(2). Please see onnxruntime_c_api.h (enum GraphOptimizationLevel) for the full list of all optimization levels. ### MKL_DNN/nGraph/MKL_ML Execution Provider MKL_DNN, MKL_ML and nGraph all depends on openmp for parallization. For those execution providers, we need to use openmp enviroment variable to tune the performance. diff --git a/onnxruntime/test/perftest/command_args_parser.cc b/onnxruntime/test/perftest/command_args_parser.cc index 38831525b0682..ee54ee4b551da 100644 --- a/onnxruntime/test/perftest/command_args_parser.cc +++ b/onnxruntime/test/perftest/command_args_parser.cc @@ -42,12 +42,7 @@ namespace perftest { "\t-v: Show verbose information.\n" "\t-x [thread_size]: Session thread pool size.\n" "\t-P: Use parallel executor instead of sequential executor.\n" - "\t-o [optimization level]:\n" - "\t\t0: disable optimization\n" - "\t\t1: basic optimization\n" - "\t\t2: extended optimization\n" - "\t\t99: extended+layout optimization.\n" - "\t\tPlease see onnxruntime_c_api.h for the complete set of values. \n" + "\t-o [optimization level]: Please see onnxruntime_c_api.h (enum GraphOptimizationLevel) for the full list of all optimization levels. \n" "\t-h: help\n"); }