aboutsummaryrefslogtreecommitdiff
path: root/tools
AgeCommit message (Collapse)Author
4 daysClarifications and cleanupHEADmainEric Kunze
Miscellaneous cleanup and clarifications across the specification. No functional changes intended in this commit. Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: Iaa89e2f7828ae55abe3fbb19afafb6161a8a43fc
2024-04-19Add limit on size of tensor listsEric Kunze
List maximum varies by Level. Also cleans up some stray references to tosa_list_t. Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I66ba807361948f0b679d0865f967fa2684f8b279
2024-04-18Add version_added to each op_profileEric Kunze
Allows for future tools to take action on which version the operator/profile first appears. Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: If0358c8b189f8b2aa11cde3379076c0cc28bf17d
2024-04-16Add allowed profiles for each extensionEric Kunze
Each extension can contain a list of profiles that it works with. Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I7cf2ad0c57fc8a36500212b7d554a8153fc2efe5
2024-04-12Adjustments to profile changesEric Kunze
Use "or" when listing an operator/data type that can be implemented in multiple profiles. Modify variable_read/variable_write to note that both the base profile and extension must be supported (for example BI and EXT-VARIABLE) Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: Iae15fb1032a4e03da73eda0f3a15e4c0965de052
2024-03-18Add a new rationale appendixEric Kunze
This appendix attempts to record the rationale for decisions made when modifying the TOSA specification. Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: Ia2332d39c075a53f611665c446566bd89385b9fb
2024-03-12Modify TOSA profilesEric Kunze
Create composable profiles and profile extensions. Define requirements for a TOSA implementation to fully implement at least one profile. Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I02cfb0171b2d227727f530cb29108b479206b25b
2024-02-14Initial FP8 supportEric Kunze
Adds support for Open Compute Project (OCP) 8-bit floating point operations to the TOSA specification. Both E4M3 and E5M2 types are supported for profiles as indicated in the Supported Data Types table for each operator. FP8 operator list ARGMAX AVGPOOL CONV2D CONV3D DEPTHWISE_CONV2D MATMUL MAX_POOL2D TRANSPOSE_CONV2D CONST CAST CONCAT PAD DIM RESHAPE REVERSE SLICE TILE TRANSPOSE GATHER SCATTER Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I3dd83f48afcc3c880c5c88039337ff4f1fd95b1b
2024-01-31Add section of shape operatorsv0.90.0Eric Kunze
Rework of the shape operations. Shape operations are now done in shape specific operators rather than being based on type. shape_t is reworked to a list of size_t values. Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I2fca0728f9caa6a6fc34a8ce9e389bb581eea959
2023-08-18Update Custom operator argumentsEric Kunze
CUSTOM operators are still implementation specific, but now have attributes added to identify and namespace the underyling operation. Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I8db2fffd0b34958bd8c718633a130941f32f962b
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-08-11Add StatefulOps to TOSA specificationJerry Ge
Signed-off-by: Jerry Ge <jerry.ge@arm.com> Change-Id: I63a4c1202a1eddcdedb222e64cac34557647ff21
2023-08-03Use black and flake8 to format python (NFC)Eric Kunze
No functional changes, cleanup only Add missing copyright notices Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I0ddc8738f16aeced28fe7aa2ccc4fb715a84bd18
2023-07-24COND_IF/WHILE_LOOP: Add nesting level limitDominic Symes
Nesting of if/while is bounded by MAX_NESTING, set accoring to the TOSA level. Change-Id: If9435a143ffa6bd7ba2e46a68542459b3d723b76 Signed-off-by: Dominic Symes <dominic.symes@arm.com>
2023-06-21Add ERF activation functionEric Kunze
Defined for floating-point types only. For integer versions, a TABLE should be used. Change-Id: Ieaec6e6eb3227c5dcd9741cddd57426002a8db4d Signed-off-by: Eric Kunze <eric.kunze@arm.com>
2023-05-24Formalise the description of operator argument typesKevin Petit
- Standardise the terminology for operator arguments. Argument, Operand, and Parameter were used interchangeably. - Introduce a templatized tensor_t<> type for tensor arguments. Scalars are represented by rank-0 tensors. - Types can be checked with the XSD schema. Signed-off-by: Kevin Petit <kevin.petit@arm.com> Change-Id: Ic57b9387950824e994c5e7f9ec1489c29159b974
2023-05-15Add TOSA rank requirements to TOSA XMLEric Kunze
Adds new optional element to argument 'rank' - Must supply minimum and maximum rank - Integer values or the level based "MAX_RANK" - trailing modifiers allowed for "MAX_RANK" - Displays in a new column in the document - Document generation validates rank against specified shape Change-Id: I507dc51bfe012d3230af43103c6c423a6f1e92b5 Signed-off-by: Eric Kunze <eric.kunze@arm.com>
2023-05-09Main inference compliance testing updatesDominic Symes
- Add additional main inference compliance test data sets for dot product testing in Appendix A. - Express dot product test criteria in terms of tensors rather than individual dot products. - Add per-operation details on test set generation in Appendix A. - Clarify compliance vs conformance wording. - Clarify that the comment in the table of section 1.8.2 on integer saturation applies to the CAST from floating point to integer operation. Change-Id: I1b4c4493b02ed7c8a6eb547656c91ca67d4b0e86 Signed-off-by: Dominic Symes <dominic.symes@arm.com>
2023-04-28Fix resize_t enum nameKevin Petit
resize_t is already used in the type support table for RESIZE, rename the mode enum to resize_mode_t. Also add a python function to get an enum object by name to the spec object. Change-Id: Id12c10929beda469c6e3714518d6e26f18ddd440 Signed-off-by: Kevin Petit <kevin.petit@arm.com>
2023-04-27Move the tensor size limit into the level range definitionDominic Symes
The tensor size in bytes must fit within the level defined size range. Signed-off-by: Dominic Symes <dominic.symes@arm.com> Change-Id: I131e3aa7e8666b4d0093ae8198367f243081da51
2023-04-26Generate level maximums from the XMLKevin Petit
Also make LEVEL_CHECKs unconditional in pseudocode. The various MAX_* maximums are always defined. Change-Id: Iee5d8ade5cba3b4f86cc09f8b867b59fe18f5cfe Signed-off-by: Kevin Petit <kevin.petit@arm.com>
2023-04-14Add enumerations to TOSA specificationEric Kunze
Currently used by RESIZE and AVG_POOL2D Change-Id: I4f401ac092fcf426e6d57b3729943135f634a31e Signed-off-by: Eric Kunze <eric.kunze@arm.com>
2023-02-01Main inference conformance draftDominic Symes
This patch contains a draft of the Main Inference profile floating-point conformance requirements. Change-Id: Ib1201fff7f4015668b2de6dccf4cd85b419c3f76 Signed-off-by: Dominic Symes <dominic.symes@arm.com>
2023-01-17RFFT2D: Adjust output height to be same as the inputLuke Hutton
The expected output shape of RFFT2d should be (N, H, W/2+1) as opposed to (N, H/2+1, W/2+1). Change-Id: I66d830f1ffa86417b57572b3cd904db0290cac42
2022-12-09Use XML as source for specification versionKevin Petit
Also update to version 0.51.0 draft Signed-off-by: Kevin Petit <kevin.petit@arm.com> Change-Id: Ib0754169b96d2f3110067e0bdc0bb3f309ec1951
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-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-06-01Add FFT operators to MI/MT profilesEric Kunze
Adds FFT2D for complex->complex FFT Adds RFFT2D for real->complex FFT Change-Id: Id50f96b8f66f17c3020767c002f0c1f41a76d62e Signed-off-by: Eric Kunze <eric.kunze@arm.com>
2022-03-31Update makefile to fail build on spelling failureEric Kunze
Will also fail if aspell is not installed Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I4cab802b64a938797d84604af80cb37caa04f401
2022-01-07Add rudimentary spell check for specificationEric Kunze
We can't easily spell check the entire specification, the pseudocode and operator tables make it unworkable. This adds a simple python script that tries to extract just the description of the operators for checking. It also does a check over the entire license. A custom dictionary is used to contain specification custom words. Change-Id: I74558c03af1506e2970f20b3246d920c2753ca44 Signed-off-by: Eric Kunze <eric.kunze@arm.com>