README.md 4.1 KB
Newer Older
1
# nGraph Library [![Build Status][build-status-badge]][build-status]
2

3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Welcome to the open-source repository for the Intel® nGraph™ Library. Our code 
base provides a Compiler and runtime suite of tools (APIs) designed to give 
developers maximum flexibility for their software design, allowing them to 
create or customize a scalable solution using any framework while also avoiding 
device-level hardware lock-in that is so common with many AI vendors. A neural 
network model compiled with nGraph can run on any of our currently-supported 
backends, and it will be able to run on any backends we support in the future 
with minimal disruption to your model. With nGraph, you can co-evolve your 
software and hardware's capabilities to stay at the forefront of your industry. 

The nGraph Compiler is Intel's graph compiler for Artificial Neural Networks. 
Documentation in this repo describes how you can program any framework 
to run training and inference computations on a variety of Backends including 
Intel® Architecture Processors (CPUs), Intel® Nervana™ Neural Network Processors 
(NNPs), cuDNN-compatible graphics cards (GPUs), custom VPUs like [Movidius], and
many others. The default CPU Backend also provides an interactive *Interpreter* 
mode that can be used to zero in on a DL model and create custom nGraph 
optimizations that can be used to further accelerate training or inference, in 
whatever scenario you need.  

nGraph provides both  a C++ API for framework developers and a Python API which 
can run inference on models imported from ONNX. 
26

Jennifer Myers's avatar
Jennifer Myers committed
27
![nGraph ecosystem][ngraph-ecosystem]
28

29 30 31 32 33 34 35

|Framework   | bridge available? | ONNX support?  |
|------------|-------------------|----------------|
| neon       | yes               | yes            |
| MXNet*     | yes               | yes            |
| TensorFlow*| yes               | yes            |
| PyTorch*   | not yet           | yes            |
36
| Chainer*   | not yet           | yes            |
37 38 39 40
| CNTK*      | not yet           | yes            |
| Caffe2*    | not yet           | yes            |


41 42
## Documentation

43
See our [install] docs for how to get started.
44

Jennifer Myers's avatar
Jennifer Myers committed
45
For this early release, we provide [framework integration guides] to
46
compile MXNet and TensorFlow-based projects. If you already have a
Jennifer Myers's avatar
Jennifer Myers committed
47 48 49
trained model, we've put together a getting started guide for
[how to import] a deep learning model and start working with the nGraph
APIs.
50

51 52
## Support

53 54
Please submit your questions, feature requests and bug reports via
[GitHub issues].
55 56 57

## How to Contribute

58
We welcome community contributions to nGraph. If you have an idea how
59
to improve the Library:
60

61
* See the [contrib guide] for code formatting and style guidelines.
62
* Share your proposal via [GitHub issues].
63 64 65
* Ensure you can build the product and run all the examples with your patch.
* In the case of a larger feature, create a test.
* Submit a [pull request].
66 67 68
* Make sure your PR passes all CI tests. Note: our [Travis-CI][build-status] service
  runs only on a CPU backend on Linux. We will run additional tests
  in other environments.
69 70
* We will review your contribution and, if any additional fixes or
  modifications are necessary, may provide feedback to guide you. When
71
  accepted, your pull request will be merged to the repository.
72

73
[install]: http://ngraph.nervanasys.com/docs/latest/buildlb.html
74
[framework integration guides]: http://ngraph.nervanasys.com/docs/latest/framework-integration-guides.html
75
[Github issues]: https://github.com/NervanaSystems/ngraph/issues
76
[contrib guide]: http://ngraph.nervanasys.com/docs/latest/project/code-contributor-README.html
77
[pull request]: https://github.com/NervanaSystems/ngraph/pulls
Jennifer Myers's avatar
Jennifer Myers committed
78
[how to import]: http://ngraph.nervanasys.com/docs/latest/howto/import.html
Jennifer Myers's avatar
Jennifer Myers committed
79
[ngraph-ecosystem]: doc/sphinx/source/graphics/ngraph-ecosystem.png "nGraph Ecosystem"
80 81
[build-status]: https://travis-ci.org/NervanaSystems/ngraph/branches
[build-status-badge]: https://travis-ci.org/NervanaSystems/ngraph.svg?branch=master
82 83
[develop-without-lockin]: doc/sphinx/source/graphics/develop-without-lockin.png "Develop on any part of the stack wtihout lockin"
[Movidius]:https://www.movidius.com/solutions/vision-processing-unit