comaniac commented on a change in pull request #9207:
URL: https://github.com/apache/tvm/pull/9207#discussion_r723643217



##########
File path: python/tvm/relay/op/strategy/generic.py
##########
@@ -715,8 +715,14 @@ def dilation2d_strategy(attrs, inputs, out_type, target):
     return strategy
 
 
+def maybe_copy_tensor_b(tensor_a, tensor_b):
+    if tensor_a == tensor_b:
+        return te.compute(tensor_a.shape, lambda *ind: tensor_a[ind], 
tag="tensor_b_copy")
+    return tensor_b
+
+
 # matmul
-def wrap_compute_matmul(topi_compute, need_auto_scheduler_layout=False):
+def wrap_compute_matmul(topi_compute, need_auto_scheduler_layout=False, 
need_tensor_b_copy=True):

Review comment:
       `need_tensor_b_copy` seems a bit confusing. If tensor a and tensor b are 
identical, then we could say either copy tensor a or copy tensor b. Maybe 
`copy_input_if_the_same` or `copy_input_if_identical`, or 
`copy_identical_input`?

##########
File path: python/tvm/relay/op/strategy/generic.py
##########
@@ -715,8 +715,14 @@ def dilation2d_strategy(attrs, inputs, out_type, target):
     return strategy
 
 
+def maybe_copy_tensor_b(tensor_a, tensor_b):

Review comment:
       I'm wondering if we could have a better name (with docstring) for this 
utility. Something like `copy_if_identical`?

##########
File path: python/tvm/topi/cuda/batch_matmul.py
##########
@@ -93,6 +93,8 @@ def schedule_batch_matmul(cfg, outs):
     def _schedule(cfg, op):
         C = op.output(0)
         A, B = s[C].op.input_tensors
+        if B.op.tag == "tensor_b_copy":
+            s[B].compute_inline()

Review comment:
       Could we use like `B.op.input_tensors[0] == A` to judge whether it is a 
copy instead of leveraging the tag? IMHO, it's safe to assume that B is a copy 
of A if we can reach to A from B in batch_matmul/dense compute.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to