aboutsummaryrefslogtreecommitdiff
path: root/reference_model/src/model_runner_impl.cc
diff options
context:
space:
mode:
authorTai Ly <tai.ly@arm.com>2023-03-28 22:06:56 +0000
committerTai Ly <tai.ly@arm.com>2023-05-05 19:23:15 +0000
commita4d748b08accce06fab93e2d2b96e499b35ae89b (patch)
tree20a3957e1f45f65f35d5d67ecce1618659e388f0 /reference_model/src/model_runner_impl.cc
parent0c71686875618b2e11290273b7a05b88ef8a8aae (diff)
downloadreference_model-a4d748b08accce06fab93e2d2b96e499b35ae89b.tar.gz
[reference model] Add precise mode
This adds --precise_mode=1 option to tosa_referece_model, which will cause reference model to convert all floating point tensors to FP64 tensors and compute all operators accordingly. Also adds optional -p arguments to test runners tosa_verif_run_tests.py and tosa_verif_framework_compiler_runner.py to run tests in precise mode Signed-off-by: Tai Ly <tai.ly@arm.com> Change-Id: I156055216ad61710096497a8fa1a653be2a602a3
Diffstat (limited to 'reference_model/src/model_runner_impl.cc')
-rw-r--r--reference_model/src/model_runner_impl.cc8
1 files changed, 4 insertions, 4 deletions
diff --git a/reference_model/src/model_runner_impl.cc b/reference_model/src/model_runner_impl.cc
index fa39c75..8089a1a 100644
--- a/reference_model/src/model_runner_impl.cc
+++ b/reference_model/src/model_runner_impl.cc
@@ -186,13 +186,13 @@ int ModelRunnerImpl::setInput(std::string input_name, uint8_t* raw_ptr, size_t s
int status = 0;
switch (tensor->getDtype())
{
- case DType::DType_FP16: {
+ case TOSA_REF_TYPE_FP16: {
auto typed_ptr = reinterpret_cast<half_float::half*>(raw_ptr);
const int elements = size / sizeof(half_float::half);
status = setInput(input_name, ArrayProxy(elements, typed_ptr));
break;
}
- case DType::DType_FP32: {
+ case TOSA_REF_TYPE_FP32: {
auto typed_ptr = reinterpret_cast<float*>(raw_ptr);
const int elements = size / sizeof(float);
status = setInput(input_name, ArrayProxy(elements, typed_ptr));
@@ -252,13 +252,13 @@ int ModelRunnerImpl::getOutput(std::string output_name, uint8_t* raw_ptr, size_t
int status = 0;
switch (tensor->getDtype())
{
- case DType::DType_FP16: {
+ case TOSA_REF_TYPE_FP16: {
auto typed_ptr = reinterpret_cast<half_float::half*>(raw_ptr);
const int elements = size / sizeof(half_float::half);
status = tensor->writeToVector(ArrayProxy(elements, typed_ptr));
break;
}
- case DType::DType_FP32: {
+ case TOSA_REF_TYPE_FP32: {
auto typed_ptr = reinterpret_cast<float*>(raw_ptr);
const int elements = size / sizeof(float);
status = tensor->writeToVector(ArrayProxy(elements, typed_ptr));