Age | Commit message (Collapse) | Author |
|
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>
|
|
Operators which use the zero-point functionalty for 8-bit integer
processing are updated to do the zero-point subtract in their
pseudocode.
Note that the PAD operator no longer takes a zero point argument,
and instead requires callers to account for the zero point in the
pad_const argument.
Change-Id: I3bca1cae85aa2093000c420f0433633c347a29de
|
|
PAD now takes an additional attribute, with the padding value.
Will generally be zero, but other values are allowed.
tensor_read now requires the coordinates to be within the
given tensor, with unpredictable behavior occurring if an access
outside of the tensor occurs. Callers of tensor_read are expected
to check the coordinates and take the appropriate action. The
primary impact of this is to move the responsibility for padding to
each operator. In practice, this is expected to not be a functional
change, but a cleanup to make the behavior more clear.
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
Change-Id: I4f21ca9a13d82d422bbd66c400f23aa9a0bd2aa0
|
|
Catch zero and negative sized tensors.
Clarify configuration of bool_t in the reference model.
int4_t limitations on -8 to stay symmetric around 0.
Pad values must be >= 0.
Stride,dilation values must be >= 1.
Change-Id: Idb6ef740f855912a8340475ba319816f90c9b051
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
|
|
Signed-off-by: Dominic Symes <dominic.symes@arm.com>
Change-Id: I2e25d0467843adb078d5ab9fd681af40b2ffa52e
|
|
REQUIRE is a direct replacement for the asserts, and uses
the unpredictable() function in pseudocode to describe the required
conditions for operators
Change-Id: I35dc81e083d8e41f16728d992bdb8b06b0271226
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
|
|
They are all now [source,c++] and use ---- as the
delimiter.
Also made the pseudocode indentation consistent (4 spaces)
in the introduction sections.
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
Change-Id: I1287a60cfeae8b7e3c63b9fc8885b1ebf3d3386d
|
|
When reading tensor values with zero point, the returned value
has one more bit than the original to account for zero point.
Update cases of apply_clip to properly represent the types
involved.
Change-Id: I60c17b1b244c34b4f04f042807936ae0f282ce93
|
|
Attempt to get consistent across the pseudocode.
Change the data types to all be intN_t instead of some cases of intN.
Use float_t as the general floating point data type.
Be consistent on use of the term "floating-point"
Move general pseudocode helpers to their own section.
Change-Id: Ie77666cd3ee438c71f39c62b9c424fe687b0bb51
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
|
|
Elementwise operators no longer scale their inputs to a
common range. The elementwise introductory section reflected
the old behavior.
Also clear up some language on the unary functions.
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
Change-Id: I86bf9da8b51e9a64e4fe6766e01f0c35d43d805a
|
|
The aint8 type represented an asymmetrically quantized range.
With the change to move scaling fully into the RESCALE operator,
the aint8 and int8 types didn't have significant differences in
their use with operators. Unifying to a single data type makes
things simpler.
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
Change-Id: I3ee89cbdafdc61293ef1f1bec52398d744e716a1
|
|
scale_t is already defined globally for the rescaling.
Move pseudocode for count_leading_zeros to introduction,
and use it in the implementation of CLZ.
Change-Id: I2453bce93b6dd25e870b8a010fc62af4c001cbf9
|
|
Bring the overview and goals up to date.
Incorporate a section on finding the source to the
spec and building it.
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
Change-Id: I8c862f8e58b01091d5561296702bcae83a8517e9
|
|
Currently only enabled for the accumulator of a convolution and the
input to a RESCALE.
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
Change-Id: Ic5474124b4a8735f12ef9c20c2be48e55767a3fc
|
|
The result of 32x32 elementwise multiply
exceeds the int32_t result type range.
This change adds a right scaling shift
argument to shift down the result.
Change-Id: I6ae17e6dc3fe342d052304533158ad2d0e7bb7be
Signed-off-by: Dominic Symes <dominic.symes@arm.com>
|
|
Complete the function naming change from
dimensions() to rank(). Fix MATMUL to
use apply_add() for additions, consistent
with the other operations.
Signed-off-by: Dominic Symes <dominic.symes@arm.com>
Change-Id: I6ba84cf8b016505e8477b04dd00f2a2bf3194492
|
|
rank() is consistent with the rest of the specification.
Also add a bit of whitespace in the pseudocode for easier
reading.
Fix one typo.
Change-Id: Ifa794b2c332cb70cd52a141d9af219e26bd3dca0
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
|
|
Change-Id: I7c528ebf7e78759ada4bb951b2471c367d3f4525
|