diff options
Diffstat (limited to 'examples/gemm_tuner/CommonGemmExampleOptions.cpp')
-rw-r--r-- | examples/gemm_tuner/CommonGemmExampleOptions.cpp | 37 |
1 files changed, 30 insertions, 7 deletions
diff --git a/examples/gemm_tuner/CommonGemmExampleOptions.cpp b/examples/gemm_tuner/CommonGemmExampleOptions.cpp index a93d0191b3..c2a465604a 100644 --- a/examples/gemm_tuner/CommonGemmExampleOptions.cpp +++ b/examples/gemm_tuner/CommonGemmExampleOptions.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 ARM Limited. + * Copyright (c) 2019-2021 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -34,30 +34,53 @@ using namespace utils; os << "N : " << common_params.N << std::endl; os << "K : " << common_params.K << std::endl; os << "B : " << common_params.B << std::endl; + os << "Data type : " << common_params.data_type << std::endl; + os << "OpenCL tuner mode : " << common_params.tuner_mode << std::endl; return os; } -CommonGemmExampleOptions::CommonGemmExampleOptions(CommandLineParser &parser) +CommonGemmExampleOptions::CommonGemmExampleOptions(arm_compute::utils::CommandLineParser &parser, + arm_compute::DataType default_data_type) : help(parser.add_option<ToggleOption>("help")), M(parser.add_positional_option<SimpleOption<size_t>>("M", 100)), N(parser.add_positional_option<SimpleOption<size_t>>("N", 100)), K(parser.add_positional_option<SimpleOption<size_t>>("K", 50)), - B(parser.add_positional_option<SimpleOption<size_t>>("B", 1)) + B(parser.add_positional_option<SimpleOption<size_t>>("B", 1)), + data_type(), + tuner_mode() { + const std::set<DataType> supported_data_types{ + DataType::F16, + DataType::F32, + DataType::QASYMM8, + }; + + const std::set<CLTunerMode> supported_tuner_modes{CLTunerMode::EXHAUSTIVE, CLTunerMode::NORMAL, CLTunerMode::RAPID}; + + ARM_COMPUTE_ERROR_ON_MSG(supported_data_types.find(default_data_type) == supported_data_types.end(), + "Default data type unsupported"); + + data_type = parser.add_option<EnumOption<DataType>>("type", supported_data_types, default_data_type); + tuner_mode = parser.add_option<EnumOption<CLTunerMode>>("tuner-mode", supported_tuner_modes, CLTunerMode::RAPID); + help->set_help("Show this help message."); M->set_help("Number of lhs matrix rows."); N->set_help("Number of rhs matrix columns."); K->set_help("Number of lhs matrix columns/rhs matrix rows."); B->set_help("Batch size."); + data_type->set_help("Data type to use"); + tuner_mode->set_help("OpenCL tuner mode"); } CommonGemmExampleParams consume_common_gemm_example_parameters(const CommonGemmExampleOptions &options) { CommonGemmExampleParams common_params; - common_params.M = options.M->value(); - common_params.N = options.N->value(); - common_params.K = options.K->value(); - common_params.B = options.B->value(); + common_params.M = options.M->value(); + common_params.N = options.N->value(); + common_params.K = options.K->value(); + common_params.B = options.B->value(); + common_params.data_type = options.data_type->value(); + common_params.tuner_mode = options.tuner_mode->value(); return common_params; } } // namespace gemm_tuner |