Age | Commit message (Collapse) | Author |
|
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
Change-Id: I8c165a2e2b7fadd8e617a967bb6fd89c710514cf
|
|
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
Change-Id: Iefa4311c0a1a1b05629b03b48e724841cb67a2d8
|
|
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
|
|
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
|
|
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
|
|
Each extension can contain a list of profiles that it works with.
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
Change-Id: I7cf2ad0c57fc8a36500212b7d554a8153fc2efe5
|
|
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
|
|
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
|
|
Is more appropriate than the Data Layout section
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
Change-Id: I5427d867b13a69dc0d66e268db4c64e047c65c7f
|
|
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
|
|
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
|
|
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
|
|
Only defined for floating-point types.
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
Change-Id: Ieae355076f9aac6882fab8530e6d7d9985a6e661
|
|
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
|
|
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
Change-Id: I164664bd1497ee991920398b9a85308fa057153f
|
|
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
|
|
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>
|
|
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
|
|
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>
|
|
Previous description referred to nonexistant input tensor
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
Change-Id: I162ab05ed1db7491ed29ddeabd3490e9ff7ee39b
|
|
- "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
|
|
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
|
|
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>
|
|
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
Change-Id: I323bf261ac4a5219ee881a31e2840356ba32ab9a
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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>
|
|
Signed-off-by: Jerry Ge <jerry.ge@arm.com>
Change-Id: I63a4c1202a1eddcdedb222e64cac34557647ff21
|
|
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>
|
|
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>
|
|
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
|
|
Signed-off-by: Jerry Ge <jerry.ge@arm.com>
Change-Id: I3b6193f90541087be2de91837fb0c399e49a45b4
|
|
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
|
|
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
|
|
Signed-off-by: Jerry Ge <jerry.ge@arm.com>
Change-Id: Iabe1095e58ddce446d4c1781660bcfe82a596e61
|
|
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>
|
|
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
Change-Id: Ifdcc2433cf632136f9d025ce2bdd4445e4cd2d09
|
|
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
Change-Id: I82eb4b2005cb4124840de9c452705bfaa8cf9738
|
|
- 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
|
|
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>
|
|
Signed-off-by: Kevin Petit <kevin.petit@arm.com>
Change-Id: I3b57615531eebebd356528deeb95a4930ca0b04c
|
|
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
|
|
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>
|
|
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>
|
|
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
|
|
Currently used by RESIZE and AVG_POOL2D
Change-Id: I4f401ac092fcf426e6d57b3729943135f634a31e
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
|
|
Signed-off-by: Jeremy Johnson <jeremy.johnson@arm.com>
Change-Id: Ie75b0ea9c820fcd26602b9e143e06245a39b5a8b
|