digraph G {
subgraph cluster_before {
  label="before"
  style=dotted
  op1[label="elementwise_add"]
  op2[label="top_k\ninputs_vars{c}"]
  op3[label="top_k\ninputs_vars{c}"]
  
  
  c[label="c"]
  
  subgraph cluster_0 {
  style=solid
  label="to be in-placed"
  a -> op1
  b-> op1
  op1 -> c
  }
  
  
  c -> op2
  c -> op3 
  
  op2 -> d
  op2 -> e
  op3 -> g
  op3 -> h
}
subgraph cluster_after {
  label="after"
  style=dotted
  op1b[label="elementwise_add"]
  op2b[label="top_k\ninput_vars{a}"]
  op3b[label="top_k\ninput_vars{a}"]
  
  
  cb[label="a"]
  ab[label="a"]
  bb[label="b"]
  db[label="d"]
  eb[label="e"]
  gb[label="g"]
  hb[label="h"]
  
  subgraph cluster_0b {
  style=solid
  label="applied in-placed"
  ab -> op1b
  bb-> op1b
  op1b -> cb
  }
  
  
  cb -> op2b
  cb -> op3b 
  
  op2b -> db
  op2b -> eb
  op3b -> gb
  op3b -> hb
}

}
