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

L.S. Cook's avatar
L.S. Cook committed
3
Welcome to the open-source repository for the **Intel® nGraph Library**. Our code 
4 5 6 7 8 9 10 11 12
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. 

L.S. Cook's avatar
L.S. Cook committed
13 14 15
![nGraph ecosystem][ngraph-ecosystem]

The **nGraph Compiler** is Intel's graph compiler for Artificial Neural Networks. 
16 17 18 19 20 21 22 23 24 25 26
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. 
27

L.S. Cook's avatar
L.S. Cook committed
28 29 30 31 32 33 34 35 36 37 38 39
See the [Release Notes] for recent changes.


|  Framework     | bridge available? | ONNX support?  |
|----------------|-------------------|----------------|
| TensorFlow*    | yes               | yes            |
| MXNet*         | yes               | yes            |
| PaddlePaddle   | yes               | yes            |   
| PyTorch*       | no                | yes            |
| Chainer*       | no                | yes            |
| CNTK*          | no                | yes            |
| Caffe2*        | no                | yes            |
40

41

L.S. Cook's avatar
L.S. Cook committed
42 43 44 45 46 47 48 49 50
| Backend                                       | current support   | future support |
|-----------------------------------------------|-------------------|----------------|
| Intel® Architecture CPU                       | yes               | yes            |
| Intel® Nervana™ Neural Network Processor (NNP)| yes               | yes            |
| Intel [Movidius™ Myriad™ 2] VPUs              | coming soon       | yes            |
| Intel® Architecture GPUs                      | via PlaidML       | yes            |
| AMD* GPUs                                     | via PlaidML       | yes            |
| NVIDIA* GPUs                                  | via PlaidML       | some           | 
| Field Programmable Gate Arrays (FPGA)         | no                | yes            |
51 52


53 54
## Documentation

55
See our [install] docs for how to get started.
56

Jennifer Myers's avatar
Jennifer Myers committed
57
For this early release, we provide [framework integration guides] to
58
compile MXNet and TensorFlow-based projects. If you already have a
Jennifer Myers's avatar
Jennifer Myers committed
59 60 61
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.
62

63 64
## Support

65 66
Please submit your questions, feature requests and bug reports via
[GitHub issues].
67 68 69

## How to Contribute

70
We welcome community contributions to nGraph. If you have an idea how
71
to improve the Library:
72

73
* See the [contrib guide] for code formatting and style guidelines.
74
* Share your proposal via [GitHub issues].
75 76 77
* 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].
78 79 80
* 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.
81 82
* We will review your contribution and, if any additional fixes or
  modifications are necessary, may provide feedback to guide you. When
83
  accepted, your pull request will be merged to the repository.
84

85
[install]: http://ngraph.nervanasys.com/docs/latest/buildlb.html
86
[framework integration guides]: http://ngraph.nervanasys.com/docs/latest/framework-integration-guides.html
L.S. Cook's avatar
L.S. Cook committed
87
[release notes]: http://ngraph.nervanasys.com/docs/latest/project/release-notes.html
88
[Github issues]: https://github.com/NervanaSystems/ngraph/issues
89
[contrib guide]: http://ngraph.nervanasys.com/docs/latest/project/code-contributor-README.html
90
[pull request]: https://github.com/NervanaSystems/ngraph/pulls
Jennifer Myers's avatar
Jennifer Myers committed
91
[how to import]: http://ngraph.nervanasys.com/docs/latest/howto/import.html
L.S. Cook's avatar
L.S. Cook committed
92
[ngraph-ecosystem]: doc/sphinx/source/graphics/599px-Intel-ngraph-ecosystem.png "nGraph Ecosystem"
93 94
[build-status]: https://travis-ci.org/NervanaSystems/ngraph/branches
[build-status-badge]: https://travis-ci.org/NervanaSystems/ngraph.svg?branch=master
95
[develop-without-lockin]: doc/sphinx/source/graphics/develop-without-lockin.png "Develop on any part of the stack wtihout lockin"
L.S. Cook's avatar
L.S. Cook committed
96
[Movidius™ Myriad™ 2]:https://www.movidius.com/solutions/vision-processing-unit