aboutsummaryrefslogtreecommitdiff
path: root/reference_model/src/generate/generate_utils.cc
diff options
context:
space:
mode:
authorJeremy Johnson <jeremy.johnson@arm.com>2023-11-20 16:15:30 +0000
committerEric Kunze <eric.kunze@arm.com>2023-11-30 18:52:24 +0000
commit3047625f7d4b3a77cb3a3480481122f7ba01be2d (patch)
tree125ce52f1b9f65090a0bdb1c2fafeb8e0c516425 /reference_model/src/generate/generate_utils.cc
parent35a3aa994cf18f735193a05a7eb2c61d497233d2 (diff)
downloadreference_model-3047625f7d4b3a77cb3a3480481122f7ba01be2d.tar.gz
Adjust random data ranges for Main Compliance to avoid FP inf and nan
POW - there are now 3 test sets to cover random ranges. Also added ROUND mode to data generator to force integer exponent values. LOG, EXP, RSQRT, REDUCE_SUM & FULLY_CONNECTED - have had their ranges reduced for each test. Fix generate library configuration defaults and checks. Signed-off-by: Jeremy Johnson <jeremy.johnson@arm.com> Change-Id: Ie5d3bd78f690cc787a2ca4eb9b4bd6808bd9238c
Diffstat (limited to 'reference_model/src/generate/generate_utils.cc')
-rw-r--r--reference_model/src/generate/generate_utils.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/reference_model/src/generate/generate_utils.cc b/reference_model/src/generate/generate_utils.cc
index 1edc79d..58a3d33 100644
--- a/reference_model/src/generate/generate_utils.cc
+++ b/reference_model/src/generate/generate_utils.cc
@@ -116,6 +116,10 @@ void from_json(const nlohmann::json& j, PseudoRandomInfo& pseudoRandomInfo)
{
j.at("range").get_to(pseudoRandomInfo.range);
}
+ if (j.contains("round"))
+ {
+ j.at("round").get_to(pseudoRandomInfo.round);
+ }
}
void from_json(const nlohmann::json& j, GenerateConfig& cfg)
@@ -126,10 +130,22 @@ void from_json(const nlohmann::json& j, GenerateConfig& cfg)
j.at("input_pos").get_to(cfg.inputPos);
j.at("op").get_to(cfg.opType);
j.at("generator").get_to(cfg.generatorType);
+
+ // Set up defaults for dotProductInfo
+ cfg.dotProductInfo.s = -1;
+ cfg.dotProductInfo.ks = -1;
+ cfg.dotProductInfo.accType = DType_UNKNOWN;
+ cfg.dotProductInfo.kernel = std::vector<int32_t>();
+ cfg.dotProductInfo.axis = -1;
if (j.contains("dot_product_info"))
{
j.at("dot_product_info").get_to(cfg.dotProductInfo);
}
+
+ // Set up defaults for pseudoRandomInfo
+ cfg.pseudoRandomInfo.rngSeed = -1;
+ cfg.pseudoRandomInfo.range = std::vector<std::string>();
+ cfg.pseudoRandomInfo.round = false;
if (j.contains("pseudo_random_info"))
{
j.at("pseudo_random_info").get_to(cfg.pseudoRandomInfo);