aboutsummaryrefslogtreecommitdiff
path: root/reference_model/include/verify.h
diff options
context:
space:
mode:
Diffstat (limited to 'reference_model/include/verify.h')
-rw-r--r--reference_model/include/verify.h53
1 files changed, 14 insertions, 39 deletions
diff --git a/reference_model/include/verify.h b/reference_model/include/verify.h
index d294388..e449ff7 100644
--- a/reference_model/include/verify.h
+++ b/reference_model/include/verify.h
@@ -18,54 +18,29 @@
//
//===----------------------------------------------------------------------===//
-#include <cstddef>
+#include "types.h"
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
- // Check result
- //
- // Error is valid only and only if is_valid is true
- struct CheckResult
- {
- bool is_valid;
- double error;
- };
-
- /// Validate and calculate tensor element error when using an fp32 accumulator
- ///
- /// \param ref Tensor element calculated using fp64
- /// \param bnd Tensor element calculated using fp64 on abs(input, weights)
- /// \param imp Tensor element calculated through the implementation
- /// \param KS The kernel size
- ///
- /// \return Output error
- CheckResult tosa_validate_element_accfp32(double ref, double bnd, float imp, size_t KS);
-
- /// Validate the accumulated output error
- ///
- /// \param err_sum Sum of error of all the tensor elements within a tensor
- /// \param err_sum_sq Sum of error squares of all the tensor elements within a tensor
- /// \param T Number of output (dot-product) elements
- /// \param KS The kernel size
- /// \param S Test set used as a input/weight generator
+ /// \brief Perform compliance validation between a reference and a target output
///
- /// \return True if the error is within margin else false
- bool tosa_validate_output_error(double err_sum, double err_sum_sq, size_t T, size_t KS, int S);
-
- /// Validate error of whole vector of output data
+ /// A compliance configuration is expected as it provides information about
+ /// the type of validation to be performed alongside with all the relevant
+ /// meta-data. Configuration is provided in JSON format.
///
- /// \param ref Output elements calculated using fp64
- /// \param bnd Output elements calculated using fp64 on abs(input, weights)
- /// \param imp Output elements calculated using the implementation
- /// \param T Number of elements in outputs (need to match)
- /// \param KS The kernel size
- /// \param S Test set used as a input/weight generator
+ /// \param ref Reference tensor to compare against
+ /// \param ref_bnd (Optional) Reference tensor when run on absolute inputs
+ /// \param imp Implementation resulting tensor
+ /// \param config_json Compliance configuration that indicates how and what compliance need to be performed
///
- /// \return True if the error is within margin else false
- bool tosa_validate_data_fp32(const double* ref, const double* bnd, const float* imp, size_t T, size_t KS, int S);
+ /// \return True in case of successful validation else false
+ bool tvf_verify_data(const tosa_tensor_t* ref,
+ const tosa_tensor_t* ref_bnd,
+ const tosa_tensor_t* imp,
+ const char* config_json);
#ifdef __cplusplus
}