From 3bb1bc1189bfa14670d2f7839d708f443f5b5942 Mon Sep 17 00:00:00 2001 From: Kevin Cheng Date: Thu, 17 Jun 2021 15:57:08 -0700 Subject: Constant data is embedded in flatbuffer as u8 array instead of saving out as separate numpy files now. Change-Id: I9d757ee3bdc637595732b06c5319d1dc957eaf96 --- include/tosa_serialization_handler.h | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) (limited to 'include/tosa_serialization_handler.h') diff --git a/include/tosa_serialization_handler.h b/include/tosa_serialization_handler.h index 398590d..db9481b 100644 --- a/include/tosa_serialization_handler.h +++ b/include/tosa_serialization_handler.h @@ -26,6 +26,8 @@ #include #include +#define TENSOR_BUFFER_FORCE_ALIGNMENT 8 + namespace tosa { @@ -108,13 +110,13 @@ class TosaSerializationTensor public: // constructor and destructor TosaSerializationTensor(const flatbuffers::String* name, - const flatbuffers::Vector& shape, + const flatbuffers::Vector* shape, DType dtype, - const flatbuffers::String* npy_filename); + const flatbuffers::Vector* data); TosaSerializationTensor(std::string& name, const std::vector& shape, DType dtype, - const std::string& npy_filename); + const std::vector& data); TosaSerializationTensor(); ~TosaSerializationTensor(); @@ -131,9 +133,9 @@ public: { return _dtype; } - const std::string& GetNpyFilePtr() const + const std::vector& GetData() const { - return _npy_filename; + return _data; } // modifier @@ -150,7 +152,7 @@ private: DType _dtype; /* data type enumeration, see tosa_isa_generated.h */ std::vector _shape; /* shape of the tensor */ std::string _name; /* name of the tensor, used for solving dependency */ - std::string _npy_filename; /* numpy array filename if not null. so null is the distinguisher */ + std::vector _data; /* data array */ }; class TosaSerializationOperator @@ -283,6 +285,21 @@ public: tosa_err_t SaveFileTosaFlatbuffer(const char* filename); tosa_err_t LoadFileSchema(const char* schema_filename); + // data format conversion. little-endian. + static tosa_err_t ConvertF32toU8(const std::vector& in, std::vector& out); + static tosa_err_t ConvertI48toU8(const std::vector& in, std::vector& out); + static tosa_err_t ConvertI32toU8(const std::vector& in, std::vector& out); + static tosa_err_t ConvertI16toU8(const std::vector& in, std::vector& out); + static tosa_err_t ConvertI8toU8(const std::vector& in, std::vector& out); + static tosa_err_t ConvertBooltoU8(const std::vector& in, std::vector& out); + + static tosa_err_t ConvertU8toF32(const std::vector& in, uint32_t out_size, std::vector& out); + static tosa_err_t ConvertU8toI48(const std::vector& in, uint32_t out_size, std::vector& out); + static tosa_err_t ConvertU8toI32(const std::vector& in, uint32_t out_size, std::vector& out); + static tosa_err_t ConvertU8toI16(const std::vector& in, uint32_t out_size, std::vector& out); + static tosa_err_t ConvertU8toI8(const std::vector& in, uint32_t out_size, std::vector& out); + static tosa_err_t ConvertU8toBool(const std::vector& in, uint32_t out_size, std::vector& out); + // version const TosaVersion& GetTosaVersion() const { -- cgit v1.2.1