aboutsummaryrefslogtreecommitdiff
path: root/chapters/data_layout.adoc
blob: 7b9827113bc684292a9192ac6eaa757c8ea90a64 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
//
// This confidential and proprietary software may be used only as
// authorised by a licensing agreement from ARM Limited
// (C) COPYRIGHT 2020-2024 ARM Limited
// ALL RIGHTS RESERVED
// The entire notice above must be reproduced on all authorised
// copies and copies may only be made to the extent permitted
// by a licensing agreement from ARM Limited.

=== Data Layout

==== CONCAT
Concatenate a list of tensors along a given axis.
No data conversion happens during a concat operation.

include::{generated}/operators/CONCAT.adoc[]

[source,c]
----
include::{pseudocode}/operators/CONCAT.tosac[lines=10..-1]
----

==== PAD

Pads a tensor along the borders of each dimension with a supplied value.
Returns a new tensor with the padding included.
The pad_const value includes the zero point if the tensor uses a zero point.

include::{generated}/operators/PAD.adoc[]

[source,c++]
----
include::{pseudocode}/operators/PAD.tosac[lines=10..-1]
----

==== RESHAPE

Returns a tensor with the same type/values as the input, with a new shape specified by the shape argument. Reshape may operate on tensors of any rank. No data conversion happens during a reshape operation.

include::{generated}/operators/RESHAPE.adoc[]

[source,c++]
----
include::{pseudocode}/operators/RESHAPE.tosac[lines=10..-1]
----

==== REVERSE

Returns a tensor with the same type/values as the input, with the data reversed along the given axis. No data conversion happens during a reverse operation.

include::{generated}/operators/REVERSE.adoc[]

[source,c++]
----
include::{pseudocode}/operators/REVERSE.tosac[lines=10..-1]
----

==== SLICE

Extracts a slice of input1, beginning at the start coordinates, and extending for size elements in each direction.
No data conversion happens during a slice operation.

include::{generated}/operators/SLICE.adoc[]

[source,c++]
----
include::{pseudocode}/operators/SLICE.tosac[lines=10..-1]
----

==== TILE

Replicates input1 multiples times along each dimension.

include::{generated}/operators/TILE.adoc[]

[source,c++]
----
include::{pseudocode}/operators/TILE.tosac[lines=10..-1]
----

==== TRANSPOSE

Permutes the dimensions of the input tensor input1 based on the perms argument.
Each value in the perms list must be a valid dimension of the input tensor and may not be repeated.

include::{generated}/operators/TRANSPOSE.adoc[]

[source,c++]
----
include::{pseudocode}/operators/TRANSPOSE.tosac[lines=10..-1]
----