mirror of https://github.com/llvm/torch-mlir
License and readme changes to align with inclusion in LLVM. (#1)
* Updates the LICENSE to the same verbiage as used in the circt project. * Adds the incubator disclaimer to the README. * Reworks the introduction of the README to more accurately reflect the eventual scope. * There is a fair amount of further rework of the repo that needs to take place. This is just the minimal cosmetic changes now that it is part of LLVM.pull/2/head
parent
a9d7610f9d
commit
478f35620d
18
LICENSE
18
LICENSE
|
@ -1,3 +1,8 @@
|
||||||
|
==============================================================================
|
||||||
|
The LLVM Project is under the Apache License v2.0 with LLVM Exceptions:
|
||||||
|
As an incubator project with ambition to become part of the LLVM Project,
|
||||||
|
CIRCT is under the same license.
|
||||||
|
==============================================================================
|
||||||
Apache License
|
Apache License
|
||||||
Version 2.0, January 2004
|
Version 2.0, January 2004
|
||||||
http://www.apache.org/licenses/
|
http://www.apache.org/licenses/
|
||||||
|
@ -201,7 +206,7 @@
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
|
|
||||||
|
|
||||||
--- LLVM Exceptions to the Apache 2.0 License ----
|
---- LLVM Exceptions to the Apache 2.0 License ----
|
||||||
|
|
||||||
As an exception, if, as a result of your compiling your source code, portions
|
As an exception, if, as a result of your compiling your source code, portions
|
||||||
of this Software are embedded into an Object form of such source code, you
|
of this Software are embedded into an Object form of such source code, you
|
||||||
|
@ -217,3 +222,14 @@ prospectively choose to deem waived or otherwise exclude such Section(s) of
|
||||||
the License, but only in their entirety and only with respect to the Combined
|
the License, but only in their entirety and only with respect to the Combined
|
||||||
Software.
|
Software.
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
Software from third parties included in the LLVM Project:
|
||||||
|
==============================================================================
|
||||||
|
The LLVM Project contains third party software which is under different license
|
||||||
|
terms. All such code will be identified clearly using at least one of two
|
||||||
|
mechanisms:
|
||||||
|
1) It will be in a separate directory tree with its own `LICENSE.txt` or
|
||||||
|
`LICENSE` file at the top containing the specific license and restrictions
|
||||||
|
which apply to that software, or
|
||||||
|
2) It will contain specific license and restriction terms at the top of every
|
||||||
|
file.
|
||||||
|
|
43
README.md
43
README.md
|
@ -1,38 +1,25 @@
|
||||||
# NPComp - An aspirational MLIR based numpy compiler
|
# NPComp - MLIR based compiler toolkit for numerical python programs
|
||||||
|
|
||||||
NPComp aims to be an idiomatic subset of the Python language, suitable for
|
> This project is participating in the LLVM Incubator process: as such, it is
|
||||||
extracting isolated, statically typed programs from a running Python session.
|
not part of any official LLVM release. While incubation status is not
|
||||||
It is inspired by many projects that have come before it, including:
|
necessarily a reflection of the completeness or stability of the code, it
|
||||||
|
does indicate that the project is not yet endorsed as a component of LLVM.
|
||||||
|
|
||||||
* PyPy/RPython
|
The NPComp project aims to provide tooling for compiling numerical python programs of various forms to take advantage of MLIR+LLVM code generation and backend runtime systems.
|
||||||
* Numba
|
|
||||||
* Pythran
|
|
||||||
* TorchScript
|
|
||||||
* Autograph
|
|
||||||
|
|
||||||
As the name implies, NPComp also seeks to provide compiler-backed support
|
In addition to providing a bridge to a variety of Python based numerical programming frameworks, NPComp also directly develops components for tracing and compilation of generic Python program fragments.
|
||||||
for Numpy APIs.
|
|
||||||
|
|
||||||
The project spawned out of both [LLVM's MLIR project](https://mlir.llvm.org/)
|
## Framework integrations
|
||||||
and [The IREE Project](https://github.com/google/iree) and seeks to use the
|
|
||||||
MLIR and IREE tooling to enable progressive lowering of high level compute
|
|
||||||
dominant sub-programs in a way that preserves high level semantic information
|
|
||||||
that is expected to be useful for exploiting parallelism, generating high
|
|
||||||
performance code, and enabling portability and deployment to a range of
|
|
||||||
devices. Some of these goals overlap with existing projects, and to a first
|
|
||||||
approximation, the experiment with NPComp is to determine whether rebasing
|
|
||||||
on the MLIR tooling and ML backends like IREE produce a lift.
|
|
||||||
|
|
||||||
Before getting too excited, keep in mind that this project *barely* exists: it
|
* Coming soon
|
||||||
is very new and doesn't do anything useful yet :) We are using it as a testing
|
|
||||||
ground for some new ideas and infrastructure improvement, and depending on
|
|
||||||
how things turn out, may end up carrying it forward or breaking it up for
|
|
||||||
parts.
|
|
||||||
|
|
||||||
See the [features doc](docs/features.md) for a semi-curated status of what is
|
## Python language compiler tookit
|
||||||
implemented.
|
|
||||||
|
|
||||||
## Architecture
|
At the core of NPComp are a set of dialects and python support code for tracing (define by run) numerical programs and compiling idiomatic subsets of the Python language. As another interpretation of the name, NPComp also seeks to provide compiler-backed support for Numpy APIs.
|
||||||
|
|
||||||
|
See the [features doc](docs/features.md) for a semi-curated status of what is implemented in this area.
|
||||||
|
|
||||||
|
### Architecture
|
||||||
|
|
||||||
The compiler is separated into:
|
The compiler is separated into:
|
||||||
|
|
||||||
|
|
|
@ -1,28 +0,0 @@
|
||||||
# How to Contribute
|
|
||||||
|
|
||||||
We'd love to accept your patches and contributions to this project. There are
|
|
||||||
just a few small guidelines you need to follow.
|
|
||||||
|
|
||||||
## Contributor License Agreement
|
|
||||||
|
|
||||||
Contributions to this project must be accompanied by a Contributor License
|
|
||||||
Agreement. You (or your employer) retain the copyright to your contribution;
|
|
||||||
this simply gives us permission to use and redistribute your contributions as
|
|
||||||
part of the project. Head over to <https://cla.developers.google.com/> to see
|
|
||||||
your current agreements on file or to sign a new one.
|
|
||||||
|
|
||||||
You generally only need to submit a CLA once, so if you've already submitted one
|
|
||||||
(even if it was for a different project), you probably don't need to do it
|
|
||||||
again.
|
|
||||||
|
|
||||||
## Code reviews
|
|
||||||
|
|
||||||
All submissions, including submissions by project members, require review. We
|
|
||||||
use GitHub pull requests for this purpose. Consult
|
|
||||||
[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more
|
|
||||||
information on using pull requests.
|
|
||||||
|
|
||||||
## Community Guidelines
|
|
||||||
|
|
||||||
This project follows [Google's Open Source Community
|
|
||||||
Guidelines](https://opensource.google/conduct/).
|
|
Loading…
Reference in New Issue