I have also volunteered as a potential mentor for the TVM project and I am very excited about it :)

Best,
Sebastian

On 17.02.19 09:02, Kevin A. McGrail wrote:
+1 binding with a caveat:

You need mentors and champions from Apache who are available and ideally active in the incubator.  Markus had to step down on hivemail last year.  Has his situation changed?

Some comments:
The hardware artifacts being donated is interesting and something I would support helping.  We might want to loop in the secretary and legal vps to discuss.

The reviewer status is something the pmc can elect to do.  They might end up with the same karma as committers on any repos if they need that karma is the only hurdle I can think of.  But we like a model of trust for people so it should be a good thing.

But otherwise looks like a great start!
KAM
On Fri, Feb 15, 2019, 13:42 Markus Weimer <wei...@apache.org <mailto:wei...@apache.org> wrote:

    Hi,

    we'd like to start the discussion of accepting TVM into the incubator.
    Please see the proposal below. I'd like to highlight a few things for
    our discussion:

    (1) The project already follows many Apache ways like meritocracy,
    open development and such.

    (2) The project recognizes an in-between state of "reviewer" that it
    nominates people for between contributor and committer status. We'd
    like to learn if and how to maintain that in the future.

    (3) The project contains hardware as a software artifact. We are not
    aware of another ASF project like that and wonder if and how it
    affects its acceptance into the incubator.

    Thanks!

    Markus

    === Proposal ===

    We propose to incubate the TVM project the Apache Software
    Foundation. TVM is a
    full stack open deep learning compiler stack for CPUs, GPUs, and
    specialized
    accelerators. It aims to close the gap between the
    productivity-focused deep
    learning frameworks, and the performance- or efficiency-oriented
    hardware
    backends.

    === Background ===

    There is an increasing need to bring machine learning to a wide
    diversity of
    hardware devices. Current frameworks rely on vendor-specific
    operator libraries
    and optimize for a narrow range of server-class GPUs. Deploying
    workloads to new
    platforms -- such as mobile phones, embedded devices, and
    accelerators (e.g.,
    FPGAs, ASICs) -- requires significant manual effort. TVM is an end
    to end deep
    learning a compiler that exposes graph-level and operator-level
    optimizations to
    provide performance portability to deep learning workloads across
    diverse
    hardware back-ends. TVM solves optimization challenges specific to deep
    learning, such as high-level operator fusion, mapping to arbitrary
    hardware
    primitives, and memory latency hiding. It also automates optimization of
    low-level programs to hardware characteristics by employing a novel,
    learning-based cost modeling method for rapid exploration of program
    optimizations.

    Moreover, there is increasing interest in designing specialized
    hardware which
    accelerates machine learning. Towards this goal, TVM introduces VTA,
    an open
    source deep learning accelerator as part of its stack. The open
    source VTA
    driver and hardware design is a crucial step toward building
    software support
    for future ASICs. The TVM-VTA flow acts as a is the great frontier for
    researchers and practitioners to explore specialized hardware designs.


    === Rationale ===

    Deep learning compilation will be the next frontier of machine
    learning systems.
    TVM is already one of the leading open source projects pursuing this
    direction.

    Specifically, TVM provides infrastructure to use machine learning to
    automatically optimize deployment of deep learning programs on
    diverse hardware
    backends.


    === VTA: Open Source Hardware Design ===

    TVM also contains open source hardware as part of its stack. The VTA
    hardware
    design is a fully open sourced deep learning accelerator that allows
    us to
    experiment with compiler, driver, runtime, and execute the code on
    FPGA. VTA
    provides a path to target future ASICs, and build software-driven
    solutions to
    co-design future deep learning accelerators.

    Having an open source hardware design in an ASF project is rare and
    perhaps
    unprecedented. We put some of our rationale on why it is necessary
    for the
    community.

    Deep learning specialized ASICs are going to be at the center of the AI
    revolution. However, given its early shape, there is no open
    standard, or even
    any available information hardware interface that allows an open
    source software
    to target to. VTA provides such open source hardware abstraction
    layer and
    allows us to build in abstractions that can be effectively used to
    target other
    deep learning accelerators.

    Moreover, there is an increasing need for co-designing future of machine
    learning systems with the hardware abstraction. Having a co-designed
    open source
    hardware stack along with the software creates a path for this
    route. In short,
    we need open-source hardware to build the best open source software.

    Finally, we can still view VTA design as “software”, as its source
    code is
    written in source description language and can generate “binary”
    which can run
    on FPGA and possibly simulators.


    === Current Status ===

    TVM is open sourced under the Apache License for one and half years.
    See the
    current project website (https://tvm.ai/), Github
    (https://github.com/dmlc/tvm/), as well as TVM Conference
    (https://sampl.cs.washington.edu/tvmconf/#about-tvmconf)

    TVM has already been used in production, some highlights are AWS
    (Sagemaker
    Neo), Huawei (AI Chip compilation) and Facebook (mobile
    optimization). We
    anticipate the list of adopters to grow over the next few years.

    === Meritocracy ===

    The TVM stack began as a research project of the SAMPL group at Paul
    G. Allen
    School of Computer Science & Engineering, University of Washington.
    The project
    is now driven by an open source community involving multiple
    industry and
    academic institutions. The project is currently governed by the
    Apache Way
    (https://docs.tvm.ai/contribute/community.html). The project now has 14
    committers and 6 PMCs, and the list is actively growing. The PMCs
    uses a google
    group mail-list to vote in new committers/PMCs, which will be moved
    to private@
    after incubation.

    The community highly values open collaboration among contributors
    from different
    backgrounds.The current committers come from UW, Berkeley, Cornell,
    SJTU, AMD,
    AWS, Huawei, Google, Facebook, Ziosoft.


    === Community ===

    The project currently has 173 contributors. As per the Apache way,
    all the
    discussions are conducted in publicly archivable places.

    - Github issues are used to track development activities and RFC.
    - The roadmap is public and encourages participation from everyone
    in the
    community.
    - Discussion forums for general discussions. https://discuss.tvm.ai
    - The content of the discourse forum can be considered as a public
    archive
    as it is searchable with all the content
    - We also created a mail-list archive of the forum, which we will
    forward to
    an Apache mail-list after incubation
    https://groups.google.com/forum/#!forum/tvm-discuss-archive

    - See https://tvm.ai/community
    - See https://github.com/dmlc/tvm/releases for past releases.

    Currently, Github issue serves as dev@ channel. Notably, major
    features always
    start from RFCs discussions to encourage broad participation in the
    community.

    The community recognizes potential committers early by bringing
    contributors as
    code reviewers and encourages them to participate in code reviews.
    Code reviews
    and high-quality code are fundamental to the long-term success of
    the project.
    The reviewer mechanism in the community serves a way to highlight
    this aspect as
    well as helping the community find good candidates to promote to
    committers.



    ==== Development and Decision Process ====

    See
    https://docs.tvm.ai/contribute/community.html#general-development-process
    for the current development guideline. The key points are: Open
    public roadmap
    during development, which turns into release notes Major features
    start with an
    RFC, everything happens in public Encourage public discussion via
    archivable
    channels Strive to reach a consensus on technical decisions through
    discussion
    Moderation from committers and encourage everyone’s participation

    Example Roadmap: https://github.com/dmlc/tvm/issues/1170
    The idea is to keep an active list of roadmaps that can be turned
    directly
    into a release note. Public roadmap helps to encourage general
    participation
    from all contributors.

    Example 1:
    Recently a major proposal in the community is to bring in a new
    high-level IR, RFC thread: https://github.com/dmlc/tvm/issues/1673
    The pull
    request: https://github.com/dmlc/tvm/pull/1672 Everyone who
    participated in the
    RFC is invited to review the code as well - Follow up features are
    proposed as
    follow up RFCs.

    Example 2: Community guideline improvements
    RFC thread: https://github.com/dmlc/tvm/issues/2017
    Slack channel setup as per community suggestion, but still encourage the
    community to only use it for quick communication and use publicly
    archived
    channels for development: https://github.com/dmlc/tvm/issues/2174

    Example 3: Python3 timeline proposal
    RFC thread: https://github.com/dmlc/tvm/issues/1602
    Finished with the decision to respect backward compatibility and
    keep python2
    support.

    See
    
https://github.com/dmlc/tvm/issues?utf8=%E2%9C%93&q=label%3A%22status%3A+RFC%22+
    for a full list of RFCs.


    === Alignment ===

    TVM is useful for building deep learning deployment solutions. It is
    perhaps
    also the first Apache incubator proposal that includes both open
    source software
    and hardware system design.

    It has the potential to benefit existing related ML projects such as
    MXNet,
    Singa, SystemML, and Mahout by providing powerful low-level
    primitives for
    matrix operations.


    === Known Risks ===

    ==== Orphaned products ====

    The project has a diverse contributor base. As an example, the current
    committers come from: UW, Berkeley, Cornell, SJTU, AMD, AWS, Google,
    Facebook,
    Ziosoft, Huawei. We are actively growing this list. Given that the
    project has
    already been used in production, there is a minimum risk of the
    project being
    abandoned.

    ==== Inexperience with Open Source ====

    The TVM community has extensive experience in open source. Three of
    current five
    PMCs are already PPMCs of existing Apache projects. Over the course of
    development, the community already has a good way bringing RFCs,
    discussions and
    most importantly, welcoming new contributors in the Apache way.

    ==== Homogenous Developers ====

    The project has a diverse contributor base. As an example, the current
    committers comes from: UW, Berkeley, Cornell, SJTU, AMD, AWS,
    Huawei, Google,
    Facebook, Ziosoft. The community actively seeks to collaborative
    broadly. The
    PMCs followed a principle to *only* nominate committers outside
    their own
    organizations.


    === Reliance on Salaried Developers ===

    Most of the current committers are volunteers.

    === Relationships with Other Apache Products ===

    TVM can serve as a fundamental compiler stack for deep learning and
    machine
    learning in general. We expect it can benefit projects like MXNet,
    Spark, Flink,
    Mahout, and SystemML.

    === Documentation ===

    See https://tvm.ai/

    === Initial Source ===

    https://github.com/dmlc/tvm

    We plan to move our repository to
    https://github.com/apache/incubator-tvm


    === Source and Intellectual Property Submission Plan ===

    TVM source code is available under Apache V2 license. We will work
    with the
    committers to get ICLAs signed.

    === External Dependencies ===

    We put all the source level dependencies under
    https://github.com/dmlc/tvm/tree/master/3rdparty

    - dmlc-core (Apache2): https://github.com/dmlc/dmlc-core
    - dlpack (Apache2): https://github.com/dmlc/dlpack
    - HalideIR (MIT): https://github.com/dmlc/HalideIR
    - range(Unlicense): https://github.com/agauniyal/rang
    - Compiler-RT (BSD)
    - LLVM

    All of the current he dependencies are stable, which means that the
    current TVM
    repo is standalone and main development activities only happen at
    the TVM repo.
    The dependencies are periodically updated in the rate about once a
    month when
    necessary. For source level dependencies, we will always point to a
    stable
    release version for software release in the future.


    === External Dependencies on DMLC projects ===

    There are three dependencies to dmlc projects in the 3rdparty. The
    current
    proposal is to keep the current dependencies in the 3rdparty. We
    elaborate on
    the background of these dependencies below:

    - dmlc-core: is a minimum module for logging and memory
    serialization. It is
    currently used by projects including ApacheMXNet, TVM, and XGBoost. The
    project is relatively stable, with around one change a week(most recent
    changes comes from XGBoost project). TVM’s dependency on dmlc-core
    is minimum
    and only uses its feature for logging.
    - dlpack: is a minimum consensus standard for in-memory Tensor
    format. It is
    currently used by PyTorch, ApacheMXNet, Chainer, and a few other
    projects.
    - HalideIR: is a minimum IR data structure that is isolated from a
    fork of
    Halide project. We keep the license to be MIT to respect the
    original license
    and its origin. A common consensus in the TVM project is that we
    keep the old
    derived code in HalideIR (which are stable), and all new
    developments happen
    in the TVM repo.

    The main reason to propose keep these dependencies are:
    - Each of the dependencies has the user and developer community of
    its own
    which is larger than the TVM community or different license
    options(MIT in
    HalideIR)
    - These dependencies are stable and update at a monthly rate.

    While it is possible to fork the code in the tvm repo, given that
    the current
    tvm repo is self-contained, and community development is
    stand-alone, we feel
    that there are have enough justifications to treat these as 3rdparty
    dependencies.


    === Required Resources ===

    ==== Mailing List: ====
    The usual mailing lists are expected to be set up when entering
    incubation:

    * priv...@tvm.apache.org <mailto:priv...@tvm.apache.org>
    * d...@tvm.apache.org <mailto:d...@tvm.apache.org> , subscribe github
    issues.
    * discuss-arch...@tvm.apache.org
    <mailto:discuss-arch...@tvm.apache.org>, Archive the discuss content
    of the
    discourse user forum


    Currently, we only use issues for developments and encourage
    community to use
    discuss forums when possible. As a result, the current github issues
    serves
    similar purposes as dev@, so we propose to subscribe github issues
    to dev@ after
    incubation.

    The current community use https://discuss.tvm.ai/ for general
    technical and
    support discussions. The community forum is maintained by PMCs. We
    propose to
    continue to use the forum and archive the posts to an Apache
    mail-list. We
    already have the mechanism to do so (see
    https://groups.google.com/forum/#!forum/tvm-discuss-archive)



    ==== Git Repositories: ====

    Upon entering incubation, we plan to transfer the existing repo from
    https://github.com/dmlc/tvm to https://github.com/apache/incubator-tvm.




    ==== Issue Tracking: ====

    TVM currently uses GitHub to track issues. We would like to continue
    to do so
    while we discuss migration possibilities with the ASF Infra team.

    ==== URL: ====

    Current project website: https://tvm.ai/, as we proceed website will
    migrate to
    https://tvm.incubator.apache.org and hopefully https://tvm.apache.org

    === Initial Committers and PMCs ===

    As the project has already followed the Apache way of development(in
    terms of
    meritocracy, community, and archive of public discussion). We plan
    to transition
    the current PMCs to PPMCs , and committers to apache committers.
    There are also
    ongoing votes and discussions in the current tvm PMC private
    mail-list about new
    committers/PMCs(we also invited our tentative mentors as observers
    to the
    mail-list). We plan to migrate the discussions to private@ after the
    proposal
    has been accepted and bring in the new committers/PPMCs according to the
    standard Apache community procedure.


    Initial PPMCs
    - Tianqi Chen tqc...@apache.org <mailto:tqc...@apache.org>
    - Ziheng Jiang zih...@apache.org <mailto:zih...@apache.org>
    - Yizhi Liu liuyi...@apache.org <mailto:liuyi...@apache.org>
    - Thierry Moreau mor...@cs.washington.edu
    <mailto:mor...@cs.washington.edu>
    - Haichen Shen shenhaic...@gmail.com <mailto:shenhaic...@gmail.com>
    - Lianmin Zheng lianminzh...@gmail.com <mailto:lianminzh...@gmail.com>
    - Markus Weimer wei...@apache.org <mailto:wei...@apache.org>
    - Sebastian Schelter
    - Byung-Gon Chun

    Initial Committers (Including PPMCs)
    - Aditya Atluri aditya.atl...@amd.com <mailto:aditya.atl...@amd.com> AMD
    - Tianqi Chen tqc...@apache.org <mailto:tqc...@apache.org>
    University of Washington
    - Yuwei Hu huyuwei1...@gmail.com <mailto:huyuwei1...@gmail.com> Cornell
    - Nick Hynes nhy...@berkeley.edu <mailto:nhy...@berkeley.edu> UC
    Berkeley
    - Ziheng Jiang zih...@apache.org <mailto:zih...@apache.org>
    University of Washington
    - Yizhi Liu liuyi...@apache.org <mailto:liuyi...@apache.org> AWS
    - Thierry Moreau mor...@cs.washington.edu
    <mailto:mor...@cs.washington.edu> University of Washington
    - Siva srk.i...@gmail.com <mailto:srk.i...@gmail.com> Huawei
    - Haichen Shen shenhaic...@gmail.com <mailto:shenhaic...@gmail.com> AWS
    - Masahiro Masuda masahi...@gmail.com <mailto:masahi...@gmail.com>
    Ziosoft
    - Zhixun Tan phisi...@gmail.com <mailto:phisi...@gmail.com> Google
    - Leyuan Wang laura...@gmail.com <mailto:laura...@gmail.com> AWS
    - Eddie Yan e...@cs.washington.edu <mailto:e...@cs.washington.edu>
    University of Washington
    - Lianming Zheng lianminzh...@gmail.com
    <mailto:lianminzh...@gmail.com> Shanghai Jiao Tong University


    === Sponsors: ===

    ==== Champion: ====
    * Markus Weimer, Microsoft

    ==== Mentors: ====
    * Sebastian Schelter, New York University
    * Byung-Gon Chun, Seoul National University

    ==== Sponsoring Entity ====
    We are requesting the Incubator to sponsor this project.

    ---------------------------------------------------------------------
    To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org
    <mailto:general-unsubscr...@incubator.apache.org>
    For additional commands, e-mail: general-h...@incubator.apache.org
    <mailto:general-h...@incubator.apache.org>


---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org
For additional commands, e-mail: general-h...@incubator.apache.org

Reply via email to