Skip to content

Tags

Tags give the ability to mark specific points in history as being important
This project is mirrored from https://review.mlplatform.org/tosa/specification. Pull mirroring updated .
  • v1.0.0-rc0
    TOSA Specification 1.0.0 rc0 release notes
    
    The first release candidate for the TOSA specification
    
    Changed the way profiles are defined. Profiles are no longer supersets of functionality. Each profile contains enough operators to define a useful set of functionality.
    
    Added the concept of extensions. Each extension provides additional functionality to an underlying profile.
      Profiles included in the current version are:
        EXT-INT16, EXT-INT4, EXT-BF16, EXT-FP8E4M3, EXT-FP8E5M2, EXT-FFT, EXT-VARIABLE
    
    Added SIN and COS to the elementwise operators.
    
    Modified convolution operators to have the accumulator type specified as an attribute.
      The output types were also adjusted such that a FP16 convolution can have either FP16
      or FP32 accumulator, with the output type always as FP16. These now work similar to AVG_POOL2D.
    
    Removed the Main Training profile.
      It did not have any operators of its own, and thus wasn't possible to justify in its current state.
    
    FP8 types now use non-saturating rules when CAST is used to cast from a wider data type.
    
    Added a new limit on the number of tensors allowed in a tensor list: MAX_TENSOR_LIST_SIZE
    
    New non-normative appendix added to carry information about why choices in TOSA were made.
    
    Cleanup and update of TOSA status noting that this is the first release candidate for TOSA 1.0
    
    Added a new field to the XML to note what version of the specification an operator was added in. (Nothing before 1.0 is included)
    
    Error bound fixes
    
    Bugfixes, pseudocode clarifications
  • v0.90.0
    TOSA specification v0.90.0 Release Notes
    
    Add shape operators to track shape operations for future shape inference
    Continued pseudocode cleanup
    Conformance testing improvements
    Specify accumulator type for REDUCE_SUM
    Remove redundant out_shape argument from TRANSPOSE_CONV2D
  • v0.80a0
    Start of development for 0.80 TOSA
  • v0.90a0
    Start of work on TOSA v0.90
  • v0.80.0
    TOSA specification v0.80.0 Release Notes
    
    Change specification to refer to signless types consistently.
        RESCALE takes new arguments to determine whether inputs and outputs are unsigned
    Add ERF activation function
    Improve conformance definitions for floating-point operations
        New flag for convolution operators to determine accuracy requirements
    Add stateful operators - VARIABLE / VARIABLE_READ / VARIABLE_WRITE
    Add DIM operator to allow for improved shape inference calculations
    Allow bias tensors to be broadcast
    Various other cleanup, see the git revision history for complete details
  • v0.70.0
    TOSA Specification v0.70.0 release tag
    
    Formalize the description of arguments in tosa.xml
    Generate more from the tosa.xml file.
    	Rank requirements for arguments
    	Maximums for each TOSA level.
    Updated Main Inference floating-point conformance testing
    Add enumerations to TOSA specification
    	Accumulator size
    	Resize type
    Replace uint6_t with int8_t
    	Stick to more common types.
    	Where uint6_t was used has range restrictions so existing implementations do not require changes
    Improve description of the execution model for TOSA
    Minor cleanup
  • v0.60.0
    TOSA 0.60.0 Specification release tag
    
    - Add definitions for main inference conformance. Defines requirements for floating-point accuracy for TOSA operations.
    - Fix rank limitations on data layout operations
    - Add accumulator size for AVG_POOL2D
    - Use XML as source for specification version
    - Misc. cleanups
  • v0.50.0
    TOSA 0.50.0 release tag
    
    - Add a new definition for TOSA levels. Levels define operator parameter
      ranges that an implementation shall support. This is distinct from a profile
      that defines the operations and data-types supported
    - Tensor coordinates are clarified to be 32-bit integer values
    - Operator clarifications: SLICE, RESIZE, RESCALE
    - Add the ability to CAST between floating-point types
    
    See the git log for all changes.
  • v0.40.0
    Specification v0.40.0 release tag
    
    - Some of the table data for the specification has been moved into an XML
      base document. In the specification build, we use the XML to generate
      asciidoc tables to be included into the specification document. The XML
      can be used in other projects to stay in sync with changes to the
      specification.
    - Convolution weights are now noted as inputs for all profiles. Previously,
      they were attributes to the convolution functions for the Base Inference
      and Main Inference profiles. Implementations may choose to optimize the
      weights if they are known at compile time, but it is no longer required to
      be compliant.
    - RESIZE scale is now defined as a ratio of integers. This allows the output
      dimensions to be derived from the input dimensions without rounding.
    - Remove rank limits on RESCALE and POW. This brings them in line with other
      similar operations in the specification.
    - Inverted the definition of out_pad for TRANSPOSE_CONV2D. We have inverted
      the sign of the output pad values such that increasing out_pad values
      leads to increasing pad. This change also specifies a pad limit range of
      output pad values that give an output dependent on the whole input.
  • v0.30.0
    Tag for the release of the TOSA v0.30.0 specification
    
    Changes in this version:
    • The FFT2D and RFFT2D operators are added to the Main Inference and Main
      Training profiles for floating point operations.
    • Unsigned 16-bit integer (uint16) support added. The only operator
      supporting uint16 is the RESCALE operator. It is expected that networks
      consuming uint16 input immediately use a RESCALE to convert to signed 16-bit
      values (int16).
    • Floating point data types have been defined. Instead of a generic
      floating-point format, fp16, fp32, and bf16 data types have been introduced.
    • Chapter one has been reorganized to try to match the overall specification
      better, including an updated description of integer operations/quantization
      within TOSA.
    • The specification now describes the status of each profile separately, to
      better convey the stability level of the profile.
    • Floating point edge-case behavior definition has been improved.
    • In the pseudocode and data type tables for operators, if the input and
      output data types are the same, an in_out_t type is used to attempt to make
      this easier to read.
    • Specifies the output formulae to define the output dimensions for tensor
      operators.
    • Restricted the slope between adjacent 16-bit TABLE entries.
    • Removed support for -1 dimensions in the RESHAPE operator so that all TOSA
      shapes are fully determined.
    • Miscellaneous other clarifications and corrections. (See the git log for
      details)
  • v0.23.0
    V0.23.0 release tag
    
    This release is primarily clarifications and improvements in error handling
    and reporting.
    
    The REQUIRE and ERROR_IF macros were introduced into the pseudocude to
    describe the action when an operators required conditions are not met.
    See section 3.1 of the specification for details on the new validation helpers.
    
    Operator functionality changes:
    
    Removed IDENTITYN, PLACEHOLDER, and RELUN. RELUN can be implmented with the
    existing CLAMP operator. IDENTITYN and PLACEHOLDER can be handled with
    appropriate graph actions
    
    INTDIV - The integer division operator was renamed from DIV to clarify that it only operates on integer values.
    
    PAD - The PAD operator now takes a value to be used as the pad constant.
    
    Miscellaneous other clarification and cleanups were made to text and pseudocode.
  • v0.22.0
    v0.22.0 specification release tag
    
    Functional changes
    
    Add batch dimension to MATMUL.
    CONCAT now accepts a variable number of input tensors.
    Add 8-bit to 8-bit TABLE operation.
    Add 32-bit integer DIV operation.
    Removed the aint8_t data type.
    
    Descriptive changes
    
    Many changes to improve consistency within the specification,
    including to pseudocode and argument types.
    Note limits on axis where appropriate.
  • v0.21.0
    c96709be · Update revision to 0.21.0 ·
    Tag TOSA specification for 0.21.0 release
    
    Functional changes:
    - MUL, add right shift on 32x32 bit multiply
    - ARITHMETIC_RIGHT_SHIFT: add rounding
    - RESIZE: add float type
    - Add int48 to supported number formats
    - Add SCATTER operator
    
    Descriptive changes:
    - Pseudocode cleanup, usage clarifications
    - Fix various rank limitations
    - Rewrite the introduction for improved clarity
    - Improve the documentation for attributes and inputs
    for training profile vs. inference profiles.
  • v0.20.0
    Tag TOSA specification for 0.20.0 release