Age | Commit message (Collapse) | Author |
|
Integer inputs and outputs to TOSA operators are now defined as signless
values. In most instances the operator will used signed arithmetic as
indicated in previous versions of the specification resulting in little
functional change to the specification.
New attributes have been added to the RESCALE operator to indicate
whether the input and output values should be treated as signed or unsigned.
Explicit use of static_cast, sign_extend, zero_extend and truncate are added
to the pseudocode to avoid ambiguity.
Change-Id: I71c67d3e5aeaabc418c768f821fce6ee3eebb65b
|
|
Existing logic was impossible to resolve
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
Change-Id: I7f38ea57adb7fff9018a6f0fa8dd82453782d59b
|
|
Add definition of Level 1.0.
Signed-off-by: Dominic Symes <dominic.symes@arm.com>
Change-Id: I1b34ae22396f273cc5ecdf99198fdbece6e2809c
|
|
Zero-point addition after rescale is not
permitted to overflow an int32_t.
Change-Id: I7bc99a9296dce9d48abe271e68f9069425c9c270
Signed-off-by: Dominic Symes <dominic.symes@arm.com>
|
|
Also be consistent to use the term 'rank'
rather than 'dims'.
Change-Id: Ica827fcfd44e9735da2d1a4ddb8cb1fa04c6479b
Signed-off-by: Dominic Symes <dominic.symes@arm.com>
|
|
This converts portions of the asciidoc specification into an xml
document and schema. For the html and pdf outputs, the xml is
converted to asciidoc files that are included into the existing
specification.
The xml allows future automated uses of the tosa specification
while maintaining rough compatibility with the existing document.
No significant functional changes are included in this change.
Change-Id: I7f1f95c527638e270c157d58fcdec6a3510daea5
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
|
|
Define operations in terms of common floating-point data
types. Definitions for the data types are in the introduction.
Added a section to describe status of the different profiles.
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
Change-Id: Iac57026806acfb7913f40af61176322fb02b7cc1
|
|
An unsigned 16-bit integer data type for use with image networks.
Limited to only operating with the RESCALE operator for conversion
to signed int16.
Zero point can be 0 or 32768 in the RESCALE to allow for no loss of
precision (by subtracting 32768), or keeping all values as positive,
(zero point=0) with scaling/clipping as defined in the other RESCALE
arguments.
Change-Id: Id1aebab68fa207f8f8cc235fc3fa5d050307198e
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
|
|
They are arrays of multipliers and shifts to handle per channel
scaling.
Change-Id: I4451a87ef4d710fcb93745c8df73ec41752415c0
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
|
|
- The input/output types for CAST should be in_t* and out_t*
- The shape for the multiplier and shift arguments to RESCALE was in the wrong column
Change-Id: I0a3c4ffed15e36f0c4bf8fc9b4a84df5a17a5523
Signed-off-by: Kevin Petit <kevin.petit@arm.com>
|
|
Operators which use the zero-point functionalty for 8-bit integer
processing are updated to do the zero-point subtract in their
pseudocode.
Note that the PAD operator no longer takes a zero point argument,
and instead requires callers to account for the zero point in the
pad_const argument.
Change-Id: I3bca1cae85aa2093000c420f0433633c347a29de
|
|
Change-Id: I495ed97896d8f560b9eb9ed7b05dd2ca1c564c73
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
|
|
The avg_pool2d and max_pool2d operators trigger an error_if
statement if the output shape provided does not match the output
shape generated by the operation given the input arguments.
* Add pseudocode for floor operation
* Fixed type in RESCALE op
Signed-off-by: Matthew Haddon <matthew.haddon@arm.com>
Change-Id: I087faa331c30becc05719cd1261f436019dcdeb5
|
|
The TOSA specification doesn't have quantized types.
Without those types, it is cleaner to move effects of quantization
such as the zero points into the standard list of arguments, rather
than existing as a separate table.
Change-Id: I18ea2959e9d3e4a3e9a0ead7a8ca319bb4426a47
|
|
Signed-off-by: Dominic Symes <dominic.symes@arm.com>
Change-Id: I91098ef7e18d18263f7b909f75b9df4460417725
|
|
Signed-off-by: Dominic Symes <dominic.symes@arm.com>
Change-Id: I2e25d0467843adb078d5ab9fd681af40b2ffa52e
|
|
REQUIRE is a direct replacement for the asserts, and uses
the unpredictable() function in pseudocode to describe the required
conditions for operators
Change-Id: I35dc81e083d8e41f16728d992bdb8b06b0271226
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
|
|
They are all now [source,c++] and use ---- as the
delimiter.
Also made the pseudocode indentation consistent (4 spaces)
in the introduction sections.
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
Change-Id: I1287a60cfeae8b7e3c63b9fc8885b1ebf3d3386d
|
|
When reading tensor values with zero point, the returned value
has one more bit than the original to account for zero point.
Update cases of apply_clip to properly represent the types
involved.
Change-Id: I60c17b1b244c34b4f04f042807936ae0f282ce93
|
|
Attempt to get consistent across the pseudocode.
Change the data types to all be intN_t instead of some cases of intN.
Use float_t as the general floating point data type.
Be consistent on use of the term "floating-point"
Move general pseudocode helpers to their own section.
Change-Id: Ie77666cd3ee438c71f39c62b9c424fe687b0bb51
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
|
|
The aint8 type represented an asymmetrically quantized range.
With the change to move scaling fully into the RESCALE operator,
the aint8 and int8 types didn't have significant differences in
their use with operators. Unifying to a single data type makes
things simpler.
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
Change-Id: I3ee89cbdafdc61293ef1f1bec52398d744e716a1
|
|
Weights remain as an attribute for inference profile devices.
Change-Id: I1cdbbd2ccd95fc1b7afc0f05a1425fb53560b432
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
|
|
Change-Id: I7c528ebf7e78759ada4bb951b2471c367d3f4525
|