aboutsummaryrefslogtreecommitdiff
path: root/tosa.xml
AgeCommit message (Collapse)Author
2024-04-24Update main branch version to 1.1.0draftEric Kunze
Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I8c165a2e2b7fadd8e617a967bb6fd89c710514cf
2024-04-19Update version to 1.0.0 draftv1.0.0-rc0v1.00Eric Kunze
Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: Iefa4311c0a1a1b05629b03b48e724841cb67a2d8
2024-04-19Status update and text cleanupEric Kunze
Update the status section of the specification as well as various textual simplifications/clarifications. Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: Ie77039e537bc66e6d05b14c7e0705b1c1cc4be58
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-15Remove int48 as valid accumulator for AVG_POOL2DEric Kunze
It was never listed in the supported data type table, so it isn't a valid option for the acc_type. Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I07021a4e36f321dfb7b493fe727d337b364b2ebb
2024-04-12Remove Main Training profileEric Kunze
The Main Training profile does not have any unique operators in the specification. Remove it as unneeded. New training operators can be added as extensions to existing profiles. Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: Ida5f49a1c7f71276508da0484dff5fae2444b9fc
2024-04-12Move DIM to Shape operator sectionEric Kunze
Is more appropriate than the Data Layout section Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I5427d867b13a69dc0d66e268db4c64e047c65c7f
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-13Modify convolution operators to improve bias handlingEric Kunze
Accumulator size moves to an enumerated attribute, out_t for floating-point changes to be the size of the input. Bias for floating-point also becomes the bit width of the input type. Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I7369417adbb1106ce34a1978e7f511a30272c318
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-14Add SIN/COS to elementwise operator setEric Kunze
Only defined for floating-point types. Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: Ieae355076f9aac6882fab8530e6d7d9985a6e661
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-02-02Update version to 0.100.0 draftEric Kunze
Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I164664bd1497ee991920398b9a85308fa057153f
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
2024-01-23pseudocode: fix name mismatches with operator arguments in the XMLKevin Petit
Change either the name in the pseudocode or XML to what feels more "natural" or in line with other related names. Change-Id: Ic12a0418a80642c548c288b6ba26a4603b94fedc Signed-off-by: Kevin Petit <kevin.petit@arm.com>
2023-12-15IDENTITY: Add missing typesDominic Symes
Add i4_t and i48_t to the list of types supported by the IDENTITY operator. Signed-off-by: Dominic Symes <dominic.symes@arm.com> Change-Id: Id0eeb5f665345e6fdb975b98af4926efc6412afc
2023-11-28REDUCE_SUM: Specify the accumulator typeDominic Symes
For bf16_t data type, REDUCE_SUM is changed to use fp32_t as the accumulator type to be consistent with CONV2D. For other data types the accumulator type is the same as in_out_t (and so no change). Also correct the rank limit text. Update reduction pseudo-code to be consistent with REDUCE_SUM. Change-Id: I9923066be7d1b7edb0efd9bcf3365b4af9501beb Signed-off-by: Dominic Symes <dominic.symes@arm.com>
2023-11-03Fix description of CONST outputEric Kunze
Previous description referred to nonexistant input tensor Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I162ab05ed1db7491ed29ddeabd3490e9ff7ee39b
2023-11-01Update CustomOp's attribute namesJerry Ge
- "operator" is a reserved keyword in C++ - Update the attribute names to avoid those conflicts Signed-off-by: Jerry Ge <jerry.ge@arm.com> Change-Id: Iecb1edc50eb1a1232e05250b8baa79cfceb8cd61
2023-10-30Add description of bias broadcastEric Kunze
Bias broadcast was introduced earlier, this adds text to the bias argument to call out the broadcast when only a single data element is given for broadcast. Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I684afbe642e9b9cfb9f7c7e9b5bb4944019f206a
2023-09-21TRANSPOSE_CONV2D: Remove redundant out_shape argumentDominic Symes
The output shape can be calculated from the input shape and attributes so the out_shape argument is redundant. Change-Id: I7e6b0b7f03dc75ccdf967261fad4185c513ed187 Signed-off-by: Dominic Symes <dominic.symes@arm.com>
2023-09-13Update version to 0.90 draftEric Kunze
Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I323bf261ac4a5219ee881a31e2840356ba32ab9a
2023-09-12Main Conformance: Add local_bound to RFFT2DDominic Symes
Also express the fp32_t acc_min_normal calculation without a double negation. Signed-off-by: Dominic Symes <dominic.symes@arm.com> Change-Id: I34ba274264bc511e60f0e01601d5d0a3f983e594
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-16Main conformance: Add local bound flag for convolutionsDominic Symes
Adds a local_bound flag to convolution operations. If the local_bound flag is true then the output accuracy for floating-point is measured relative to the input tensor data local to the particular convolution output. If the local_bound flag is false then the output accuracy for floating-point is measured relative to the whole input tensor. This accuracy measure is the default and more approapriate for implementations with non local optimizations (such as transform based fast convolutions). Signed-off-by: Dominic Symes <dominic.symes@arm.com> Change-Id: I64e3e4981a63e26e6391149e28d5d71e7ef5560a
2023-08-16Add DIM operator and operations on shape_t valuesDominic Symes
Shape inference derives the shape of tensors in the graph from input shapes. Operations such as RESHAPE may need calculations to derive the new tensor shape. This patch: - Adds a DIM operator to get the size of a tensor in a given axis as a rank 0 tensor of type shape_t - Allows RESHAPE to take a 1D shape tensor as input for the new shape - Allows RESIZE, TILE, PAD to take input sizes based on shape tensors. - Allows ADD, SUB, MUL, INTDIV to operate on rank 0 shape_t tensors - Allows CONCAT to concatenate 0D shape_t tensors to a 1D shape_t tensor - Adds CONST support for shape_t tensors In this version of the specification shape tensors must be resolvable to constants at backend compile time. Signed-off-by: Dominic Symes <dominic.symes@arm.com> Change-Id: I484bd44452453b5e05d0d8a82689564587b224e4
2023-08-15Increase MAX_SCALE for the 8K levelEric Kunze
We've seen networks with >64 scale ratios that we would expect to run on systems implementing the 8K level. Raise the ratio to 256. Change-Id: I5a72a533b2125fe56ffedc8b8d5c31bb96f60f10 Signed-off-by: Eric Kunze <eric.kunze@arm.com>
2023-08-11Add StatefulOps to TOSA specificationJerry Ge
Signed-off-by: Jerry Ge <jerry.ge@arm.com> Change-Id: I63a4c1202a1eddcdedb222e64cac34557647ff21
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-11Change max rank for reduction operators to MAX_RANKEric Kunze
This aligns them with most of the other operators, with the maximum rank handled defined by the level parameter MAX_RANK. Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: Iad9dd285121b4252b39e8e4c3d12a762299c9722
2023-06-23Add Int4 to ConstOp supported data typesJerry Ge
Signed-off-by: Jerry Ge <jerry.ge@arm.com> Change-Id: I3b6193f90541087be2de91837fb0c399e49a45b4
2023-06-23FULLY_CONNECTED: Change weights and bias to be inputsDominic Symes
To be consistent with CONV2D, the FULLY_CONNECTED weight and bias arguments should be inputs rather than attributes. Signed-off-by: Dominic Symes <dominic.symes@arm.com> Change-Id: I77bd0ca36f98bccd0c2224060476e3b4ac04b4bf
2023-06-21Align RESCALE zp description with pseudocodeEric Kunze
int8/uint8 zero point within the given range uint16 zero point is either 0 or 32768 other data types zero point must be 0 Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I3aa240dd8fb88a5f77b7ab90d4dbf634fbf4aa0b
2023-06-21Fix ErfOp to match with the rest of activation operatorsJerry Ge
Signed-off-by: Jerry Ge <jerry.ge@arm.com> Change-Id: Iabe1095e58ddce446d4c1781660bcfe82a596e61
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-01Update version to 0.80.0 draftv0.80a0Eric Kunze
Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: Ifdcc2433cf632136f9d025ce2bdd4445e4cd2d09
2023-05-25Remove draft tag from 0.70 specificationv0.70.0v0.70Eric Kunze
Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I82eb4b2005cb4124840de9c452705bfaa8cf9738
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-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-17Use index_t for SLICE start/sizeKevin Petit
Signed-off-by: Kevin Petit <kevin.petit@arm.com> Change-Id: I3b57615531eebebd356528deeb95a4930ca0b04c
2023-05-17Swap order of condition and input_list arguments on COND_IFKevin Petit
This make it easier for implementations to use variadic constructs to implement input_list. Signed-off-by: Kevin Petit <kevin.petit@arm.com> Change-Id: I3fcc40be30551d883ead506f5eba2aa08cc5186e
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-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-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-04-06Add missing MAX_RANK to NEGATEJeremy Johnson
Signed-off-by: Jeremy Johnson <jeremy.johnson@arm.com> Change-Id: Ie75b0ea9c820fcd26602b9e143e06245a39b5a8b