aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJerry Ge <jerry.ge@arm.com>2024-02-26 13:31:22 -0800
committerJerry Ge <jerry.ge@arm.com>2024-02-27 10:35:07 -0800
commit758e73e117c5cef17f8f0b1c543efc1df953b2fa (patch)
tree2033377d30b702abff184884bd87daeba90d2d91 /src
parent81db8ee8f580d30ec0ca53067df32ef046e6f09e (diff)
downloadserialization_lib-758e73e117c5cef17f8f0b1c543efc1df953b2fa.tar.gz
Update ConvertU8toF16 to save outputs in F16 containers
- If we save FP16 in FP32 containers, it will change byte representation - which causes wrong values after deserialization - Update the code to store F16 values in F16 containers Signed-off-by: Jerry Ge <jerry.ge@arm.com> Change-Id: I2ddea67471997c596980faea1419422d96bad60d
Diffstat (limited to 'src')
-rw-r--r--src/tosa_serialization_handler.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/tosa_serialization_handler.cpp b/src/tosa_serialization_handler.cpp
index 453670f..749a3c8 100644
--- a/src/tosa_serialization_handler.cpp
+++ b/src/tosa_serialization_handler.cpp
@@ -896,8 +896,9 @@ tosa_err_t TosaSerializationHandler::ConvertBooltoU8(const std::vector<bool>& in
return TOSA_OK;
}
-tosa_err_t
- TosaSerializationHandler::ConvertU8toF16(const std::vector<uint8_t>& in, uint32_t out_size, std::vector<float>& out)
+tosa_err_t TosaSerializationHandler::ConvertU8toF16(const std::vector<uint8_t>& in,
+ uint32_t out_size,
+ std::vector<half_float::half>& out)
{
// Note: fp16 values returned in fp32 type
out.clear();
@@ -916,8 +917,7 @@ tosa_err_t
// Reinterpret u16 byte as fp16 then convert to fp32
half_float::half val_f16 = *(half_float::half*)&val_u16;
- float val_fp32 = half_float::half_cast<float, half_float::half>(val_f16);
- out.push_back(val_fp32);
+ out.push_back(val_f16);
}
return TOSA_OK;
}