-
Notifications
You must be signed in to change notification settings - Fork 0
/
Composite.drawio
380 lines (380 loc) · 35.6 KB
/
Composite.drawio
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
<mxfile host="app.diagrams.net" modified="2022-08-23T04:44:46.636Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" etag="sD1tmh6fI3gBuhFedFe7" version="20.2.5" type="github">
<diagram id="AyWnoLKwbGapCT2SXxWh" name="Page-1">
<mxGraphModel dx="2102" dy="2409" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="U-4zYPPOTee5trkrOgwL-1" value="Python API" style="swimlane;" parent="1" vertex="1">
<mxGeometry x="525.5" y="73" width="200" height="140" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-66" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="U-4zYPPOTee5trkrOgwL-1" source="U-4zYPPOTee5trkrOgwL-5" target="U-4zYPPOTee5trkrOgwL-8" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-5" value="paddle.xxx" style="rounded=0;whiteSpace=wrap;html=1;" parent="U-4zYPPOTee5trkrOgwL-1" vertex="1">
<mxGeometry x="35" y="40" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-8" value="_C_ops.xxx" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="U-4zYPPOTee5trkrOgwL-1" vertex="1">
<mxGeometry x="35" y="90" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-2" value="AD-Function API" style="swimlane;startSize=23;" parent="1" vertex="1">
<mxGeometry x="250" y="250" width="741" height="370" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-11" value="动态图" style="swimlane;fillColor=#d5e8d4;strokeColor=#82b366;" parent="U-4zYPPOTee5trkrOgwL-2" vertex="1">
<mxGeometry x="30" y="34.5" width="290" height="314.5" as="geometry" />
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-24" value="AutoDiff函数执行流程" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;fontSize=12;" vertex="1" parent="U-4zYPPOTee5trkrOgwL-11">
<mxGeometry x="50" y="64.5" width="200" height="155.5" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-12" value="静态图" style="swimlane;fillColor=#d5e8d4;strokeColor=#82b366;" parent="U-4zYPPOTee5trkrOgwL-2" vertex="1">
<mxGeometry x="370" y="34.5" width="340" height="314.5" as="geometry" />
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-25" value="AutoDiff函数执行流程(no_grad)" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;fontSize=12;" vertex="1" parent="U-4zYPPOTee5trkrOgwL-12">
<mxGeometry x="59" y="70.75" width="200" height="155.5" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-53" value="DyGradNode" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="30" y="590" width="160" height="86" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-54" value="+ attrs: Attr/Tensor" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="U-4zYPPOTee5trkrOgwL-53" vertex="1">
<mxGeometry y="26" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-55" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="U-4zYPPOTee5trkrOgwL-53" vertex="1">
<mxGeometry y="52" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-56" value="+ operator()(grad): grad_out" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="U-4zYPPOTee5trkrOgwL-53" vertex="1">
<mxGeometry y="60" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-62" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=120.125;entryPerimeter=0;" parent="1" source="U-4zYPPOTee5trkrOgwL-53" target="QqBWsTk6ncDFSa_v0es3-24" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="90" y="410" as="sourcePoint" />
<mxPoint x="220" y="460" as="targetPoint" />
<Array as="points">
<mxPoint x="110" y="470" />
<mxPoint x="330" y="470" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-67" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="U-4zYPPOTee5trkrOgwL-8" target="U-4zYPPOTee5trkrOgwL-2" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-94" value="Python API" style="swimlane;" parent="1" vertex="1">
<mxGeometry x="1440" y="56" width="741" height="200" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-151" value="静态图" style="swimlane;" parent="U-4zYPPOTee5trkrOgwL-94" vertex="1">
<mxGeometry x="371" y="24" width="370" height="170" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-186" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=80;entryDy=14;entryPerimeter=0;" parent="U-4zYPPOTee5trkrOgwL-151" source="U-4zYPPOTee5trkrOgwL-154" target="QqBWsTk6ncDFSa_v0es3-36" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="78" y="100" as="targetPoint" />
<Array as="points">
<mxPoint x="189" y="61" />
<mxPoint x="189" y="70" />
<mxPoint x="99" y="70" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-154" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>paddle.static.gradients</b></p><hr size="1"><div style="text-align: center; height: 2px;"><br></div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="U-4zYPPOTee5trkrOgwL-151" vertex="1">
<mxGeometry x="115" y="30" width="140" height="30.75" as="geometry" />
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-1" value="Prepare backward graph" style="html=1;" vertex="1" parent="U-4zYPPOTee5trkrOgwL-151">
<mxGeometry x="209" y="100" width="139" height="30" as="geometry" />
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-36" value="AD logic" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;fontSize=12;" vertex="1" parent="U-4zYPPOTee5trkrOgwL-151">
<mxGeometry x="19" y="90" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-98" value="AD-Function API" style="swimlane;startSize=23;" parent="1" vertex="1">
<mxGeometry x="1440" y="257" width="741" height="353" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-99" value="动态图" style="swimlane;" parent="U-4zYPPOTee5trkrOgwL-98" vertex="1">
<mxGeometry x="10" y="25.5" width="350" height="314.5" as="geometry" />
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=120;entryDy=14;entryPerimeter=0;fontSize=12;" edge="1" parent="U-4zYPPOTee5trkrOgwL-99" source="U-4zYPPOTee5trkrOgwL-159" target="QqBWsTk6ncDFSa_v0es3-26">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-159" value="CallDyGradNode" style="html=1;" parent="U-4zYPPOTee5trkrOgwL-99" vertex="1">
<mxGeometry x="130" y="57.5" width="130" height="23" as="geometry" />
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-26" value="AutoDiff函数执行流程(no_grad)" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;fontSize=12;" vertex="1" parent="U-4zYPPOTee5trkrOgwL-99">
<mxGeometry x="75" y="100.5" width="200" height="155.5" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-108" value="静态图" style="swimlane;" parent="U-4zYPPOTee5trkrOgwL-98" vertex="1">
<mxGeometry x="370" y="25.5" width="361" height="314.5" as="geometry" />
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-51" value="StGradNode" style="html=1;fontSize=12;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="U-4zYPPOTee5trkrOgwL-108">
<mxGeometry x="132.75" y="137.5" width="110" height="50" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-150" value="动态图" style="swimlane;" parent="1" vertex="1">
<mxGeometry x="1440" y="80" width="370" height="170" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-152" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>Autograd</b></p><hr size="1"><div style="text-align: center; height: 2px;">backward/Grad</div>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="U-4zYPPOTee5trkrOgwL-150" vertex="1">
<mxGeometry x="115" y="70.25" width="140" height="55.5" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-123" value="DyGradNode" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="1220" y="520" width="160" height="86" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-124" value="+ attrs: Attr/Tensor" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="U-4zYPPOTee5trkrOgwL-123" vertex="1">
<mxGeometry y="26" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-125" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="U-4zYPPOTee5trkrOgwL-123" vertex="1">
<mxGeometry y="52" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-126" value="+ operator()(grad): grad_out" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="U-4zYPPOTee5trkrOgwL-123" vertex="1">
<mxGeometry y="60" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-128" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;" parent="1" source="U-4zYPPOTee5trkrOgwL-123" target="U-4zYPPOTee5trkrOgwL-159" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="1280" y="397" as="sourcePoint" />
<mxPoint x="1600" y="519.75" as="targetPoint" />
<Array as="points">
<mxPoint x="1300" y="380" />
<mxPoint x="1613" y="380" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-179" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;exitX=0;exitY=0;exitDx=0;exitDy=32;exitPerimeter=0;entryX=0;entryY=0;entryDx=200;entryDy=120.125;entryPerimeter=0;" parent="1" source="U-4zYPPOTee5trkrOgwL-69" target="QqBWsTk6ncDFSa_v0es3-24" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="400" y="670" as="sourcePoint" />
<mxPoint x="560" y="460" as="targetPoint" />
<Array as="points">
<mxPoint x="590" y="872" />
<mxPoint x="590" y="469" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-181" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;exitX=0;exitY=0;exitDx=120;exitDy=14;exitPerimeter=0;entryX=0;entryY=0;entryDx=200;entryDy=84.75;entryPerimeter=0;" parent="1" source="U-4zYPPOTee5trkrOgwL-70" target="QqBWsTk6ncDFSa_v0es3-25" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="590" y="770" as="sourcePoint" />
<mxPoint x="705" y="443.75" as="targetPoint" />
<Array as="points">
<mxPoint x="1341" y="730" />
<mxPoint x="1040" y="730" />
<mxPoint x="1040" y="440" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-191" value="Rules in Yaml" style="swimlane;fontStyle=1;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
<mxGeometry x="972" y="-80" width="303" height="104" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-192" value="+ backward: grad_out1=xxx , grad_out2=xxx" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontStyle=1" parent="U-4zYPPOTee5trkrOgwL-191" vertex="1">
<mxGeometry y="26" width="303" height="26" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-193" value="+ backward_fast: xxx" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontStyle=1" parent="U-4zYPPOTee5trkrOgwL-191" vertex="1">
<mxGeometry y="52" width="303" height="26" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-194" value="+ Composite: xxx" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontStyle=1" parent="U-4zYPPOTee5trkrOgwL-191" vertex="1">
<mxGeometry y="78" width="303" height="26" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-195" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="U-4zYPPOTee5trkrOgwL-192" target="U-4zYPPOTee5trkrOgwL-11" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-196" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="U-4zYPPOTee5trkrOgwL-194" target="U-4zYPPOTee5trkrOgwL-12" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-197" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;" parent="1" source="U-4zYPPOTee5trkrOgwL-192" target="U-4zYPPOTee5trkrOgwL-108" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="2200" y="-41" />
<mxPoint x="2200" y="361" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-198" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" parent="1" source="U-4zYPPOTee5trkrOgwL-194" target="U-4zYPPOTee5trkrOgwL-99" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1360" y="11" />
<mxPoint x="1360" y="361" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-4" value="反向" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=27;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="1770.5" width="80" height="50" as="geometry" />
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-5" value="前向" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontStyle=1;fontSize=27;" vertex="1" parent="1">
<mxGeometry x="580.5" y="5" width="80" height="50" as="geometry" />
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fontSize=27;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="U-4zYPPOTee5trkrOgwL-54" target="QqBWsTk6ncDFSa_v0es3-24">
<mxGeometry relative="1" as="geometry">
<mxPoint x="430" y="540" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-29" value="Relation" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;rounded=0;fontSize=12;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="QqBWsTk6ncDFSa_v0es3-26">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1360" y="600" as="sourcePoint" />
<mxPoint x="1380" y="590" as="targetPoint" />
<Array as="points">
<mxPoint x="1608" y="590" />
<mxPoint x="1380" y="590" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-30" value="0..n" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=top;fontSize=12;" connectable="0" vertex="1" parent="QqBWsTk6ncDFSa_v0es3-29">
<mxGeometry x="-1" relative="1" as="geometry" />
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-31" value="1" style="edgeLabel;resizable=0;html=1;align=right;verticalAlign=top;fontSize=12;" connectable="0" vertex="1" parent="QqBWsTk6ncDFSa_v0es3-29">
<mxGeometry x="1" relative="1" as="geometry" />
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=12;" edge="1" parent="1" source="QqBWsTk6ncDFSa_v0es3-36" target="QqBWsTk6ncDFSa_v0es3-51">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1923.25" y="365" as="targetPoint" />
<Array as="points">
<mxPoint x="1890" y="445" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-39" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fontSize=12;" edge="1" parent="1" source="QqBWsTk6ncDFSa_v0es3-51" target="QqBWsTk6ncDFSa_v0es3-1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="2057.75" y="365" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-40" value="grad_op" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=12;" vertex="1" connectable="0" parent="QqBWsTk6ncDFSa_v0es3-39">
<mxGeometry x="0.6111" y="-1" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-52" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fontSize=12;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" target="QqBWsTk6ncDFSa_v0es3-53">
<mxGeometry relative="1" as="geometry">
<mxPoint x="990" y="340" as="targetPoint" />
<mxPoint x="870" y="553" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-111" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="2250" y="257" width="300" height="550" as="geometry" />
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-97" value="StGradNode" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="QqBWsTk6ncDFSa_v0es3-111">
<mxGeometry y="190" width="200" height="86" as="geometry" />
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-98" value="+ Properties used in gradmaker" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="QqBWsTk6ncDFSa_v0es3-97">
<mxGeometry y="26" width="200" height="26" as="geometry" />
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-99" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="QqBWsTk6ncDFSa_v0es3-97">
<mxGeometry y="52" width="200" height="8" as="geometry" />
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-100" value="+ operator() : OpDesc" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="QqBWsTk6ncDFSa_v0es3-97">
<mxGeometry y="60" width="200" height="26" as="geometry" />
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-103" value="VJP" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="QqBWsTk6ncDFSa_v0es3-111">
<mxGeometry y="290" width="200" height="34" as="geometry" />
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-104" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="QqBWsTk6ncDFSa_v0es3-103">
<mxGeometry y="26" width="200" height="8" as="geometry" />
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-105" value="Composite" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="QqBWsTk6ncDFSa_v0es3-111">
<mxGeometry y="340" width="200" height="34" as="geometry" />
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-106" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="QqBWsTk6ncDFSa_v0es3-105">
<mxGeometry y="26" width="200" height="8" as="geometry" />
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-107" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;fontSize=12;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="QqBWsTk6ncDFSa_v0es3-111" source="QqBWsTk6ncDFSa_v0es3-103" target="QqBWsTk6ncDFSa_v0es3-100">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="220" y="300" as="sourcePoint" />
<mxPoint x="380" y="300" as="targetPoint" />
<Array as="points">
<mxPoint x="250" y="307" />
<mxPoint x="250" y="263" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-108" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;fontSize=12;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="QqBWsTk6ncDFSa_v0es3-111" source="QqBWsTk6ncDFSa_v0es3-105" target="QqBWsTk6ncDFSa_v0es3-100">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="230" y="430" as="sourcePoint" />
<mxPoint x="390" y="430" as="targetPoint" />
<Array as="points">
<mxPoint x="280" y="357" />
<mxPoint x="280" y="263" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-109" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fontSize=12;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="QqBWsTk6ncDFSa_v0es3-111" source="QqBWsTk6ncDFSa_v0es3-100" target="QqBWsTk6ncDFSa_v0es3-110">
<mxGeometry relative="1" as="geometry">
<mxPoint x="120" y="50" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-110" value="静态图微分变换" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;fontSize=12;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="QqBWsTk6ncDFSa_v0es3-111">
<mxGeometry x="30" width="170" height="50" as="geometry" />
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-112" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;fontSize=12;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="QqBWsTk6ncDFSa_v0es3-51" target="QqBWsTk6ncDFSa_v0es3-100">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="2010" y="520" as="sourcePoint" />
<mxPoint x="2170" y="520" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-113" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="680" y="840" width="741" height="320" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-69" value="PHI API" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="QqBWsTk6ncDFSa_v0es3-113" vertex="1">
<mxGeometry x="150" width="200" height="50" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-70" value="OpMaker" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;" parent="QqBWsTk6ncDFSa_v0es3-113" vertex="1">
<mxGeometry x="541" width="200" height="50" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-71" value="OperatorWithKernel" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;" parent="QqBWsTk6ncDFSa_v0es3-113" vertex="1">
<mxGeometry x="541" y="70" width="200" height="50" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-76" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0;entryDx=120;entryDy=14;entryPerimeter=0;" parent="QqBWsTk6ncDFSa_v0es3-113" source="U-4zYPPOTee5trkrOgwL-70" target="U-4zYPPOTee5trkrOgwL-71" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-79" value="Backend" style="swimlane;" parent="QqBWsTk6ncDFSa_v0es3-113" vertex="1">
<mxGeometry x="220.5" y="120" width="300" height="200" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-80" value="PHI Kernel" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;" parent="U-4zYPPOTee5trkrOgwL-79" vertex="1">
<mxGeometry x="50" y="40" width="200" height="50" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-81" value="CINN Kernel" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;" parent="U-4zYPPOTee5trkrOgwL-79" vertex="1">
<mxGeometry x="50" y="120" width="200" height="50" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-75" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="QqBWsTk6ncDFSa_v0es3-113" source="U-4zYPPOTee5trkrOgwL-69" target="U-4zYPPOTee5trkrOgwL-79" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="148" y="272.0000000000002" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-82" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="QqBWsTk6ncDFSa_v0es3-113" source="U-4zYPPOTee5trkrOgwL-71" target="U-4zYPPOTee5trkrOgwL-79" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-88" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=23;entryPerimeter=0;" parent="QqBWsTk6ncDFSa_v0es3-113" source="U-4zYPPOTee5trkrOgwL-87" target="U-4zYPPOTee5trkrOgwL-70" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-92" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=200;entryDy=41;entryPerimeter=0;" parent="QqBWsTk6ncDFSa_v0es3-113" source="U-4zYPPOTee5trkrOgwL-87" target="U-4zYPPOTee5trkrOgwL-69" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-87" value="<b>Yaml2OpMaker</b>" style="rounded=0;whiteSpace=wrap;html=1;" parent="QqBWsTk6ncDFSa_v0es3-113" vertex="1">
<mxGeometry x="315.5" y="2" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-72" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=200;exitDy=23;exitPerimeter=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" parent="QqBWsTk6ncDFSa_v0es3-113" source="U-4zYPPOTee5trkrOgwL-69" target="U-4zYPPOTee5trkrOgwL-87" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="U-4zYPPOTee5trkrOgwL-91" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=0;exitDy=41;exitPerimeter=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;" parent="QqBWsTk6ncDFSa_v0es3-113" source="U-4zYPPOTee5trkrOgwL-70" target="U-4zYPPOTee5trkrOgwL-87" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-114" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;fontSize=12;exitX=0;exitY=0;exitDx=200;exitDy=32;exitPerimeter=0;entryX=0;entryY=0;entryDx=0;entryDy=32;entryPerimeter=0;" edge="1" parent="1" source="U-4zYPPOTee5trkrOgwL-70" target="QqBWsTk6ncDFSa_v0es3-102">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="1550" y="920" as="sourcePoint" />
<mxPoint x="1710" y="920" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-118" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;fontSize=12;exitX=0;exitY=0;exitDx=120;exitDy=14;exitPerimeter=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="U-4zYPPOTee5trkrOgwL-69" target="QqBWsTk6ncDFSa_v0es3-26">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="850" y="760" as="sourcePoint" />
<mxPoint x="1010" y="760" as="targetPoint" />
<Array as="points">
<mxPoint x="950" y="780" />
<mxPoint x="1575" y="780" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-102" value="RegisterStGradNode" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;fontSize=12;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="2280" y="840" width="145" height="50" as="geometry" />
</mxCell>
<mxCell id="QqBWsTk6ncDFSa_v0es3-101" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=145;entryDy=32;entryPerimeter=0;" edge="1" parent="1" source="QqBWsTk6ncDFSa_v0es3-97" target="QqBWsTk6ncDFSa_v0es3-102">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="2290" y="297" as="sourcePoint" />
<mxPoint x="2400" y="719" as="targetPoint" />
<Array as="points">
<mxPoint x="2350" y="427" />
<mxPoint x="2550" y="427" />
<mxPoint x="2550" y="872" />
</Array>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>