aboutsummaryrefslogtreecommitdiff
path: root/chapters/type_conversion.adoc
AgeCommit message (Collapse)Author
2024-01-15Move operator pseudocode to separate filesKevin Petit
This makes it easier to process the pseudocode automatically. Change-Id: I84394192598e589de07d43a7af60b96788e14f86 Signed-off-by: Kevin Petit <kevin.petit@arm.com>
2023-08-17Change TOSA specification to signless typesEric Kunze
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
2023-05-02Fix logic error for RESCALE of uint16Eric Kunze
Existing logic was impossible to resolve Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I7f38ea57adb7fff9018a6f0fa8dd82453782d59b
2022-12-05Add Levels defintionDominic Symes
Add definition of Level 1.0. Signed-off-by: Dominic Symes <dominic.symes@arm.com> Change-Id: I1b34ae22396f273cc5ecdf99198fdbece6e2809c
2022-11-11RESCALE: Clarify zero-point additionDominic Symes
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>
2022-08-26RESCALE and POW: remove rank restrictionDominic Symes
Also be consistent to use the term 'rank' rather than 'dims'. Change-Id: Ica827fcfd44e9735da2d1a4ddb8cb1fa04c6479b Signed-off-by: Dominic Symes <dominic.symes@arm.com>
2022-08-19Machine parsable specificationEric Kunze
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>
2022-06-17Initial work on floating-point type definitionEric Kunze
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
2022-05-16Add the uint16_t data typeEric Kunze
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>
2022-05-10Mark RESCALE multiplier and scale as refsEric Kunze
They are arrays of multipliers and shifts to handle per channel scaling. Change-Id: I4451a87ef4d710fcb93745c8df73ec41752415c0 Signed-off-by: Eric Kunze <eric.kunze@arm.com>
2022-04-20Simple fixes to the arguments to CAST and RESCALEKevin Petit
- 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>
2021-10-28Remove zp subtraction from tensor_read pseudocodeEric Kunze
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
2021-10-18Fix typo int_t to in_tEric Kunze
Change-Id: I495ed97896d8f560b9eb9ed7b05dd2ca1c564c73 Signed-off-by: Eric Kunze <eric.kunze@arm.com>
2021-10-08Force output shape to be correct for pooling operationsMatthew Haddon
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
2021-10-04Move quantization parameters into argument tablesEric Kunze
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
2021-09-24CAST: Correct profile for floating point castsDominic Symes
Signed-off-by: Dominic Symes <dominic.symes@arm.com> Change-Id: I91098ef7e18d18263f7b909f75b9df4460417725
2021-07-13Add definition of TOSA complianceDominic Symes
Signed-off-by: Dominic Symes <dominic.symes@arm.com> Change-Id: I2e25d0467843adb078d5ab9fd681af40b2ffa52e
2021-06-24Replace assert with REQUIRE()Eric Kunze
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>
2021-03-11Make pseudocode block tags consistentEric Kunze
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
2021-03-11Adjust pseudocode types to account for zero pointEric Kunze
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
2021-03-08Consistency cleanupEric Kunze
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>
2021-01-25Remove aint8 typeEric Kunze
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
2020-11-03Change weights to input for training profileEric Kunze
Weights remain as an attribute for inference profile devices. Change-Id: I1cdbbd2ccd95fc1b7afc0f05a1425fb53560b432 Signed-off-by: Eric Kunze <eric.kunze@arm.com>
2020-10-01TOSA spec 0.20.0, initial public versionv0.20.0Eric Kunze
Change-Id: I7c528ebf7e78759ada4bb951b2471c367d3f4525