aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiacheng Liang <jiacheng.liang@arm.com>2023-07-14 12:43:46 +0100
committerJiacheng Liang <jiacheng.liang@arm.com>2023-07-14 12:56:04 +0100
commite7c7cab69c2f02d86474c60ed04debc0e7c7bf65 (patch)
tree3c9e839e20576031d298771f23a7a51c37d6ebd1
parent6c93f41dcb781dde1351ecff549df2a753d5e9c6 (diff)
downloadreference_model-e7c7cab69c2f02d86474c60ed04debc0e7c7bf65.tar.gz
Add support for int32 tensor datatype in model runner
Signed-off-by: Jiacheng Liang <jiacheng.liang@arm.com> Change-Id: Ie31041cbcd01f6290be06eabfe5c619123ae989f
-rw-r--r--reference_model/src/model_runner_impl.cc12
-rw-r--r--reference_model/src/operators.cc20
2 files changed, 30 insertions, 2 deletions
diff --git a/reference_model/src/model_runner_impl.cc b/reference_model/src/model_runner_impl.cc
index 31e100a..f1b70e7 100644
--- a/reference_model/src/model_runner_impl.cc
+++ b/reference_model/src/model_runner_impl.cc
@@ -198,6 +198,12 @@ int ModelRunnerImpl::setInput(std::string input_name, uint8_t* raw_ptr, size_t s
status = setInput(input_name, ArrayProxy(elements, typed_ptr));
break;
}
+ case TOSA_REF_TYPE_INT32: {
+ auto typed_ptr = reinterpret_cast<int*>(raw_ptr);
+ const int elements = size / sizeof(int);
+ status = setInput(input_name, ArrayProxy(elements, typed_ptr));
+ break;
+ }
default:
status = 1;
}
@@ -270,6 +276,12 @@ int ModelRunnerImpl::getOutput(std::string output_name, uint8_t* raw_ptr, size_t
status = tensor->writeToVector(ArrayProxy(elements, typed_ptr));
break;
}
+ case TOSA_REF_TYPE_INT32: {
+ auto typed_ptr = reinterpret_cast<int*>(raw_ptr);
+ const int elements = size / sizeof(int);
+ status = tensor->writeToVector(ArrayProxy(elements, typed_ptr));
+ break;
+ }
default:
status = 1;
}
diff --git a/reference_model/src/operators.cc b/reference_model/src/operators.cc
index 5796129..b6625d0 100644
--- a/reference_model/src/operators.cc
+++ b/reference_model/src/operators.cc
@@ -46,12 +46,28 @@ tosa::DType translate_client_datatype(tosa_datatype_t type)
{
switch (type)
{
+ case tosa_datatype_bf16_t:
+ return tosa::DType::DType_BF16;
+ case tosa_datatype_bool_t:
+ return tosa::DType::DType_BOOL;
case tosa_datatype_fp16_t:
return tosa::DType::DType_FP16;
case tosa_datatype_fp32_t:
return tosa::DType::DType_FP32;
- case tosa_datatype_bool_t:
- return tosa::DType::DType_BOOL;
+ case tosa_datatype_int16_t:
+ return tosa::DType::DType_INT16;
+ case tosa_datatype_int32_t:
+ return tosa::DType::DType_INT32;
+ case tosa_datatype_int48_t:
+ return tosa::DType::DType_INT48;
+ case tosa_datatype_int4_t:
+ return tosa::DType::DType_INT4;
+ case tosa_datatype_int8_t:
+ return tosa::DType::DType_INT8;
+ case tosa_datatype_uint16_t:
+ return tosa::DType::DType_UINT16;
+ case tosa_datatype_uint8_t:
+ return tosa::DType::DType_UINT8;
default:
return tosa::DType::DType_UNKNOWN;
}