aboutsummaryrefslogtreecommitdiff
path: root/reference_model/src/verify/verify_utils.cc
diff options
context:
space:
mode:
authorJeremy Johnson <jeremy.johnson@arm.com>2023-10-24 14:45:12 +0100
committerEric Kunze <eric.kunze@arm.com>2023-10-25 17:47:09 +0000
commitfc5e34e41afc07ea5ed03e3c5d4b5be92bef7fd7 (patch)
treecbb2556e96ddf1e53dff888e54e76586f46e00fc /reference_model/src/verify/verify_utils.cc
parentfd8c8fe887d49223b4d4c66d38e79d6e4c648fef (diff)
downloadreference_model-fc5e34e41afc07ea5ed03e3c5d4b5be92bef7fd7.tar.gz
Improve verfiy and generate library validation
Improved libraries validation to catch unknown values. Improved verify output to match generate library. Refactored generate tests to use less code duplication. Signed-off-by: Jeremy Johnson <jeremy.johnson@arm.com> Change-Id: I9c38745fbc8e70f46c19ddae6c62ee248d33b5f1
Diffstat (limited to 'reference_model/src/verify/verify_utils.cc')
-rw-r--r--reference_model/src/verify/verify_utils.cc15
1 files changed, 13 insertions, 2 deletions
diff --git a/reference_model/src/verify/verify_utils.cc b/reference_model/src/verify/verify_utils.cc
index 366238b..ee11c41 100644
--- a/reference_model/src/verify/verify_utils.cc
+++ b/reference_model/src/verify/verify_utils.cc
@@ -25,6 +25,7 @@ namespace tosa
NLOHMANN_JSON_SERIALIZE_ENUM(DType,
{
+ { DType::DType_UNKNOWN, "UNKNOWN" },
{ DType::DType_BOOL, "BOOL" },
{ DType::DType_INT4, "INT4" },
{ DType::DType_INT8, "INT8" },
@@ -43,6 +44,7 @@ namespace TosaReference
NLOHMANN_JSON_SERIALIZE_ENUM(VerifyMode,
{
+ { VerifyMode::Unknown, "UNKNOWN" },
{ VerifyMode::Exact, "EXACT" },
{ VerifyMode::Ulp, "ULP" },
{ VerifyMode::DotProduct, "DOT_PRODUCT" },
@@ -94,14 +96,23 @@ std::optional<VerifyConfig> parseVerifyConfig(const char* tensorName, const char
auto jsonCfg = nlohmann::json::parse(json, nullptr, /* allow exceptions */ false);
if (jsonCfg.is_discarded())
+ {
+ WARNING("[Verifier] Invalid json config.");
return std::nullopt;
+ }
if (!jsonCfg.contains("tensors"))
+ {
+ WARNING("[Verifier] Missing tensors in json config.");
return std::nullopt;
+ }
const auto& tensors = jsonCfg["tensors"];
if (!tensors.contains(tensorName))
- return std::nullopt;
-
+ if (!tensors.contains(tensorName))
+ {
+ WARNING("[Verifier] Missing tensor %s in json config.", tensorName);
+ return std::nullopt;
+ }
const auto& namedTensor = tensors[tensorName];
return namedTensor.get<VerifyConfig>();
}