aboutsummaryrefslogtreecommitdiff
path: root/reference_model
diff options
context:
space:
mode:
Diffstat (limited to 'reference_model')
-rw-r--r--reference_model/CMakeLists.txt66
-rw-r--r--reference_model/src/verify/verify_config.cc19
-rw-r--r--reference_model/src/verify/verify_dot_product.cc2
3 files changed, 54 insertions, 33 deletions
diff --git a/reference_model/CMakeLists.txt b/reference_model/CMakeLists.txt
index 227d19f..88192bf 100644
--- a/reference_model/CMakeLists.txt
+++ b/reference_model/CMakeLists.txt
@@ -91,14 +91,11 @@ set(CXX_SOURCE
src/ops/control_flow.cc
)
-# Build TOSA Reference Model library
-add_library(tosa_reference_model_lib ${CXX_SOURCE})
-
-target_include_directories(tosa_reference_model_lib
- PUBLIC
+set(PUBLIC_INCLUDE_DIRS
$<INSTALL_INTERFACE:include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SRC_DIR}/include>
- PRIVATE
+)
+set(PRIVATE_INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/src
${FLATBUFFERS_DIR}/include
${EIGEN_DIR}
@@ -108,6 +105,16 @@ target_include_directories(tosa_reference_model_lib
${JSON_DIR}/single_include
)
+# Build TOSA Reference Model library
+add_library(tosa_reference_model_lib STATIC ${CXX_SOURCE})
+
+target_include_directories(tosa_reference_model_lib
+ PUBLIC
+ ${PUBLIC_INCLUDE_DIRS}
+ PRIVATE
+ ${PRIVATE_INCLUDE_DIRS}
+)
+
target_link_libraries(tosa_reference_model_lib
PRIVATE
${SERIALIZATION_LIB}
@@ -130,6 +137,21 @@ list(APPEND PUBLIC_HEADERS
set_target_properties(tosa_reference_model_lib PROPERTIES PUBLIC_HEADER "${PUBLIC_HEADERS}")
+# Build TOSA verification library
+add_library(tosa_reference_verify_lib SHARED
+ src/verify/verify_dot_product.cc
+ src/verify/verify_entry.cc
+ src/verify/verify_utils.cc
+ src/verify/verify_config.cc
+ src/func_debug.cc
+)
+target_include_directories(tosa_reference_verify_lib
+ PUBLIC
+ ${PUBLIC_INCLUDE_DIRS}
+ PRIVATE
+ ${PRIVATE_INCLUDE_DIRS}
+)
+
# Build TOSA Refererence Model executable
if(BUILD_TOSA_REFERENCE_MODEL_EXECUTABLE)
set(CXX_SOURCE_EX src/main.cpp)
@@ -139,16 +161,9 @@ if(BUILD_TOSA_REFERENCE_MODEL_EXECUTABLE)
target_include_directories(tosa_reference_model
PUBLIC
- $<INSTALL_INTERFACE:include>
- $<BUILD_INTERFACE:${CMAKE_CURRENT_SRC_DIR}/include>
+ ${PUBLIC_INCLUDE_DIRS}
PRIVATE
- ${CMAKE_CURRENT_SOURCE_DIR}/src
- ${FLATBUFFERS_DIR}/include
- ${EIGEN_DIR}
- ${EIGEN_DIR}/unsupported/
- ${SERIALIZATION_DIR}/include
- ${HALF_DIR}/include
- ${JSON_DIR}/single_include
+ ${PRIVATE_INCLUDE_DIRS}
)
target_link_libraries(tosa_reference_model
@@ -183,17 +198,10 @@ if(BUILD_TOSA_REFERENCE_MODEL_TESTS)
target_include_directories(unit_tests
PUBLIC
- $<INSTALL_INTERFACE:include>
- $<BUILD_INTERFACE:${CMAKE_CURRENT_SRC_DIR}/include>
+ ${PUBLIC_INCLUDE_DIRS}
PRIVATE
- ${CMAKE_CURRENT_SOURCE_DIR}/src
- ${FLATBUFFERS_DIR}/include
- ${EIGEN_DIR}
- ${EIGEN_DIR}/unsupported/
- ${SERIALIZATION_DIR}/include
- ${HALF_DIR}/include
+ ${PRIVATE_INCLUDE_DIRS}
${DOCTEST_DIR}
- ${JSON_DIR}/single_include
)
target_link_libraries(unit_tests
@@ -217,15 +225,9 @@ if(BUILD_MODEL_RUNNER_SAMPLE)
target_include_directories(model_runner_sample
PUBLIC
- $<INSTALL_INTERFACE:include>
- $<BUILD_INTERFACE:${CMAKE_CURRENT_SRC_DIR}/include>
+ ${PUBLIC_INCLUDE_DIRS}
PRIVATE
- ${CMAKE_CURRENT_SOURCE_DIR}/src
- ${FLATBUFFERS_DIR}/include
- ${EIGEN_DIR}
- ${EIGEN_DIR}/unsupported/
- ${SERIALIZATION_DIR}/include
- ${HALF_DIR}/include
+ ${PRIVATE_INCLUDE_DIRS}
)
target_link_libraries(model_runner_sample
diff --git a/reference_model/src/verify/verify_config.cc b/reference_model/src/verify/verify_config.cc
new file mode 100644
index 0000000..3bae9b9
--- /dev/null
+++ b/reference_model/src/verify/verify_config.cc
@@ -0,0 +1,19 @@
+// Copyright (c) 2023, 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.
+
+#include "model_common.h"
+
+// Global instantiation of configuration and debug objects for verify lib
+func_config_t g_func_config;
+func_debug_t g_func_debug;
diff --git a/reference_model/src/verify/verify_dot_product.cc b/reference_model/src/verify/verify_dot_product.cc
index a24f83f..0b05c92 100644
--- a/reference_model/src/verify/verify_dot_product.cc
+++ b/reference_model/src/verify/verify_dot_product.cc
@@ -89,7 +89,7 @@ bool validateData(const double* ref, const double* bnd, const AccType* imp, size
for (size_t i = 0; i < T; ++i)
{
auto out_err = validateElement<AccType>(ref[i], bnd[i], imp[i], KS);
- TOSA_REF_REQUIRE(out_err, "output error is 0");
+ TOSA_REF_REQUIRE(out_err, "data required to be zero or error within range");
out_err_sum += out_err.value();
out_err_sumsq += out_err.value() * out_err.value();
}