Giter Site home page Giter Site logo

toolchains's Introduction

TensorFlow Toolchains (DEPRECATED)

The TensorFlow toolchains have moved to the main TensorFlow repository. See tensorflow/tools/toolchains.

toolchains's People

Contributors

akuegel avatar angerson avatar chsigg avatar comius avatar gunan avatar mihaimaruseac avatar nitins17 avatar pkanwar23 avatar qlzh727 avatar r4nt avatar yashk2810 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

toolchains's Issues

Proposal: Automation for RBE & toolchain updates w/ SIG Build dockerfiles

This is a brief proposal about how to streamline the toolchain release process. Considering this background information:

  • The SIG Build dockerfiles work with RBE, and we can probably work on replacing our current containers with those
  • There are workflows that automatically build the SIG Build containers and push them to:
    • gcr.io/tensorflow-sigs/build:r2.N+1-python3.X, e.g. the current N+1 TF release in tensorflow/tensorflow@master is 2.9, so we have r2.9-python3.X` containers
    • gcr.io/tensorflow-sigs/build:prnumber-python3.X, updated every time a PR made by an internal TF dev pushes to their development branch

Consider a process like this:

  1. The workflows above push the new containers to gcr.io

  2. The same workflow automatically updates relevant hashes in the toolchains config file

    We could have something like this:

    # each set of "configs" shares the same env settings; we'd only need the multiple-repo
    # functionality if we're providing more than one RBE Python environment. There would be
    # one of these blocks for each TF version since we started this setup; we'd only ever update
    # the WIP PR ones, and then the N+1 version when merged. So old versions would always
    # be still set to match whatever they were when the branch was cut
    sigbuild_tf_configs(
        { 
            # The default toolchain doesn't have a "python" name attached, we'd just decide on a container to set for it.
            # The toolchain by itself doesn't actually refer to a specific Python version, so it doesn't make sense to specify
            # one, except to set a different container here for use with RBE.
            "sigbuild-r2.9": "docker://gcr.io/tensorflow-sigs/build@[latest default hash]",
            # Here are different toolchains for use with non-default RBE settings.
            # The DevInfra team actually only uses one container so I'd rather not have these at all, but apparently
            # downstream users might use them? 
            "sigbuild-r2.9-python3.7": "docker://gcr.io/tensorflow-sigs/build@[latest python3.7 hash]",
            "sigbuild-r2.9-python3.8": "docker://gcr.io/tensorflow-sigs/build@[latest python3.8 hash]",
            "sigbuild-r2.9-python3.9": "docker://gcr.io/tensorflow-sigs/build@[latest python3.9 hash]",
            "sigbuild-r2.9-python3.10": "docker://gcr.io/tensorflow-sigs/build@[latest python3.10 hash]",
        }
        env = {...}
    )
    
    # A CUDA or manylinux container example
    sigbuild_tf_configs(
        {
            # IF this is set here, then the hash gets updated whenever PR #67 to SIG Build gets updated.
            # Otherwise the automation does nothing
            "sigbuild-67": "docker://gcr.io/tensorflow-sigs/build@[latest "PR #67" hash]",
        }
        env = { different CUDA settings, or manylinux2014, etc.}
    )
  3. The workflows automatically merge the PR to this toolchains repository (optional, could do this manually instead), cut a new release, and upload the new release to TF mirror (this is probably doable with proper credentials. If not, this may need to be manual)

  4. The workflows create a PR to TensorFlow updating the toolchains dependency, which must be approved and merged by a human.

This process depends on us being able to implement the automation as specified, but I think we could do most of it. We'd end up with a very easy RBE update process. When adding a new version, the changes to TensorFlow's bazelrc would still be manual, but that's only once per release. We'd also then be able to trash old configurations related to the versions of TF we don't support any more.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.