From e5e2676409a936431f87d31fb74d825257b20804 Mon Sep 17 00:00:00 2001 From: Eric Kunze Date: Tue, 13 Oct 2020 16:11:07 -0700 Subject: Initial checkin of TOSA reference_model and tests Change-Id: I2f8e7fa63e2ae40203e57d2cc8814bde3b312cb6 Signed-off-by: Eric Kunze --- reference_model/src/func_config.def | 90 +++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 reference_model/src/func_config.def (limited to 'reference_model/src/func_config.def') diff --git a/reference_model/src/func_config.def b/reference_model/src/func_config.def new file mode 100644 index 0000000..004cf36 --- /dev/null +++ b/reference_model/src/func_config.def @@ -0,0 +1,90 @@ + +// Copyright (c) 2020, ARM Limited. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* + * Filename: src/func_config.def + * Description: + * Defines the model parameters/options for the functional model. + */ + +// Placeholder values for the Functional model Option Formatting (FOF) fields +// +// FOF_DEC is decimal +// FOF_HEX is hexidecimal +// +// Floating point values are not supported yet, but there is no fundamental reason +// why we can't have them. +#ifndef FOF_DEC +#define FOF_DEC 1 +#endif + +#ifndef FOF_HEX +#define FOF_HEX 1 +#endif + +#ifndef FOF_STR_LEN +#define FOF_STR_LEN 1024 +#endif + +// Options are defined as follows: +// DEF_OPTION() defines a top-level option +// Arguments: +// option_field_name: a C-syntax field name in the struct +// description: a short string that describes the purpose of the option (printed out with help) +// C type: the type of the option (typically a uint64_t, uint32_t, etc) +// Format field: the FOF_* type used to figure out how to format/print the option +// Default value: the default value assigned to the option, if it isn't assigned by an configuration file +// or command line override + +// For defining hierarchical options (example hierarchy is 'cle', use the following formula). +// All options within the hierarchical space must be grouped together: +// + +// #define CURRENT_UNIT cle +// DEF_UNIT_START(CURRENT_UNIT) +// DEF_UNIT_OPTION(CURRENT_UNIT,...) +// ... +// DEF_UNIT_END(CURRENT_UNIT) +// #undef CURRENT_UNIT +// +// The CURRENT_UNIT argument is required as a parameter in these definitions because +// macro processing rules only allow stringification of macro parameters. Unfortunately, +// Other tokens that are NOT passed in as macro parameters cannot be stringified. + +DEF_OPTION_STR(operator_fbs, "Flat buffer syntax file", FOF_STR_LEN, "../serialization/tosa.fbs") +DEF_OPTION_STR(subgraph_dir, "Subgraph directory to load", FOF_STR_LEN, ".") +DEF_OPTION_STR(subgraph_file, "Subgraph file to load", FOF_STR_LEN, "") +DEF_OPTION_STR(input_dir, "Input directory path for dumps/files", FOF_STR_LEN, ".") +DEF_OPTION_STR(input_tensor, "A list of pairs :,:", FOF_STR_LEN, "") +DEF_OPTION_STR(output_dir, "Output directory path for output dumps/files", FOF_STR_LEN, ".") +DEF_OPTION(eval, "Evaluate the network (0/1)", uint32_t, FOF_DEC, 1) +DEF_OPTION(validate_only, "Validate the network, but do not read inputs or evaluate (0/1)", uint32_t, FOF_DEC, 0) +DEF_OPTION(output_tensors, "Output tensors to a file (0/1)", uint32_t, FOF_DEC, 1) +DEF_OPTION(tosa_profile, "Set TOSA profile (0 = Base Inference, 1 = Main Inference, 2 = Main Training)", uint32_t, FOF_DEC, 1) +DEF_OPTION_STR(output_tensor_prefix, "Optional output tensor prefix", FOF_STR_LEN, "output_") +DEF_OPTION(dump_intermediates, "Dump intermediate tensors (0/1)", uint32_t, FOF_DEC, 0) +DEF_OPTION_STR(fp_format, "Floating-point number dump format string (printf-style format, e.g. 0.5)", FOF_STR_LEN, "0.5") +// Example of a hierarchical option +//#define CURRENT_UNIT arch +//DEF_UNIT_START(arch) +//DEF_UNIT_OPTION(arch, ifm_width, "input feature map width(x dim)", uint32_t, FOF_DEC, 10) +//DEF_UNIT_END(CURRENT_UNIT) +///#undef CURRENT_UNIT + +// START Do not delete +// Required for keeping the FOFs clean +#undef FOF_DEC +#undef FOF_HEX +// END Do not delete^^ -- cgit v1.2.1