diff options
author | Matthew Sloyan <matthew.sloyan@arm.com> | 2022-11-14 10:18:01 +0000 |
---|---|---|
committer | Matthew Sloyan <matthew.sloyan@arm.com> | 2022-11-14 17:59:27 +0000 |
commit | 2523b79fd01dfba6c12fa903c80b7a66b853f861 (patch) | |
tree | c1ffbec232c4e249ea3f32b77dd2405726b46993 /src/backends/tosaReference/workloads | |
parent | f53b28f27bfe9cb0c92aa3103622f0fbd3d279c5 (diff) | |
download | armnn-2523b79fd01dfba6c12fa903c80b7a66b853f861.tar.gz |
Add additional data type support to TOSA Reference Backend
* Added all data types to TosaRefPreCompiledWorkload::Execute().
* Generalised IsTosaLayerSupported and fixed Addition support.
* Added Fp16 and Int32 Addition End to End tests.
Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com>
Change-Id: I1f89c310ede33615427343e89bcec7e7bb643fa1
Diffstat (limited to 'src/backends/tosaReference/workloads')
-rw-r--r-- | src/backends/tosaReference/workloads/TosaRefPreCompiledWorkload.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/backends/tosaReference/workloads/TosaRefPreCompiledWorkload.cpp b/src/backends/tosaReference/workloads/TosaRefPreCompiledWorkload.cpp index 18d2900eff..ffdbf6f49b 100644 --- a/src/backends/tosaReference/workloads/TosaRefPreCompiledWorkload.cpp +++ b/src/backends/tosaReference/workloads/TosaRefPreCompiledWorkload.cpp @@ -47,9 +47,25 @@ void TosaRefPreCompiledWorkload::Execute() const DataType dataType = m_workloadInfo.m_InputTensorInfos[inputSlotIdx].GetDataType(); switch (dataType) { + case DataType::Float16: + SetInput<half_float::half>(runner, input_names[inputSlotIdx], inputSlotIdx); + break; case DataType::Float32: SetInput<float>(runner, input_names[inputSlotIdx], inputSlotIdx); break; + case DataType::QAsymmU8: + case DataType::QAsymmS8: + case DataType::QSymmS8: + case DataType::QSymmS16: + case DataType::Signed32: + SetInput<int32_t>(runner, input_names[inputSlotIdx], inputSlotIdx); + break; + case DataType::Signed64: + SetInput<int64_t>(runner, input_names[inputSlotIdx], inputSlotIdx); + break; + case DataType::Boolean: + SetInput<unsigned char>(runner, input_names[inputSlotIdx], inputSlotIdx); + break; default: throw armnn::Exception("Input data type is unsupported in TOSA Reference Backend."); } @@ -68,9 +84,25 @@ void TosaRefPreCompiledWorkload::Execute() const DataType dataType = m_workloadInfo.m_OutputTensorInfos[outputSlotIdx].GetDataType(); switch (dataType) { + case DataType::Float16: + GetOutput<half_float::half>(runner, output_names[outputSlotIdx], outputSlotIdx); + break; case DataType::Float32: GetOutput<float>(runner, output_names[outputSlotIdx], outputSlotIdx); break; + case DataType::QAsymmU8: + case DataType::QAsymmS8: + case DataType::QSymmS8: + case DataType::QSymmS16: + case DataType::Signed32: + GetOutput<int32_t>(runner, output_names[outputSlotIdx], outputSlotIdx); + break; + case DataType::Signed64: + GetOutput<int64_t>(runner, output_names[outputSlotIdx], outputSlotIdx); + break; + case DataType::Boolean: + GetOutput<unsigned char>(runner, output_names[outputSlotIdx], outputSlotIdx); + break; default: throw armnn::Exception("Output data type is unsupported in TOSA Reference Backend."); } |