aboutsummaryrefslogtreecommitdiff
path: root/chapters
AgeCommit message (Collapse)Author
2023-08-07Allow bias tensors to be broadcastDominic Symes
Bias tensors often have the same value for each channel. To allow for this the number of bias channels, BC, is permitted to be 1 or the output channel size. If BC == 1 then the bias is broadcast. Change-Id: I3262a6c699bd045f44201e2a123f9b792b9f67c9 Signed-off-by: Dominic Symes <dominic.symes@arm.com>
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-07-06AVG_POOL2D conformance: fix kernel size namesDominic Symes
Change-Id: I188694080b74ec81c6dea675430e29db11ee6079 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-06-08Fix main inference conformance test dataDominic Symes
Correct the kernel size for the DEPTHWISE_CONV2D test data generator in Appendix A. Change-Id: I4fea6192bcd8a70d82d12543730cdc684fb839e5 Signed-off-by: Dominic Symes <dominic.symes@arm.com>
2023-06-02Fix main inference conformance data generator scalingDominic Symes
Correct scaling factor for tosa_mi_data() for S=1 and S=4 data sets. Signed-off-by: Dominic Symes <dominic.symes@arm.com> Change-Id: I3f09f758d82ccd64da8bb26fd219ff4d7a55918c
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-22Update descriptions for activation functions.Eric Kunze
Provide the mathematical formulas for sigmoid and tanh. Define the operation function for sigmoid and tanh for floating-point numbers. Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: Ib949d2e8e06309e5c5292aa0192746ad0f9b1f11
2023-05-22Start introducing concepts to better describe the execution modelKevin Petit
Signed-off-by: Kevin Petit <kevin.petit@arm.com> Change-Id: I75753adecd50b68e1184ab8aa59fd4c8c3638a1a
2023-05-18Remove orphaned pseudocode linesEric Kunze
The lines using the flattened pad values were removed, but the flatten call remained. Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I2b33945fa40ba413a657c4daaaf1820dd5b1c3d4
2023-05-18Replace uint6_t with int8_tKevin Petit
Add REQUIRE statements to constrain the range where needed. Also fix a typo. Change-Id: I281e6249d8951b4cb3ff19eaf199660bed3feac9 Signed-off-by: Kevin Petit <kevin.petit@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-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
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-18Fix description of tensor size limitKevin Petit
Also replace all instances of "co-ordinate" with "coordinate" for consistency. Signed-off-by: Kevin Petit <kevin.petit@arm.com> Change-Id: Idff73092711d3ff85bf4db33df92924c754cf451
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-03-21Update Argmax's rank maximum to MAX_RANKJerry Ge
Signed-off-by: Jerry Ge <jerry.ge@arm.com> Change-Id: Idc68dfee54f1855782e57a8855b4e4120e25e74d
2023-03-20Check the output shape of broadcast operationsDominic Symes
For an operation that performs broadcast the output shape size must be the maximum of the input shape sizes in each dimension. Additionally, the input dimension size must be 1 whenever an input shape does not match the output shape size in a dimension. Signed-off-by: Dominic Symes <dominic.symes@arm.com> Change-Id: I89492f4ef22da76f84f12e720c79634ea42545bc
2023-03-17SCATTER/GATHER: Replace value_t with in_out_tKevin Petit
Most operators use in_out_t. This removes a special case. Signed-off-by: Kevin Petit <kevin.petit@arm.com> Change-Id: Icfc86f1101d250700677959949bda466519152de
2023-03-07Update version to 0.60.0 for releasev0.60.0v0.60Eric Kunze
Also update copyright year on license. Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I6acf8b11990e436c4e2ceffa9c044a34a577a5ae
2023-02-24Main inference conformance additionsDominic Symes
Add a check on the error bias for dot product calculations and slightly increase the error variance bound for dot products. Change-Id: I518704d1fb1b109695b0f90f7ca6733850e6a8c7 Signed-off-by: Dominic Symes <dominic.symes@arm.com>
2023-02-24Fix rank limits for various data layout operationsLuke Hutton
This commit removes the maximum rank 4 restriction from REVERSE, SLICE and TILE operations so that the new maximum is now MAX_RANK. In doing so some rank inconsistencies were also cleaned up, including: * Adding a minimum rank to the PAD op description * Adding level limit checks to SLICE and TILE ops * Adding checks for rank(shape1) == rank(shape) for TILE and TRANSPOSE ops * Add tensor_size(shape1) == tensor_size(shape) check for TRANSPOSE * Replace tensor name with shape name in pesudo code where necessary Change-Id: I94bb8ee0b6b720b2ba5a884ce9300dca6281245a Signed-off-by: Luke Hutton <luke.hutton@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-23Clarify description for LOGICAL_LEFT_SHIFTEric Kunze
Align with the definition for LOGICAL_RIGHT_SHIFT which was clearer. Change-Id: I9d8f33b54fb982a09597078eb14a7730c488bcef Signed-off-by: Eric Kunze <eric.kunze@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-09SELECT: Replace use of cmp_t with bool_tKevin Petit
cmp_t is only used in the definition of SELECT and always defined to bool_t. This removes a special case in generators. Signed-off-by: Kevin Petit <kevin.petit@arm.com> Change-Id: I9e7992bbfdf5c7fafdd55df90feb4dcbcdee2972
2022-12-05Clarify the type of condition tensorsDominic Symes
Condition tensors used by the control flow operations must contain a single element. Change-Id: Ie3cb8f0b4a4149cee1b3aacbfa720dd4cad02fbc Signed-off-by: Dominic Symes <dominic.symes@arm.com>
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-30SLICE: remove the mention of an axis in the descriptionKevin Petit
No such attribute. Signed-off-by: Kevin Petit <kevin.petit@arm.com> Change-Id: If1b1ece15589e9bf07971542783f51294a05aab9
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-10-19Define the index type for tensor co-ordinatesDominic Symes
Tensor co-ordinate indices are signed 32-bit values in this version of the specification. Signed-off-by: Dominic Symes <dominic.symes@arm.com> Change-Id: I6b8dde500ef9c4c4c5688c1a43f8d658863e4a49
2022-09-28RESIZE: Clarify floating point typesDominic Symes
Change resize_t to use the same type as in_t and out_t for floating point data. Signed-off-by: Dominic Symes <dominic.symes@arm.com> Change-Id: I3214d92477688b95ba572f22d34aab3fef7d0f82
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-25TRANSPOSED_CONV2D: Invert pad definitionDominic Symes
Increasing output pad values reduces the size of the output region in the old definition. This is counter-intuitive. This patch inverts the sign of the output pad values such that increasing values leads to increasing pad. It also specifies a pad limit range of output pad values that give an output dependent on the whole input. Signed-off-by: Dominic Symes <dominic.symes@arm.com> Change-Id: I47ff4ee67942aec9e728f0b42d87d20117f0b97a
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-08-15PAD: Check output shapeDominic Symes
Check output shape matches the padded input shape. Signed-off-by: Dominic Symes <dominic.symes@arm.com> Change-Id: I8e335ce9b086a36d9e38aa332ecc88782e040cc6
2022-07-08RESIZE: define scale as a ratio of integersEric Kunze
Define scaling factor as a ratio of integers so that output dimensions can be derived from input dimensions without rounding. Change-Id: Iddfd9ff549edf2963bf22047e8641a348cadb35f Signed-off-by: Eric Kunze <eric.kunze@arm.com>
2022-06-30Relax limit on input value for RESCALEEric Kunze
The current value is too strict, and can lead to some cases to fail. By making the new value limit between (-1 << shift-1) and (1 << shift-1), we still restrict the input value a range that works for optimized implementations that left shift their values before multiplying. Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: Ib4f49732e361418884888d398087560da3ccd6e8
2022-06-17Update TOSA version to 0.30.0v0.30.0v0.30Eric Kunze
Also update copyright date for specification. Change-Id: I72d2423247f62fa304d0c0535ef33defb903b74e Signed-off-by: Eric Kunze <eric.kunze@arm.com>
2022-06-17Revert RESIZE behvior to the 0.23 versionEric Kunze
The current version does not match the reference model or serialization library. Revert to the old behavior until the model is updated and tested that it works correctly. Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I237dc3e94e6c31337073524527da75084ba7b578
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-17Rework the introductionEric Kunze
The information on quantization and numerics was out of date. The tensor access helpers were also consolidated and moved into their own section in the pseudocode chapter. Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I472e674ed88f4a3ef379010cf50b13cf8afa5f17
2022-06-13Fix typo on CONV3D pseudocodeEric Kunze
Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: Ib953cc4b635469034300662b9ae997d0a1bd58a7
2022-06-02Make the use of inverse in FFT2D definition consistentEric Kunze
The captions for the images used 'direction', instead of 'inverse' which is the attribute name. Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I4d8ab9642288efb984d03b7862068e09334ce8f6
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-06-01RESIZE: Clarify offset and border rangesDominic Symes
Signed-off-by: Dominic Symes <dominic.symes@arm.com> Change-Id: Ibb60c192ea60b665cec8d91f7de7cc6e3f553fa6
2022-05-26Update RESHAPE pseudocodeEric Kunze
Remove the calculation of a -1 dimension from the operator. Calculates the new coordinates, and adds the proper tensor_read/tensor_write for the data. Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: Iad1d83c170732bdfb3652dead9044809168b23d2
2022-05-24Fix typo in TILE operatorEric Kunze
Replicates multiples times, not multiplies. Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I78c19013d08295171a20fead17661a8f9ea68ac8
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>