2 * Copyright (c) 2019 Samsung Electronics Co., Ltd. All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #ifndef __NNPACKAGE_RUN_ARGS_H__
18 #define __NNPACKAGE_RUN_ARGS_H__
21 #include <unordered_map>
23 #include <boost/program_options.hpp>
25 namespace po = boost::program_options;
30 using TensorShapeMap = std::unordered_map<uint32_t, std::vector<int>>;
35 Args(const int argc, char **argv);
38 const std::string &getPackageFilename(void) const { return _package_filename; }
39 #if defined(ONERT_HAVE_HDF5) && ONERT_HAVE_HDF5 == 1
40 const std::string &getDumpFilename(void) const { return _dump_filename; }
41 const std::string &getLoadFilename(void) const { return _load_filename; }
43 const int getNumRuns(void) const { return _num_runs; }
44 const int getWarmupRuns(void) const { return _warmup_runs; }
45 const int getRunDelay(void) const { return _run_delay; }
46 std::unordered_map<uint32_t, uint32_t> getOutputSizes(void) const { return _output_sizes; }
47 const bool getGpuMemoryPoll(void) const { return _gpumem_poll; }
48 const bool getMemoryPoll(void) const { return _mem_poll; }
49 const bool getWriteReport(void) const { return _write_report; }
50 const bool printVersion(void) const { return _print_version; }
51 const TensorShapeMap &getShapeMapForPrepare() { return _shape_prepare; }
52 const TensorShapeMap &getShapeMapForRun() { return _shape_run; }
53 const int getVerboseLevel(void) const { return _verbose_level; }
57 void Parse(const int argc, char **argv);
60 po::positional_options_description _positional;
61 po::options_description _options;
63 std::string _package_filename;
64 #if defined(ONERT_HAVE_HDF5) && ONERT_HAVE_HDF5 == 1
65 std::string _dump_filename;
66 std::string _load_filename;
68 TensorShapeMap _shape_prepare;
69 TensorShapeMap _shape_run;
73 std::unordered_map<uint32_t, uint32_t> _output_sizes;
77 bool _print_version = false;
81 } // end of namespace nnpkg_run
83 #endif // __NNPACKAGE_RUN_ARGS_H__