- Aug 01, 2025
-
-
Max Bergfelt authored
Added validation of input tensor ranks to the TOSA reader to catch and throw an error on RESCALE input rank 0 tensors when the attribute per channel is set. Change-Id: I94f781f0e37f0400115a66d76f494d6e3f1cff96 Signed-off-by:
Max Bergfelt <max.bergfelt@arm.com>
-
Max Bergfelt authored
Modified the TOSA reader to interpret a missing TOSA tensor shape as rank 0 instead of throwing an error. Change-Id: I41b1f9bdfe42dec69609435599a0822142e53f2f Signed-off-by:
Max Bergfelt <max.bergfelt@arm.com>
-
- Jul 31, 2025
-
-
Johan Gunnarsson authored
Some flatbuffer tools are not respecting the force_align attribute. Constant tensor data is not always aligned to 8 bytes even though tosa.fbs has "data: [ubyte] (force_align: 8)". This casues problems when the tensor data is accessed as int64 in Vela. Signed-off-by:
Johan Gunnarsson <johan.gunnarsson@arm.com> Change-Id: I2e09e0ac8ce8d7e67dc5868bc121f44d1fb851b9
-
Jacob Bohlin authored
Decompose properties were not set correctly for Conv3D and TransposeConv. Also did minor refactoring of the OperatorQuery function. Change-Id: I6a665819898776b166df70f0a9a8729d98175e92 Signed-off-by:
Jacob Bohlin <jacob.bohlin@arm.com>
-
- Jul 30, 2025
-
-
Jacob Bohlin authored
Change-Id: Idfb7d996bbf8a8a86dd6ed0b57295205c9923763 Signed-off-by:
Jacob Bohlin <jacob.bohlin@arm.com>
-
- Jul 29, 2025
-
-
Max Bergfelt authored
Modified reinterpret cast handling when reinterpreting to output so that the preceding operator writes to the correct type. Change-Id: Ie10a4c0de4e80602d7ec3597caeb919c50ddbf61 Signed-off-by:
Max Bergfelt <max.bergfelt@arm.com>
-
Johan Gunnarsson authored
Only one IFM can be used as scalar. If an op has multiple IFMs that could be used as scalars, pick IFM0 and keep the other IFMs as tensors. This decision whether an IFM should be scalar or not happens in RCS generator. To be able to fall back to using read only 1-element IFMs as tensors we need to put all tensors in read only memory, even if they could potentially be ignored. This will waste small amounts of read only memory. Signed-off-by:
Johan Gunnarsson <johan.gunnarsson@arm.com> Change-Id: I9adf7bce615bf705eaf2686fd9640b27130fab17
-
- Jul 28, 2025
-
-
Tim Hall authored
Change-Id: I26051c6c19338695011c16d81453f53a9935ebb9 Signed-off-by:
Tim Hall <tim.hall@arm.com>
-
Max Bergfelt authored
Added a graph optimiser that will only be ran for TOSA networks, similarly to the already existing one for TFLite. Moved over a function which will break TransposeConv2D operators when ran for TFLite networks. Change-Id: I3108b7beb7ebf1eb21abf5b8f8b9027a135e676b Signed-off-by:
Max Bergfelt <max.bergfelt@arm.com>
-
Jacob Bohlin authored
This commit aims to select larger blocks for decomposition and only decompose into block-config blocks when necsessary, i.e. when accumulator load/store functionality is required. This significantly reduces the number of sub-operators produced when decomposing e.g. large tensor axes and by extension compilation time. Also did some minor refactoring to utilise OperatorQuery instead of hardcoded conditions for decomposition. Change-Id: Ida8586a65805f0777718364365639e3dade5742c Signed-off-by:
Jacob Bohlin <jacob.bohlin@arm.com>
-
- Jul 25, 2025
-
-
Max Bergfelt authored
Added validation of tensor ranks to the TOSA reader to catch and throw an error on MUL shift rank 0 tensors (scalars) before they are converted to rank 1. Change-Id: Ia53531b6dbbbb9a9745333958bc7dcdee86c0d8f Signed-off-by:
Max Bergfelt <max.bergfelt@arm.com>
-
- Jul 15, 2025
-
-
Max Bergfelt authored
Changed the calculation of the scale in the QuantizedScale function to bit-exactly match the reference, in which the scale is calculated in two steps for int16 instead of one. Change-Id: I1f72a58b3b3b7abb93ff1a4096e7be9897bd2879 Signed-off-by:
Max Bergfelt <max.bergfelt@arm.com>
-
- Jul 12, 2025
-
-
Replace usages with Graph::IsInput/IsOutput and delete redundant helper. Change-Id: Ib7e0635005576a1a1b0ff803c43499979106cf58 Signed-off-by:
William Isaksson <william.isaksson@arm.com>
-
Fixes a resize bilinear issue depending on implicitly resetting the rounding mode when copying connections Change-Id: Icb05a0019a7b2f76ef5f54a0c69764723c9a383d Signed-off-by:
William Isaksson <william.isaksson@arm.com>
-
If the same Rescale output tensor was used as both inputs to a binary elementwise, the quantization parameters would only be reflected in one of the IFM tensor connections after fusing the rescale. Change-Id: I84168abe038012e6210f8fb9d4a020d2a0c16633 Signed-off-by:
Jacob Bohlin <jacob.bohlin@arm.com>
-
- Jul 11, 2025
-
-
Function is architecture agnostic but was only used for Ethos-U85. This commit makes a few refactors: * Refactor to common function to be used by all architectures. * Re-use the function in more places. * Added `reducedPrecision` flag to the function. Change-Id: I8c50b91cfc6790cc767eb30e030d6ba940d5d3d2 Signed-off-by:
Jacob Bohlin <jacob.bohlin@arm.com>
-
Jacob Bohlin authored
Change-Id: I3e1e1c9372552e540fa3c22f047fe9679d31720b Signed-off-by:
Jacob Bohlin <jacob.bohlin@arm.com>
-
- Jul 08, 2025
-
-
Jacob Bohlin authored
Change-Id: I0228e2cb7d7a0efb44aa4c1b763ffcb77a5a7f60 Signed-off-by:
Jacob Bohlin <jacob.bohlin@arm.com>
-
Max Bergfelt authored
Changed to allow int64 type for Add as the cast operator which supports int64 output (with reinterpret cast) is converted to an Add. Change-Id: I1b84a5fd34e8f258588a2bd7f6603d36c5ff0e88 Signed-off-by:
Max Bergfelt <max.bergfelt@arm.com>
-
- Jul 07, 2025
-
-
Right now, for avg_pool with global scaling when pooling mode sum is required, an implicit scale is set to implement averaging. When we don't want this implicit scaling, we clear the scales to signal this (e.g. in decomposition) and this patch makes sure we check explicitly for that in the rcs gen. Change-Id: I8662de9315542906508dd8f97246f6b80c19eb46 Signed-off-by:
William Isaksson <william.isaksson@arm.com>
-
Networks with a RESCALE that writes to graph output and has output_unsigend set lost the unsignedness of the output tensor when the ReinterpretCast op was handled. This caused wrong OFM clipping and zero point. This patch changes the following: * Don't add REINTERPRETCAST before/after RESCALE. Instead, keep the RESCALE and its attributes and deal with the unsigned input/output when lowering SchedIR to HLC. * Reset all buffers when cloning IFM. This is important when cloning IFM with the purpose of creating a new intermediate tensor. If the IFM is constant, the cloned tensor will inherit the contant data as well, which is not desired in most cases. Signed-off-by:
Johan Gunnarsson <johan.gunnarsson@arm.com> Change-Id: Ie0adbdfbee18e92568acb1d1f44637fbdd309e8d
-
- Jul 04, 2025
-
-
William Isaksson authored
-Changes the CopyInput() and CopyOuput() functions so that they also copy rounding and reverse attributes. -Solves a bug in UnrollKernelStrides() where rounding was not properly copied. Change-Id: I35eed49413b6c5aaa66969cb8230b9a1966a595c Signed-off-by:
William Isaksson <william.isaksson@arm.com>
-
Change-Id: I6ed69ddf6ae8cd4826bce81ffc2e4c7d3dc21e5a Signed-off-by:
Jacob Bohlin <jacob.bohlin@arm.com>
-
Was previously 4D, which meant that networks with >4D inputs or outputs would have their shapes truncated in the raw format metadata. Signed-off-by:
Johan Gunnarsson <johan.gunnarsson@arm.com> Change-Id: I0c9e791940d04418a59de609f99bd66f60deb903
-
- Jun 30, 2025
-
-
Philip Hall authored
The tensor cache was seen to be holding duplicate encoded tensors all with the same parameters but a different key hash. This turned out to be a fault in the Shape hash (which always combined 4 fields regardless of actual shape rank) generating unstable values for 3-axis architecture ublocks. - Updated Shape hash to incorporate only all valid axes. Signed-off-by:
Philip Hall <philip.hall@arm.com> Change-Id: Iae11eeec0eb343caf77e8149b968ba53ba7d8afc
-
- Jun 25, 2025
-
-
Johan Gunnarsson authored
Constant tensors that are not read or written from the NPU don't need to be in the ReadOnly memory area. They can be stored as TFLite buffers only. This matches the Vela/Python behavior. This patch relates to commit 2b8c8725 and d4c6dbd7. Signed-off-by:
Johan Gunnarsson <johan.gunnarsson@arm.com> Change-Id: I414a7eaf22727cfa1a3e71318413c6fe6b584bac
-
- Jun 24, 2025
-
-
Johan Gunnarsson authored
CopyInput/CopyOutput replaces the TensorConnection's shape with the tensor's storage shape. This is undesired in case the original network had a RESHAPE between our op and the RESCALE. In that case we want to preserve the original shape. Signed-off-by:
Johan Gunnarsson <johan.gunnarsson@arm.com> Change-Id: I1e78ce6ec03f71c06a35bb538d3388090178241c
-
- Jun 19, 2025
-
-
The buffer of the cloned IFM tensor used as a new OFM was not released causing an assert in RCSG. Change-Id: Ia738f9651653704e71562979ce0414f0460579d7 Signed-off-by:
Fredrik Svedberg <fredrik.svedberg@arm.com>
-
Removed the check for all IFM tensors of binary elementwise operators to have the same type in the SupportedDtypes function. This check blocked operators such us And/AndNot that can have mixed input types, which are promoted to full width integers either way. Change-Id: Ie4f8304ac67ad06d9c113c5dbd1183a3209ca498 Signed-off-by:
Max Bergfelt <max.bergfelt@arm.com>
-
William Isaksson authored
-adds support for Max pool and Avg pool with stride greater than 3 with zero-padding Change-Id: Ic1539b527490f939840efd5da9c543eff673a3e8 Signed-off-by:
William Isaksson <william.isaksson@arm.com>
-
Jacob Bohlin authored
Decompose FullyConnected operations as Conv2D. Change-Id: If239303901093a49d909e48affe1da961fa63adc Signed-off-by:
Jacob Bohlin <jacob.bohlin@arm.com>
-
- Jun 18, 2025
-
-
Fredrik Svedberg authored
Change-Id: I93960e0a9d4f5616784f6cc3d35ec8eb762e41bc Signed-off-by:
Fredrik Svedberg <fredrik.svedberg@arm.com>
-
Johan Gunnarsson authored
We can actually support all transpose types in a 3D shape on Ethos-U55/U65 through decomposition. The 64k axis constraint remains. Signed-off-by:
Johan Gunnarsson <johan.gunnarsson@arm.com> Change-Id: Idd6769a9f001f1cab05e764a3c052137b5ba6c2a
-
William Isaksson authored
-Adds ext key tracking for TOSA networks. This means tracking the order of operators in the serialized input file Change-Id: I01b9438b503fde02e7071c5e8cd8b1f1483a9b3e Signed-off-by:
William Isaksson <william.isaksson@arm.com>
-
- Jun 17, 2025
-
-
Added a check that ensures an activation function is not fused on another activation function. Change-Id: I1eb8e3622148773e657a9b3f2ec38b546ac2e91e Signed-off-by:
Max Bergfelt <max.bergfelt@arm.com>
-
An update to elementwise constraint checking highlighted a bug in the handling of GraphIR boolean translation. - This commit ensures that the elementwise boolean operators have compatibly typed inputs. - Updated Ethos-U85 elementwise type tables. - Updated constant tensor creation to avoid temporary vector construction for a single value.. Signed-off-by:
Philip Hall <philip.hall@arm.com> Change-Id: I2d4b29a86cdaf1bd62a7e650673087cc1d3fd7bb
-
There is one spot in RewriteSpaceToBatchConvBatchToSpace where this call was missing and lead to incorrect mapping between source op and optimised op in the debug database. Signed-off-by:
Johan Gunnarsson <johan.gunnarsson@arm.com> Change-Id: I7e844750b70b0d4ee1f3f7e52f581eced730a537
-
The table describes connectivity between ops in Scheduler IR. Each row describes one input of an op. It contains 3 fields: * id: The scheduler IR operation ID. * input_op_id: The scheduler IR operation ID of a node producing an input. * input_index: The IFM index that is consuming this input. Two special values are used to describe graph inputs and graph outputs. "-2" is used in this "id" field for graph outputs. "-1" is used in the "input_op_id" field for graph inputs. A network that looks like this... [T1] -> (A) -> [T2] -> (B) -> [T3] ...where T1, T2, T3 are tensors, T1 is graph input, T3 is graph output, A (ID 0), B (ID 1) are operations, will have a perf_debug_conn table that looks like this: id, input_op_id, input_index 0, -1, 0 1, 0, 0 -2, 1, 0 Signed-off-by:
Johan Gunnarsson <johan.gunnarsson@arm.com> Change-Id: Ia8cd8cad35ecf2d3e58987c651856a7d6ea8401b
-
- Jun 13, 2025
-
-
- Throw exception during scheduler_packing if a non-passthrough operation fails to map to NPU. Change-Id: I96ee2e28da841ee663bfeaff62b0646b87eeb431 Signed-off-by:
Alexander Bengtsson <Alexander.Bengtsson@arm.com>
-
- Jun 12, 2025
-
-
Adds support for ResizeBilinear half_pixel_centers with 2x upscaling. Change-Id: I4f2b78f1c2154b94b17ad8f685179ad1849924f9 Signed-off-by:
William Isaksson <william.isaksson@arm.com>
-