Skip to content

Commit

Permalink
added code to support routing from ComputeNode to Max, added graph fo…
Browse files Browse the repository at this point in the history
…r matmul_ijk_crddrop_relu, mat_elemadd_relu, spmm_ijk_crddrop_relu
  • Loading branch information
bobcheng15 committed Nov 25, 2023
1 parent 8a3c937 commit 2d9960b
Show file tree
Hide file tree
Showing 4 changed files with 167 additions and 0 deletions.
42 changes: 42 additions & 0 deletions compiler/sam-outputs/onyx-dot/mat_elemadd_relu.gv
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
digraph SAM {
comment="X=ss01,B=ss01,C=ss01"
10 [comment="type=fiberlookup,index=i,tensor=B,mode=0,format=compressed,src=true,root=true" label="FiberLookup i: B0\ncompressed" color=green4 shape=box style=filled type="fiberlookup" index="i" tensor="B" mode="0" format="compressed" src="true" root="true"]
9 [comment="type=union,index=i" label="union i" color=purple shape=box style=filled type="union" index="i"]
7 [comment="type=fiberlookup,index=j,tensor=B,mode=1,format=compressed,src=true,root=false" label="FiberLookup j: B1\ncompressed" color=green4 shape=box style=filled type="fiberlookup" index="j" tensor="B" mode="1" format="compressed" src="true" root="false"]
6 [comment="type=union,index=j" label="union j" color=purple shape=box style=filled type="union" index="j"]
4 [comment="type=arrayvals,tensor=B" label="Array Vals: B" color=green2 shape=box style=filled type="arrayvals" tensor="B"]
3 [comment="type=add,sub=0" label="Add" color=brown shape=box style=filled type="add" sub="0"]
5 [comment="type=arrayvals,tensor=C" label="Array Vals: C" color=green2 shape=box style=filled type="arrayvals" tensor="C"]
8 [comment="type=fiberlookup,index=j,tensor=C,mode=1,format=compressed,src=true,root=false" label="FiberLookup j: C1\ncompressed" color=green4 shape=box style=filled type="fiberlookup" index="j" tensor="C" mode="1" format="compressed" src="true" root="false"]
11 [comment="type=fiberlookup,index=i,tensor=C,mode=0,format=compressed,src=true,root=true" label="FiberLookup i: C0\ncompressed" color=green4 shape=box style=filled type="fiberlookup" index="i" tensor="C" mode="0" format="compressed" src="true" root="true"]
12 [comment="type=max" label="Max 0" color=brown shape=box style=filled type="max"]
13 [comment="type=crddrop,outer=j,inner=val,mode=0" label="CrdDrop Compression j, val" color=orange style=filled type="crddrop" outer="j" inner="val" mode="0"]
0 [comment="type=fiberwrite,mode=vals,tensor=X,size=1*B0_dim*B1_dim,sink=true" label="FiberWrite Vals: X" color=green3 shape=box style=filled type="fiberwrite" tensor="X" mode="vals" size="2*B0_dim*B1_dim" sink="true"]
14 [comment="type=crddrop,outer=i,inner=j" label="CrdDrop i,j" color=orange shape=box style=filled type="crddrop" outer="i" inner="j"]
2 [comment="type=fiberwrite,index=i,tensor=X,mode=0,format=compressed,segsize=2,crdsize=B0_dim,sink=true" label="FiberWrite i: X0\ncompressed" color=green3 shape=box style=filled type="fiberwrite" index="i" tensor="X" mode="0" format="compressed" segsize="2" crdsize="B0_dim" sink="true"]
1 [comment="type=fiberwrite,index=j,tensor=X,mode=1,format=compressed,segsize=B0_dim+1,crdsize=B0_dim*B1_dim,sink=true" label="FiberWrite j: X1\ncompressed" color=green3 shape=box style=filled type="fiberwrite" index="j" tensor="X" mode="1" format="compressed" segsize="B0_dim+1" crdsize="B0_dim*B1_dim" sink="true"]
10 -> 9 [label="crd_in-B" style=dashed type="crd" comment="in-B"]
9 -> 7 [label="ref_out-B" style=bold type="ref" comment="out-B"]
7 -> 6 [label="crd_in-B" style=dashed type="crd" comment="in-B"]
6 -> 4 [label="ref_out-B" style=bold type="ref" comment="out-B"]
4 -> 3 [label="val" type="val"]
6 -> 5 [label="ref_out-C" style=bold type="ref" comment="out-C"]
5 -> 3 [label="val" type="val"]
7 -> 6 [label="ref_in-B" style=bold type="ref" comment="in-B"]
9 -> 8 [label="ref_out-C" style=bold type="ref" comment="out-C"]
8 -> 6 [label="crd_in-C" style=dashed type="crd" comment="in-C"]
8 -> 6 [label="ref_in-C" style=bold type="ref" comment="in-C"]
10 -> 9 [label="ref_in-B" style=bold type="ref" comment="in-B"]
11 -> 9 [label="crd_in-C" style=dashed type="crd" comment="in-C"]
11 -> 9 [label="ref_in-C" style=bold type="ref" comment="in-C"]

3 -> 12 [label="val" type="val" comment="val"]
12 -> 13 [label="val" type="val" comment="inner-val"]
6 -> 13 [label="crd_outer-j" style=dashed type="crd" comment="outer-j"]
13 -> 0 [label="val" type="val", comment="val"]
13 -> 14 [label="crd_inner-j" style=dashed type="crd" comment="inner-j"]
9 -> 14 [label="crd_outer-i" style=dashed type="crd" comment="outer-i"]
14 -> 2 [label="crd_outer-i" style=dashed type="crd" comment="outer-i"]
14 -> 1 [label="crd_inner-j" style=dashed type="crd" comment="inner-j"]

}
60 changes: 60 additions & 0 deletions compiler/sam-outputs/onyx-dot/matmul_ijk_crddrop_relu.gv
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
digraph SAM {
comment="X=ss01,B=ss01,C=ss10"
17 [comment="type=fiberlookup,index=i,tensor=B,mode=0,format=compressed,src=true,root=true" label="FiberLookup i: B0\ncompressed" color=green4 shape=box style=filled type="fiberlookup" index="i" tensor="B" mode="0" format="compressed" src="true" root="true"]
16 [comment="type=broadcast" shape=point style=invis type="broadcast"]
2 [comment="type=fiberwrite,index=i,tensor=X,mode=0,format=compressed,segsize=2,crdsize=B0_dim,sink=true" label="FiberWrite i: X0\ncompressed" color=green3 shape=box style=filled type="fiberwrite" index="i" tensor="X" mode="0" format="compressed" segsize="2" crdsize="B0_dim" sink="true"]
15 [comment="type=repsiggen,index=i" label="RepeatSignalGenerator i" color=cyan3 shape=box style=filled type="repsiggen" index="i"]
14 [comment="type=repeat,index=i,tensor=C,root=true" label="Repeat i: C" color=cyan2 shape=box style=filled type="repeat" index="i" tensor="C" root="true"]
13 [comment="type=fiberlookup,index=j,tensor=C,mode=1,format=compressed,src=true,root=false" label="FiberLookup j: C1\ncompressed" color=green4 shape=box style=filled type="fiberlookup" index="j" tensor="C" mode="1" format="compressed" src="true" root="false"]
12 [comment="type=broadcast" shape=point style=invis type="broadcast"]
1 [comment="type=fiberwrite,index=j,tensor=X,mode=1,format=compressed,segsize=B0_dim+1,crdsize=B0_dim*C1_dim,sink=true" label="FiberWrite j: X1\ncompressed" color=green3 shape=box style=filled type="fiberwrite" index="j" tensor="X" mode="1" format="compressed" segsize="B0_dim+1" crdsize="B0_dim*C1_dim" sink="true"]
11 [comment="type=repsiggen,index=j" label="RepeatSignalGenerator j" color=cyan3 shape=box style=filled type="repsiggen" index="j"]
10 [comment="type=repeat,index=j,tensor=B,root=false" label="Repeat j: B" color=cyan2 shape=box style=filled type="repeat" index="j" tensor="B" root="false"]
8 [comment="type=fiberlookup,index=k,tensor=B,mode=1,format=compressed,src=true,root=false" label="FiberLookup k: B1\ncompressed" color=green4 shape=box style=filled type="fiberlookup" index="k" tensor="B" mode="1" format="compressed" src="true" root="false"]
7 [comment="type=intersect,index=k" label="intersect k" color=purple shape=box style=filled type="intersect" index="k"]
5 [comment="type=arrayvals,tensor=B" label="Array Vals: B" color=green2 shape=box style=filled type="arrayvals" tensor="B"]
4 [comment="type=mul" label="Mul" color=brown shape=box style=filled type="mul"]
3 [comment="type=reduce" label="Reduce" color=brown shape=box style=filled type="reduce"]
0 [comment="type=fiberwrite,mode=vals,tensor=X,size=1*B0_dim*C1_dim,sink=true" label="FiberWrite Vals: X" color=green3 shape=box style=filled type="fiberwrite" tensor="X" mode="vals" size="1*B0_dim*C1_dim" sink="true"]
6 [comment="type=arrayvals,tensor=C" label="Array Vals: C" color=green2 shape=box style=filled type="arrayvals" tensor="C"]
9 [comment="type=fiberlookup,index=k,tensor=C,mode=0,format=compressed,src=true,root=false" label="FiberLookup k: C0\ncompressed" color=green4 shape=box style=filled type="fiberlookup" index="k" tensor="C" mode="0" format="compressed" src="true" root="false"]
18 [comment="type=crddrop,outer=i,inner=j" label="CrdDrop i,j" color=orange shape=box style=filled type="crddrop" outer="i" inner="j"]
19 [comment="type=crddrop,outer=j,inner=k" label="CrdDrop j,k" color=orange shape=box style=filled type="crddrop" outer="j" inner="k"]
20 [comment="type=max" label="Max 0" color=brown shape=box style=filled type="max"]
21 [comment="type=crddrop,outer=j,inner=val,mode=0" label="CrdDrop Compression j, val" color=orange style=filled type="crddrop" outer="j" inner="val" mode="0"]
22 [comment="type=crddrop,outer=i,inner=j" label="CrdDrop i,j" color=orange shape=box style=filled type="crddrop" outer="i" inner="j"]
17 -> 16 [label="crd" style=dashed type="crd" comment=""]
16 -> 15 [label="crd" style=dashed type="crd"]
15 -> 14 [label="repsig" style=dotted type="repsig"]
14 -> 13 [label="ref" style=bold type="ref"]
13 -> 12 [label="crd" style=dashed type="crd" comment=""]
12 -> 11 [label="crd" style=dashed type="crd"]
11 -> 10 [label="repsig" style=dotted type="repsig"]
10 -> 8 [label="ref" style=bold type="ref"]
8 -> 7 [label="crd_in-B" style=dashed type="crd" comment="in-B"]
7 -> 5 [label="ref_out-B" style=bold type="ref" comment="out-B"]
5 -> 4 [label="val" type="val"]
7 -> 6 [label="ref_out-C" style=bold type="ref" comment="out-C"]
6 -> 4 [label="val" type="val"]
8 -> 7 [label="ref_in-B" style=bold type="ref" comment="in-B"]
13 -> 9 [label="ref" style=bold type="ref" comment=""]
9 -> 7 [label="crd_in-C" style=dashed type="crd" comment="in-C"]
9 -> 7 [label="ref_in-C" style=bold type="ref" comment="in-C"]
17 -> 10 [label="ref" style=bold type="ref" comment=""]

4 -> 19 [label="val_inner-k" type="val" comment="inner-k"]
12 -> 19 [label="crd_outer-j" style=dashed type="crd" comment="outer-j"]
19 -> 3 [label="val_inner-k" type="val" comment="inner-k"]
3 -> 20 [label="val" type="val" comment="val"]
20 -> 21 [label="val" type="val" comment="inner-val"]
18 -> 21 [label="crd_inner-j" style=dashed type="crd" comment="outer-j"]
21 -> 22 [label="crd_inner-j" style=dashed type="crd" comment="outer-j"]
18 -> 22 [label="crd_outer-i" style=dashed type="crd" comment="outer-i"]

19 -> 18 [label="crd_inner-j" style=dashed type="crd" comment="inner-j"]
16 -> 18 [label="crd_outer-i" style=dashed type="crd" comment="outer-i"]
21 -> 0 [label="val" type="val" comment="inner-val"]

22 -> 2 [label="crd_outer-i" style=dashed type="crd" comment="outer-i"]
22 -> 1 [label="crd_inner-j" style=dashed type="crd" comment="inner-j"]
}
60 changes: 60 additions & 0 deletions compiler/sam-outputs/onyx-dot/spmm_ijk_crddrop_relu.gv
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
digraph SAM {
comment="X=ss01,B=dd01,C=ss10"
17 [comment="type=fiberlookup,index=i,tensor=B,mode=0,format=dense,src=true,root=true" label="FiberLookup i: B0\ndense" color=green4 shape=box style=filled type="fiberlookup" index="i" tensor="B" mode="0" format="dense" src="true" root="true"]
16 [comment="type=broadcast" shape=point style=invis type="broadcast"]
2 [comment="type=fiberwrite,index=i,tensor=X,mode=0,format=compressed,segsize=2,crdsize=B0_dim,sink=true" label="FiberWrite i: X0\ncompressed" color=green3 shape=box style=filled type="fiberwrite" index="i" tensor="X" mode="0" format="compressed" segsize="2" crdsize="B0_dim" sink="true"]
15 [comment="type=repsiggen,index=i" label="RepeatSignalGenerator i" color=cyan3 shape=box style=filled type="repsiggen" index="i"]
14 [comment="type=repeat,index=i,tensor=C,root=true" label="Repeat i: C" color=cyan2 shape=box style=filled type="repeat" index="i" tensor="C" root="true"]
13 [comment="type=fiberlookup,index=j,tensor=C,mode=1,format=compressed,src=true,root=false" label="FiberLookup j: C1\ncompressed" color=green4 shape=box style=filled type="fiberlookup" index="j" tensor="C" mode="1" format="compressed" src="true" root="false"]
12 [comment="type=broadcast" shape=point style=invis type="broadcast"]
1 [comment="type=fiberwrite,index=j,tensor=X,mode=1,format=compressed,segsize=B0_dim+1,crdsize=B0_dim*C1_dim,sink=true" label="FiberWrite j: X1\ncompressed" color=green3 shape=box style=filled type="fiberwrite" index="j" tensor="X" mode="1" format="compressed" segsize="B0_dim+1" crdsize="B0_dim*C1_dim" sink="true"]
11 [comment="type=repsiggen,index=j" label="RepeatSignalGenerator j" color=cyan3 shape=box style=filled type="repsiggen" index="j"]
10 [comment="type=repeat,index=j,tensor=B,root=false" label="Repeat j: B" color=cyan2 shape=box style=filled type="repeat" index="j" tensor="B" root="false"]
8 [comment="type=fiberlookup,index=k,tensor=B,mode=1,format=dense,src=true,root=false" label="FiberLookup k: B1\ndense" color=green4 shape=box style=filled type="fiberlookup" index="k" tensor="B" mode="1" format="dense" src="true" root="false"]
7 [comment="type=intersect,index=k" label="intersect k" color=purple shape=box style=filled type="intersect" index="k"]
5 [comment="type=arrayvals,tensor=B" label="Array Vals: B" color=green2 shape=box style=filled type="arrayvals" tensor="B"]
4 [comment="type=mul" label="Mul" color=brown shape=box style=filled type="mul"]
3 [comment="type=reduce" label="Reduce" color=brown shape=box style=filled type="reduce"]
0 [comment="type=fiberwrite,mode=vals,tensor=X,size=1*B0_dim*C1_dim,sink=true" label="FiberWrite Vals: X" color=green3 shape=box style=filled type="fiberwrite" tensor="X" mode="vals" size="1*B0_dim*C1_dim" sink="true"]
6 [comment="type=arrayvals,tensor=C" label="Array Vals: C" color=green2 shape=box style=filled type="arrayvals" tensor="C"]
9 [comment="type=fiberlookup,index=k,tensor=C,mode=0,format=compressed,src=true,root=false" label="FiberLookup k: C0\ncompressed" color=green4 shape=box style=filled type="fiberlookup" index="k" tensor="C" mode="0" format="compressed" src="true" root="false"]
18 [comment="type=crddrop,outer=i,inner=j" label="CrdDrop i,j" color=orange shape=box style=filled type="crddrop" outer="i" inner="j"]
19 [comment="type=crddrop,outer=j,inner=k" label="CrdDrop j,k" color=orange shape=box style=filled type="crddrop" outer="j" inner="k"]
20 [comment="type=max" label="Max 0" color=brown shape=box style=filled type="max"]
21 [comment="type=crddrop,outer=j,inner=val,mode=0" label="CrdDrop Compression j, val" color=orange style=filled type="crddrop" outer="j" inner="val" mode="0"]
22 [comment="type=crddrop,outer=i,inner=j" label="CrdDrop i,j" color=orange shape=box style=filled type="crddrop" outer="i" inner="j"]
17 -> 16 [label="crd" style=dashed type="crd" comment=""]
16 -> 15 [label="crd" style=dashed type="crd"]
15 -> 14 [label="repsig" style=dotted type="repsig"]
14 -> 13 [label="ref" style=bold type="ref"]
13 -> 12 [label="crd" style=dashed type="crd" comment=""]
12 -> 11 [label="crd" style=dashed type="crd"]
11 -> 10 [label="repsig" style=dotted type="repsig"]
10 -> 8 [label="ref" style=bold type="ref"]
8 -> 7 [label="crd_in-B" style=dashed type="crd" comment="in-B"]
7 -> 5 [label="ref_out-B" style=bold type="ref" comment="out-B"]
5 -> 4 [label="val" type="val"]
7 -> 6 [label="ref_out-C" style=bold type="ref" comment="out-C"]
6 -> 4 [label="val" type="val"]
8 -> 7 [label="ref_in-B" style=bold type="ref" comment="in-B"]
13 -> 9 [label="ref" style=bold type="ref" comment=""]
9 -> 7 [label="crd_in-C" style=dashed type="crd" comment="in-C"]
9 -> 7 [label="ref_in-C" style=bold type="ref" comment="in-C"]
17 -> 10 [label="ref" style=bold type="ref" comment=""]

4 -> 19 [label="val_inner-k" type="val" comment="inner-k"]
12 -> 19 [label="crd_outer-j" style=dashed type="crd" comment="outer-j"]
19 -> 3 [label="val_inner-k" type="val" comment="inner-k"]
3 -> 20 [label="val" type="val" comment="val"]
20 -> 21 [label="val" type="val" comment="inner-val"]
18 -> 21 [label="crd_inner-j" style=dashed type="crd" comment="outer-j"]
21 -> 22 [label="crd_inner-j" style=dashed type="crd" comment="outer-j"]
18 -> 22 [label="crd_outer-i" style=dashed type="crd" comment="outer-i"]

19 -> 18 [label="crd_inner-j" style=dashed type="crd" comment="inner-j"]
16 -> 18 [label="crd_outer-i" style=dashed type="crd" comment="outer-i"]
21 -> 0 [label="val" type="val" comment="inner-val"]

22 -> 2 [label="crd_outer-i" style=dashed type="crd" comment="outer-i"]
22 -> 1 [label="crd_inner-j" style=dashed type="crd" comment="inner-j"]
}
5 changes: 5 additions & 0 deletions sam/onyx/hw_nodes/compute_node.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,11 @@ def connect(self, other, edge, kwargs=None):
other_pe = other.get_name()
other_conn = other.get_num_inputs()
pe = self.get_name()
# TODO: remove hack eventually
if 'Max' in other.op:
other_conn = 1
else:
other_conn = other.get_num_inputs()
new_conns = {
f'pe_to_pe_{other_conn}': [
([(pe, "res"), (other_pe, f"data{other_conn}")], 17),
Expand Down

0 comments on commit 2d9960b

Please sign in to comment.