12 #include "common/include/ProfilingGuid.hpp"
14 #include <tosa_serialization_handler.h>
16 using namespace armnn;
51 std::vector<int32_t> returnShape;
54 returnShape.push_back(
static_cast<int32_t
>(shape[i]));
62 std::string guid = std::to_string(layer.
GetGuid());
63 std::string slotAndGuid = std::to_string(layerSlot) +
"_" + guid;
68 return "input" + slotAndGuid;
70 return "output" + slotAndGuid;
72 return "constant_" + guid;
74 return "intermediate" + slotAndGuid;
96 static int uniqueTosaMappingID = 0;
99 return std::to_string(++uniqueTosaMappingID);
108 return "DType_UNKNOWN";
112 return "DType_UINT8";
118 return "DType_INT16";
120 return "DType_INT32";
122 return "DType_INT48";
126 return "DType_UINT16";
141 return "Op_AVG_POOL2D";
143 return "Op_MAX_POOL2D";
154 case Op_DEPTHWISE_CONV2D:
155 return "Op_DEPTHWISE_CONV2D";
156 case Op_FULLY_CONNECTED:
157 return "Op_FULLY_CONNECTED";
160 case Op_TRANSPOSE_CONV2D:
161 return "Op_TRANSPOSE_CONV2D";
165 return "Op_RESERVED";
170 case Op_ARITHMETIC_RIGHT_SHIFT:
171 return "Op_ARITHMETIC_RIGHT_SHIFT";
173 return "Op_BITWISE_AND";
175 return "Op_BITWISE_OR";
177 return "Op_BITWISE_XOR";
181 return "Op_LOGICAL_AND";
182 case Op_LOGICAL_LEFT_SHIFT:
183 return "Op_LOGICAL_LEFT_SHIFT";
184 case Op_LOGICAL_RIGHT_SHIFT:
185 return "Op_LOGICAL_RIGHT_SHIFT";
187 return "Op_LOGICAL_OR";
189 return "Op_LOGICAL_XOR";
205 return "Op_BITWISE_NOT";
217 return "Op_LOGICAL_NOT";
221 return "Op_RECIPROCAL";
230 case Op_GREATER_EQUAL:
231 return "Op_GREATER_EQUAL";
233 return "Op_REDUCE_ANY";
235 return "Op_REDUCE_ALL";
237 return "Op_REDUCE_MAX";
239 return "Op_REDUCE_MIN";
240 case Op_REDUCE_PRODUCT:
241 return "Op_REDUCE_PRODUCT";
243 return "Op_REDUCE_SUM";
255 return "Op_TRANSPOSE";
269 return "Op_IDENTITY";
275 return "Op_WHILE_LOOP";
282 tosa_err_t
error = tosa_err_t::TOSA_OK;
283 std::vector<uint8_t> uint8Data;
284 auto tensorInfo = tensorHandle->GetTensorInfo();
286 switch (tensorInfo.GetDataType())
290 std::vector<float> data(tensorInfo.GetNumElements());
291 memcpy(data.data(), tensorHandle->Map(
true), tensorInfo.GetNumBytes());
293 error = TosaSerializationHandler::ConvertF32toU8(data, uint8Data);
298 std::vector<float> data(tensorInfo.GetNumElements());
299 memcpy(data.data(), tensorHandle->Map(
true), tensorInfo.GetNumBytes());
301 error = TosaSerializationHandler::ConvertF16toU8(data, uint8Data);
307 std::vector<int8_t> data(tensorInfo.GetNumElements());
308 memcpy(data.data(), tensorHandle->Map(
true), tensorInfo.GetNumBytes());
310 error = TosaSerializationHandler::ConvertI8toU8(data, uint8Data);
315 memcpy(uint8Data.data(), tensorHandle->Map(
true), tensorInfo.GetNumBytes());
320 std::vector<int16_t> data(tensorInfo.GetNumElements());
321 memcpy(data.data(), tensorHandle->Map(
true), tensorInfo.GetNumBytes());
323 error = TosaSerializationHandler::ConvertI16toU8(data, uint8Data);
328 std::vector<int32_t> data(tensorInfo.GetNumElements());
329 memcpy(data.data(), tensorHandle->Map(
true), tensorInfo.GetNumBytes());
331 error = TosaSerializationHandler::ConvertI32toU8(data, uint8Data);
336 throw armnn::Exception(
"SetConstantTensorData: An unsupported data type was encountered.");
340 if(
error != tosa_err_t::TOSA_OK)
342 throw armnn::Exception(
"SetConstantTensorData: An error occurred when converting constant data");
345 tensorHandle->Unmap();