Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BENCHMARK_APP] Show input command in output #13402

Merged
Merged
38 changes: 38 additions & 0 deletions samples/cpp/benchmark_app/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,41 @@
#include "remote_tensors_filling.hpp"
#include "statistics_report.hpp"
#include "utils.hpp"

#if defined(_WIN32) || defined(WIN32)
# include <windows.h>
#endif
// clang-format on

static const size_t progressBarDefaultTotalCount = 1000;

std::string get_console_command(int argc, char* argv[]) {
std::stringstream args_command;

#if defined(_WIN32) || defined(WIN32)
std::string relative_path(argv[0]);
std::vector<char> buffer;

uint32_t len = 1024;
do {
buffer.resize(len);
len = GetFullPathNameA(relative_path.data(), len, buffer.data(), nullptr);
} while (len > buffer.size());

std::string full_path(buffer.begin(), buffer.end());
args_command << full_path;
#else
args_command << realpath(argv[0], nullptr);
#endif
args_command << " ";

for (int i = 1; i < argc; i++) {
args_command << argv[i] << " ";
}

return args_command.str();
}

bool parse_and_check_command_line(int argc, char* argv[]) {
// ---------------------------Parsing and validating input
// arguments--------------------------------------
Expand Down Expand Up @@ -161,12 +192,19 @@ int main(int argc, char* argv[]) {

// ----------------- 1. Parsing and validating input arguments
// -------------------------------------------------

// Must be executed before parse_and_check_command_line()
// gflags::ParseCommandLineNonHelpFlags() modifies the argv array
auto command_from_args = get_console_command(argc, argv);

next_step();

if (!parse_and_check_command_line(argc, argv)) {
return 0;
}

slog::info << "Input command: " << command_from_args << slog::endl;

bool isNetworkCompiled = fileExt(FLAGS_m) == "blob";
if (isNetworkCompiled) {
slog::info << "Network is compiled" << slog::endl;
Expand Down
6 changes: 6 additions & 0 deletions tools/benchmark_tool/openvino/tools/benchmark/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,15 @@ def main():
statistics = None
try:
# ------------------------------ 1. Parsing and validating input arguments ------------------------------
args_string = f"{os.path.realpath(sys.argv[0])} "
for i in range(1,len(sys.argv)):
args_string += f"{sys.argv[i]} "

next_step()
args, is_network_compiled = parse_and_check_command_line()

logger.info(f"Input command: {args_string}")

if args.number_streams is None:
logger.warning(" -nstreams default value is determined automatically for a device. "
"Although the automatic selection usually provides a reasonable performance, "
Expand Down