Five years ago, we started with a community that comes with a common vision in 
mind – enabling machine learning engineers to optimize and run computations 
efficiently on any hardware backend. 

Five years later, the fields of machine learning and MLC(ML compilation) have 
gone under rapid changes. That same vision is still shared among this 
community. This is why many of us still feel so fresh when writing code 
patches, bug fixes, architectural refactors, and new features. We are here 
today thanks to a diverse community that comes with different perspectives and 
areas of focus but still aligns around that common vision. 

As a project, we benefit from different perspectives to survive in the 
ever-changing and competitive area of ML compilation. Hardly one can predict 
every detail of the future (just observing the set of recent changes such as 
chatGPT and stable diffusion). Hardly can one definitively assert that one 
approach would be better than another one from the very beginning. Enabling 
diverse possibilities helps to move the project forward while enabling 
different needs.

As a community, while we care about different subsets of modules and do not 
always need to work on the same thing, there is always an overlap of interests, 
regardless of whether it is the graph, FFI, TensorIR, or backend that sustains 
collaborations among different people. Most importantly, we come with a mindset 
of empowering each other under the same vision.

Thank you, everyone, for participating in this thread. 

This thread arrives at its current state due to different perspectives on 
possible thoughts of project procedural operations (whether a detailed 
migration plan and commitment to migration are necessary for the new module 
proposal). There is a common agreement that migration(if it happens and is 
being proposed) would require a lot of details and community buy-in, but 
different opinions about when that can and how that should happen. 

On behalf of the TVM PMC, I would like to recommend an initial step to help us 
to recognize achieve the following goals from different members of the 
community:
- G0: Get us out of stagnation and empower the community, including many who 
shared their support in this thread, to participate in unity development in the 
TVM community.
- G1: Give some time to answer questions, and provide examples to those who 
have shared needs to have more detailed evidence and possible feasibility 
analysis of migrating some modules.

Specifically, we would recommend us to follow an existing practice in projects 
like Hadoop, to empower related development in a branch. ASF mechanism allows 
any committer to create a branch in the apache repo and do collaborative 
development there at their own pace. Per our existing process, merging a branch 
into main still requires lazy consensus. Branch development offers flexibility 
while accepting the risk of blocking when merging to the main. As a result, 
there are general incentives to keep alignment with the majority of the 
community and continued engagement to get buy-in. Branch development offers a 
way to collaborate on a possible but not definitive future of the project, as a 
branch can come with different outcomes such as being partially merged, 
continued development, or abandoned. Enabling different perspectives is 
important for us both as a project and community. 

TVM PMC re-affirmed that branch development can be used as an option for the 
project and specific development around tvm unity. We would like to offer it as 
a possible option for the community and the first step of execution, with the 
goal of getting related pieces into main. I wrote down a more detailed post, 
which we would love to get everyone’s feedback. Of course, this is only one 
possible option, and community members can freely choose their ways of 
participation.

Developing in a branch will also give some time buffer to answer G1. It is 
valuable to answer questions and have grounded conversations to give more 
information to the members who are not yet on board with the new module. 
Noticeably, to many community members, detailed code examples, benchmarks, and 
continued engagement are necessary to get broader community buy-in. We would 
recommend having focused discussions on the questions of interest (e.g. give 
concrete code tutorials for BYOC) to help the community members who have 
related questions. We encourage such continued conversations in forum threads, 
meetups, and development interactions with the goal of getting as much 
information as possible. Again such interactions aim at demonstrating 
possibilities, but not warrant deprecation or migration since that choice 
should still lie in the hands of the community. Hopefully, they give more 
comprehensive pictures for us to make follow-up decisions collectively. 

As part of winter break, I started to do more coding, and I was really 
fascinated to see that passion still is deep in my heart(and I believe in many 
of us) after so many years, thanks to this community and our common vision. As 
a community member, I am really motivated to spend focused energy helping to 
build concrete code examples and tutorial materials for G1.

Please also checkout [this 
post](https://discuss.tvm.apache.org/t/establish-tvm-unity-branch/14244) for 
more details


-- 
Reply to this email directly or view it on GitHub:
https://github.com/apache/tvm-rfcs/pull/89#issuecomment-1404170556
You are receiving this because you are subscribed to this thread.

Message ID: <apache/tvm-rfcs/pull/89/c1404170...@github.com>

Reply via email to