This is an automated email from the ASF dual-hosted git repository.
masahi pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tvm.git
The following commit(s) were added to refs/heads/main by this push:
new b9204cd [Relay] Change Default "opt_level" of Sequantial from 2 to 0
(#8634)
b9204cd is described below
commit b9204cd33e00231cf65c5887fe6e091ce25b6f50
Author: Qiang Zhang <[email protected]>
AuthorDate: Wed Aug 4 09:32:58 2021 +0800
[Relay] Change Default "opt_level" of Sequantial from 2 to 0 (#8634)
---
python/tvm/ir/transform.py | 2 +-
src/ir/transform.cc | 2 +-
tests/python/relay/test_pass_manager.py | 28 ++++++++++++++++++++++++++++
3 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/python/tvm/ir/transform.py b/python/tvm/ir/transform.py
index 93aae45..17995bf 100644
--- a/python/tvm/ir/transform.py
+++ b/python/tvm/ir/transform.py
@@ -199,7 +199,7 @@ class Sequential(Pass):
The list of passes that the sequential pass is dependent on.
"""
- def __init__(self, passes=None, opt_level=2, name="sequential",
required=None):
+ def __init__(self, passes=None, opt_level=0, name="sequential",
required=None):
passes = passes if passes else []
if not isinstance(passes, (list, tuple)):
raise TypeError("passes must be a list of Pass objects.")
diff --git a/src/ir/transform.cc b/src/ir/transform.cc
index 8120ca7..426bdc9 100644
--- a/src/ir/transform.cc
+++ b/src/ir/transform.cc
@@ -435,7 +435,7 @@ Sequential::Sequential(tvm::Array<Pass> passes, PassInfo
pass_info) {
Sequential::Sequential(tvm::Array<Pass> passes, String name) {
auto n = make_object<SequentialNode>();
n->passes = std::move(passes);
- PassInfo pass_info = PassInfo(2, std::move(name), {});
+ PassInfo pass_info = PassInfo(0, std::move(name), {});
n->pass_info = std::move(pass_info);
data_ = std::move(n);
}
diff --git a/tests/python/relay/test_pass_manager.py
b/tests/python/relay/test_pass_manager.py
index fb1094b..7e3634f 100644
--- a/tests/python/relay/test_pass_manager.py
+++ b/tests/python/relay/test_pass_manager.py
@@ -507,6 +507,34 @@ def test_sequential_with_scoping():
assert tvm.ir.structural_equal(zz, zexpected)
+def test_nested_sequential_with_scoping():
+ def before():
+ x = relay.var("x", shape=(1, 16, 16, 16), dtype="float32")
+ w = relay.var("w", shape=(32, 16, 3, 3), dtype="float32")
+ y = relay.nn.conv2d(x, w, padding=(1, 1))
+ y = relay.reshape(y, newshape=(1, 16, -1))
+ y = relay.reshape(y, newshape=(4, 8, -1, 16))
+ y = relay.reverse_reshape(y, newshape=(32, 0, -1))
+ return tvm.IRModule.from_expr(y)
+
+ def expected():
+ x = relay.var("x", shape=(1, 16, 16, 16), dtype="float32")
+ w = relay.var("w", shape=(32, 16, 3, 3), dtype="float32")
+ y = relay.nn.conv2d(x, w, padding=(1, 1))
+ y = relay.reshape(y, newshape=(32, 16, 16))
+ return tvm.IRModule.from_expr(y)
+
+ z = before()
+ passes = [
+ tvm.transform.Sequential([relay.transform.SimplifyExpr()]),
+ ]
+ with tvm.transform.PassContext(opt_level=1):
+ zz = tvm.transform.Sequential(passes)(z)
+
+ expected = relay.transform.InferType()(expected())
+ assert tvm.ir.structural_equal(zz, expected)
+
+
def test_print_ir(capfd):
shape = (1, 2, 3)
tp = relay.TensorType(shape, "float32")