Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 20 additions & 1 deletion onnxruntime/test/perftest/command_args_parser.cc
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ ABSL_FLAG(size_t, c, DefaultPerformanceTestConfig().run_config.concurrent_sessio
ABSL_FLAG(int, d, DefaultPerformanceTestConfig().run_config.cudnn_conv_algo, "Specifies CUDNN convolution algorithms: 0(benchmark), 1(heuristic), 2(default).");
ABSL_FLAG(int, o, DefaultPerformanceTestConfig().run_config.optimization_level, "Specifies graph optimization level. Default is 99 (all). Valid values are 0 (disable), 1 (basic), 2 (extended), 3 (layout), 99 (all).");
ABSL_FLAG(std::string, u, "", "Specifies the optimized model path for saving.");
ABSL_FLAG(std::string, opt_data, "", "Specifies the data file path (relative to the opt model) for saving weights when -u is in effect");
ABSL_FLAG(int64_t, opt_weight_min_size, -1, "Min initializer size to save to --opt_data when --opt_data is in effect");
Comment thread
yuslepukhin marked this conversation as resolved.
ABSL_FLAG(bool, opt_save_prepacks, false, "Saves pre-packs to the file specified by --opt_data along with weights");
ABSL_FLAG(std::string, i, "",
"Specifies EP specific runtime options as key-value pairs.\n Different runtime options available are: \n"
" [Usage]: -e <provider_name> -i '<key1>|<value1> <key2>|<value2>'\n"
Expand Down Expand Up @@ -399,7 +402,23 @@ bool CommandLineParser::ParseArguments(PerformanceTestConfig& test_config, int a
// -u
{
const auto& optimized_model_path = absl::GetFlag(FLAGS_u);
if (!optimized_model_path.empty()) test_config.run_config.optimized_model_path = ToPathString(optimized_model_path);
if (!optimized_model_path.empty()) {
test_config.run_config.optimized_model_path = ToPathString(optimized_model_path);
// --opt_data
const auto& opt_data_path = absl::GetFlag(FLAGS_opt_data);
if (!opt_data_path.empty()) {
test_config.run_config.optimized_model_data_path = opt_data_path;
// --opt_weight_min_size
if (absl::GetFlag(FLAGS_opt_weight_min_size) >= 0) {
test_config.run_config.optimized_model_weight_min_size =
std::to_string(absl::GetFlag(FLAGS_opt_weight_min_size));
}
// --opt_save_prepacks
if (absl::GetFlag(FLAGS_opt_save_prepacks)) {
test_config.run_config.optimized_save_optimized_prepacks = true;
}
}
}
}

// -I
Expand Down
11 changes: 11 additions & 0 deletions onnxruntime/test/perftest/ort_test_session.cc
Original file line number Diff line number Diff line change
Expand Up @@ -750,6 +750,17 @@ select from 'TF8', 'TF16', 'UINT8', 'FLOAT', 'ITENSOR'. \n)");
}
if (!performance_test_config.run_config.optimized_model_path.empty()) {
session_options.SetOptimizedModelFilePath(performance_test_config.run_config.optimized_model_path.c_str());
if (!performance_test_config.run_config.optimized_model_data_path.empty()) {
session_options.AddConfigEntry(kOrtSessionOptionsOptimizedModelExternalInitializersFileName,
performance_test_config.run_config.optimized_model_data_path.c_str());
if (!performance_test_config.run_config.optimized_model_weight_min_size.empty()) {
session_options.AddConfigEntry(kOrtSessionOptionsOptimizedModelExternalInitializersMinSizeInBytes,
performance_test_config.run_config.optimized_model_weight_min_size.c_str());
}
if (performance_test_config.run_config.optimized_save_optimized_prepacks) {
session_options.AddConfigEntry(kOrtSessionOptionsSavePrePackedConstantInitializers, "1");
}
}
}
if (performance_test_config.run_config.set_denormal_as_zero) {
warn_dup_config_entry(kOrtSessionOptionsConfigSetDenormalAsZero);
Expand Down
5 changes: 4 additions & 1 deletion onnxruntime/test/perftest/test_configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,10 @@ struct RunConfig {
int intra_op_num_threads{0};
int inter_op_num_threads{0};
GraphOptimizationLevel optimization_level{ORT_ENABLE_ALL};
std::basic_string<ORTCHAR_T> optimized_model_path;
PathString optimized_model_path;
std::string optimized_model_data_path; // Always UTF-8
std::string optimized_model_weight_min_size;
bool optimized_save_optimized_prepacks{false};
int cudnn_conv_algo{0};
bool do_cuda_copy_in_separate_stream{false};
bool set_denormal_as_zero{false};
Expand Down
Loading