Draft: Introduction of Tiling
(Optional) but should be done someday
-
Update previous recipies from return type void
tostd::set<std::shared_ptr<Node>>
-
Update GraphView oldNodeGraphView->replaceWith({newNodes})
member function to ``aGraphView->replace({oldNodes}, {newNodes}). Add an option to replace in every GraphView?
Essential for tiling
User interface
-
ability to specify teh size of an outputTensor from one branch (or the number of slices for each dimension) -
Possibility to tile a Node or a set of Nodes. The size of consecutive input/output Tensors is automatically computed
Functionalities
-
create computeReceptiveField()
member function. This function is only valid for Tensor-based Operators-
Conv -
ReLU
-
-
Implement TensorView for backends and OperatorImpls able to handle them -
General Tiling recipie -
Specify the type of tiling -
Horizontal tiling -
Vertical tiling
-
-
Transform the Graph -
Add Slice
Operator with right dimensions -
Re-order slices in the right order with Concat
. Two consecutiveConcat
for tiling both vertical and horizontal?. -
Replace old Nodes with tiled Nodes ( GraphView::replace
)
-
-
Specify several Nodes
-
-
Individual Operators needed -
Slice: to extract specific scope in memory from a Data object -
Concat: concatenate several memory slices into one coherent Data object
-
flowchart LR
subgraph Tile with view on initial Tensor
direction LR
Tensor3((" ")) --> c5("Conv 1.1") & c6("Conv 1.2") & c7("Conv 1.3") & c8("Conv 1.4")
c5 --> r1(ReLU 2.1)
c6 --> r2(ReLU 2.2)
c7 --> r3(ReLU 2.3)
c8 --> r4(ReLU 2.4)
r1 & r2 & r3 & r4 --> concat2(Concat)
end
subgraph Tile with Slice
direction LR
Tensor1((" ")) --> s1("Slice 1") & s2("Slice 2") & s3("Slice 3") & s4("Slice 4")
s1 --> c1(Conv 1.1)
s2 --> c2(Conv 1.2)
s3 --> c3(Conv 1.3)
s4 --> c4(Conv 1.4)
c1 --> r5(ReLU 2.1)
c2 --> r6(ReLU 2.2)
c3 --> r7(ReLU 2.3)
c4 --> r8(ReLU 2.4)
r5 & r6 & r7 & r8 --> concat1(Concat)
end
subgraph Initial
direction LR
Tensor2((" ")) --> Conv("Conv 1") --> ReLU("ReLU 1")
end
Expected user interface
auto g = importONNX("a/path.onnx");
for (auto& individualConv : g->match("Conv")) {
auto tiledConv = tiling(individualConv);
g->replace(individualConv, tiledConv);
}
Merge request reports
Activity
changed milestone to %v0.1.0
assigned to @pineapple
added 1 commit
- cd1bee12 - [Add] First draft of a test for horizontalTiling transformation
requested review from @olivierbichler
added 8 commits
-
cd1bee12...c7696578 - 4 commits from branch
main
- a8e86249 - Merge remote-tracking branch 'origin/main' into tiling
- 95ba2718 - [Add] Slice Operator
- 5fc8cad9 - [Upd] aidge include file
- 987c568c - [Upd] minor changes and comment horizontal tiling test file
Toggle commit list-
cd1bee12...c7696578 - 4 commits from branch
added 1 commit
- 0d7336ca - [Fix] assertion for slices with at least one dim the same size as input dim
added 67 commits
-
0d7336ca...026123ea - 65 commits from branch
main
- 83288986 - Merge branch 'main' into tiling
- 1f044b9f - [Add] Concat in aidge.hpp
-
0d7336ca...026123ea - 65 commits from branch
added 1 commit
- 2ac231d8 - [Upd] Add Operator to support an undefined number of inputs. Remove templates
added 19 commits
-
cba16a82...cb55e4e8 - 18 commits from branch
main
- e88b574d - Merge remote-tracking branch 'origin/main' into tiling
-
cba16a82...cb55e4e8 - 18 commits from branch
added 2 commits
added 1 commit
- ba4f14bc - [Fix] add getAttr function for const ref to Operator
added 1 commit
- ab8c1701 - [Upd] Remove 'NbInputs' for Add and Concat attributes
added 4 commits
- dc5ae734 - [Add] Introduce compile() member function to set the GraphView ready for forward in one line
- fa3b55f6 - [Add] Default computeReceptiveField() member function for Operators
- 0e4f51cf - [Add] Conv_Op computeReceptiveField() override with test
- e8ef037f - [Add] ConvDepthWise_Op computeReceptiveField() override with test
Toggle commit listmentioned in merge request !46 (merged)
added 47 commits
-
e4db07cb...50f86506 - 46 commits from branch
main
- c7d07439 - Merge branch 'main' into tiling
-
e4db07cb...50f86506 - 46 commits from branch
added Feature Important LanguageC++ PriorityHigh StatusWork in Progress labels
added 14 commits
-
73cc1b3b...5686be10 - 13 commits from branch
main
- ddc0de91 - Merge branch 'main' into tiling
-
73cc1b3b...5686be10 - 13 commits from branch
added 9 commits
-
ddc0de91...0686c4ed - 7 commits from branch
main
- e77ed125 - [Tmp] Remove computeReceptiveField function to allow merge with master
- b5a9890c - Merge remote-tracking branch 'origin/main' into tiling
-
ddc0de91...0686c4ed - 7 commits from branch
added 1 commit
- c698971e - [Tmp] also remove computeReceptiveField() from ConvDepthWise operator
We should merge this branch now to get updates on Operators needed by !46 (merged).
computeReceptiveField()
member function andhorizontalTiling
recipi have been commented.For now, this branch adds:
- Slice and Concat operators
- Remove template from Add operator
- introduce a prototype of the
compile()
member function for GraphView objects
requested review from @cmoineau
added 7 commits
-
c698971e...80e80a4d - 6 commits from branch
main
- 1f1bca00 - Merge remote-tracking branch 'origin/main' into tiling
-
c698971e...80e80a4d - 6 commits from branch