tlc-pack / relax

Apache License 2.0
196 stars 58 forks source link

Transition to Unity Branch #453

Closed tqchen closed 1 year ago

tqchen commented 1 year ago

Thanks to the effort of many, we are now at a stage where most of the related relax components are now part of apache/unity. Thanks to the effort of many, the unity branch now contains most of the changes in tlc with a cleaned-up history to enable easier rebasing. I would like to propose that we start a freeze and transition period so we can switch over tlc/relax development effort to apache unity. We can discuss this item in the incoming community meeting and start transition at that time pt.

Thanks, everyone, for bearing with us through the transition period. We understand that this will take a bit of extra work, but it is a positive step towards bringing development in the apache tvm community and towards a normal state of development after the transition.

tqchen commented 1 year ago

Tracking Remaining Items to send to Unity Branch

This is a tracking list that we will keep updating in the following weeks. Please also help add to this list

Components

The following module components do not yet exists in unity and needs to be upstreamed.

Outstanding PRs

We need to confirm if we need to send follows PRs to the unity branch

masahi commented 1 year ago

We've just finished upstreaming all BYOC stuff.

kparzysz-quic commented 1 year ago

What is the status of the transition? How much longer will the rebasing continue for? We'd like to use unity as the base branch for our downstream work, but the rebases will make it harder.

tqchen commented 1 year ago

Thanks to everyone's effort. We are getting close to the ready. We will likely use the incoming two weeks for closing up some finished of items, then start to enter a period of more stable dev.

kparzysz-quic commented 1 year ago

After the most recent rebase we get this:

$ git merge unity
Auto-merging web/emcc/webgpu_runtime.cc
CONFLICT (add/add): Merge conflict in tests/python/relax/test_tvmscript_parser.py
Auto-merging tests/python/relax/test_tvmscript_parser.py
CONFLICT (add/add): Merge conflict in tests/python/relax/test_dataflow_pattern.py
Auto-merging tests/python/relax/test_dataflow_pattern.py
Auto-merging src/tir/transforms/lower_tvm_builtin.cc
CONFLICT (content): Merge conflict in src/tir/transforms/lower_tvm_builtin.cc
Auto-merging src/tir/op/builtin.cc
CONFLICT (content): Merge conflict in src/tir/op/builtin.cc
Auto-merging src/target/source/codegen_webgpu.cc
Auto-merging src/target/llvm/codegen_hexagon.cc
Auto-merging src/target/llvm/codegen_cpu.cc
Auto-merging src/runtime/module.cc
Auto-merging src/runtime/library_module.cc
Auto-merging src/runtime/hexagon/hexagon_module.h
CONFLICT (add/add): Merge conflict in src/relax/ir/dataflow_pattern.cc
Auto-merging src/relax/ir/dataflow_pattern.cc
CONFLICT (add/add): Merge conflict in src/relax/ir/dataflow_matcher.cc
Auto-merging src/relax/ir/dataflow_matcher.cc
CONFLICT (add/add): Merge conflict in src/relax/ir/binding_rewrite.cc
Auto-merging src/relax/ir/binding_rewrite.cc
CONFLICT (add/add): Merge conflict in src/relax/analysis/udchain.cc
Auto-merging src/relax/analysis/udchain.cc
Auto-merging python/tvm/topi/nn/__init__.py
Auto-merging python/tvm/topi/hexagon/qnn/nn.py
CONFLICT (content): Merge conflict in python/tvm/topi/hexagon/qnn/nn.py
Auto-merging python/tvm/tir/transform/transform.py
Auto-merging python/tvm/runtime/module.py
CONFLICT (add/add): Merge conflict in python/tvm/relax/op/vm/vm.py
Auto-merging python/tvm/relax/op/vm/vm.py
CONFLICT (add/add): Merge conflict in python/tvm/relax/dpl/pattern.py
Auto-merging python/tvm/relax/dpl/pattern.py
CONFLICT (add/add): Merge conflict in python/tvm/relax/dpl/__init__.py
Auto-merging python/tvm/relax/dpl/__init__.py
CONFLICT (add/add): Merge conflict in python/tvm/relax/__init__.py
Auto-merging python/tvm/relax/__init__.py
Auto-merging include/tvm/tir/transform.h
Auto-merging include/tvm/tir/builtin.h
CONFLICT (content): Merge conflict in include/tvm/tir/builtin.h
CONFLICT (add/add): Merge conflict in include/tvm/runtime/relax_vm/executable.h
Auto-merging include/tvm/runtime/relax_vm/executable.h
Auto-merging include/tvm/runtime/module.h
Auto-merging include/tvm/relay/transform.h
CONFLICT (add/add): Merge conflict in include/tvm/relax/dataflow_pattern.h
Auto-merging include/tvm/relax/dataflow_pattern.h
CONFLICT (add/add): Merge conflict in include/tvm/relax/dataflow_matcher.h
Auto-merging include/tvm/relax/dataflow_matcher.h
CONFLICT (add/add): Merge conflict in include/tvm/relax/binding_rewrite.h
Auto-merging include/tvm/relax/binding_rewrite.h
Auto-merging CMakeLists.txt
Automatic merge failed; fix conflicts and then commit the result.

I don't want to keep dealing with this. We want to support unity, and we're adopting it, but this is not making our lives easy. I don't know what benefits we get out of rebases that are worth the hassle.

tqchen commented 1 year ago

Thanks @kparzysz-quic for bringing it up. We bought up in our last open dev meeting that we will start transition to try out merge except and only use rebase for possible major refactors where linearization can make history cleaner.

After the recent set of changes we are getting into that mode of smooth operation. Let us discuss and start try out in the incoming community meeting.

tqchen commented 1 year ago

Cross linking https://github.com/apache/tvm/issues/13876. This issue can now be closed as all of our developments are transitioned as part of the unity branch. Thanks everyone's effort to making it happen and thank you for bearing with us during this initial establishment period.

masahi commented 1 year ago

@kparzysz-quic Try git rebase --onto upstream/unity upstream/unity-rebase-backup-2023-04-01