README.md 6.53 KB
Newer Older
Leona C's avatar
Leona C committed
1
![nGraph Compiler stack](doc/sphinx/source/graphics/ngraph_header.png)
2
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/NervanaSystems/ngraph/blob/master/LICENSE) [![Build Status][build-status-badge]][build-status] 
L.S. Cook's avatar
L.S. Cook committed
3

4
<div align="left">
5 6 7
  <h4>
    <a href="./ABOUT.md">Architecture & features</a> | <a href="./ecosystem-overview.md" >Ecosystem</a> | <a href="https://ngraph.nervanasys.com/docs/latest/project/release-notes.html">Release notes</a><span> | </span> <a href="https://ngraph.nervanasys.com/docs/latest">Documentation</a><span> | </span> <a href="#How-to-contribute" >Contribution guide</a>
 </h4>
8
</div>
9

10
## Quick start
11

12 13
To begin using nGraph with popular frameworks to accelerate deep learning 
workloads on CPU for inference, please refer to the links below. 
L.S. Cook's avatar
L.S. Cook committed
14

15
|  Framework (Version)       | Installation guide                     | Notes  
16
|----------------------------|----------------------------------------|-----------------------------------
17
| TensorFlow* 1.13.1         | [Pip install](https://github.com/NervanaSystems/ngraph-tf#option-1-use-a-pre-built-ngraph-tensorflow-bridge) or [Build from source](https://github.com/NervanaSystems/ngraph-tf#option-2-build-ngraph-bridge-from-source)   | 20 [Validated workloads]
18
| MXNet* 1.3                 | [Pip install](https://github.com/NervanaSystems/ngraph-mxnet#Installation) or [Build from source](https://github.com/NervanaSystems/ngraph-mxnet#building-with-ngraph-support)| 18 [Validated workloads]   
19
| ONNX 1.4                   | [Pip install](https://github.com/NervanaSystems/ngraph-onnx#installation)                          | 17 [Validated workloads] 
20

21 22 23 24 25 26 27 28 29 30 31

#### Python wheels for nGraph 

The Python wheels for nGraph have been tested and are supported on the following 
64-bit systems

* Ubuntu 16.04 or later
* CentOS 7.6
* Debian 10
* macOS 10.14.3 (Mojave)

32
Frameworks using nGraph Compiler stack to execute workloads have shown 
L.S. Cook's avatar
L.S. Cook committed
33 34
[**up to 45X**](https://ai.intel.com/ngraph-compiler-stack-beta-release/) 
performance boost when compared to native framework implementations. We've also 
Leona C's avatar
Leona C committed
35
seen performance boosts running workloads that are not included on the list of  
Leona C's avatar
Leona C committed
36
[Validated workloads], thanks to nGraph's powerful subgraph pattern matching.
37

Leona C's avatar
Leona C committed
38 39 40 41
Additionally we have integrated nGraph with [PlaidML] to provide deep learning 
performance acceleration on Intel, nVidia, & AMD GPUs. More details on current 
architecture of the nGraph Compiler stack can be found in [Architecture and features],
and recent changes to the stack are explained in [Release Notes].
42 43

## What is nGraph Compiler? 
44

Leona C's avatar
Leona C committed
45 46 47
nGraph Compiler aims to accelerate developing AI workloads using any deep learning
framework and deploying to a variety of hardware targets. We strongly believe in 
providing freedom, performance, and ease-of-use to AI developers. 
48

Leona C's avatar
Leona C committed
49
The diagram below shows deep learning frameworks and hardware targets
harryskim's avatar
harryskim committed
50 51 52
supported by nGraph. NNP-L and NNP-I in the diagram refer to Intel's next generation 
deep learning accelerators: Intel® Nervana™ Neural Network Processor for Learning and 
Inference respectively.  Future plans for supporting addtional deep learning frameworks 
53
and backends are outlined in the [ecosystem] section. 
54 55


Leona C's avatar
Leona C committed
56
![](doc/sphinx/source/graphics/main_diagram_fw_hw.png)
57

58

59
While the ecosystem shown above is all functioning, we have validated 
Leona C's avatar
Leona C committed
60 61 62 63
performance for deep learning inference on CPU processors, such as Intel® Xeon® 
for the Beta release of nGraph. The Gold release is targeted for June 2019; it 
will feature broader workload coverage including quantized graphs (int8) and 
will implement support for dynamic shapes. 
64

65 66
Our documentation has extensive information about how to use nGraph Compiler 
stack to create an nGraph computational graph, integrate custom frameworks, 
67
and to interact with supported backends. If you wish to contribute to the 
68 69
project, please don't hesitate to ask questions in [GitHub issues] after 
reviewing our contribution guide below. 
70 71


72
## How to contribute
73

74
We welcome community contributions to nGraph. If you have an idea how
75
to improve it:
76

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

89

L.S. Cook's avatar
L.S. Cook committed
90
[Ecosystem]: ./ecosystem-overview.md
91 92 93 94
[Architecture and features]:https://ngraph.nervanasys.com/docs/latest/project/about.html
[Documentation]: https://ngraph.nervanasys.com/docs/latest
[build the Library]: https://ngraph.nervanasys.com/docs/latest/buildlb.html
[Getting Started Guides]: Getting-started-guides
Leona C's avatar
Leona C committed
95
[Validated workloads]: https://ngraph.nervanasys.com/docs/latest/frameworks/validated/list.html
96 97
[Functional]: https://github.com/NervanaSystems/ngraph-onnx/ 
[How to contribute]: How-to-contribute
Leona C's avatar
Leona C committed
98
[framework integration guides]: https://ngraph.nervanasys.com/docs/latest/frameworks/index.html
99
[release notes]: https://ngraph.nervanasys.com/docs/latest/project/release-notes.html
100
[Github issues]: https://github.com/NervanaSystems/ngraph/issues
101
[contrib guide]: https://ngraph.nervanasys.com/docs/latest/project/contribution-guide.html
102
[pull request]: https://github.com/NervanaSystems/ngraph/pulls
Leona C's avatar
Leona C committed
103
[how to import]: https://ngraph.nervanasys.com/docs/latest/core/constructing-graphs/import.html
104
[ngraph_wireframes_with_notice]: doc/sphinx/source/graphics/readme_stack.png "nGraph wireframe"
Leona C's avatar
Leona C committed
105
[ngraph_diagram_with fw_hw]: doc/sphinx/source/graphics/main_diagram_fw_hw.png "nGraph stack with current framework & backend support"
106
[ngraph-compiler-stack-readme]: doc/sphinx/source/graphics/ngraph-compiler-stack-readme.png "nGraph Compiler Stack"
107 108
[build-status]: https://travis-ci.org/NervanaSystems/ngraph/branches
[build-status-badge]: https://travis-ci.org/NervanaSystems/ngraph.svg?branch=master
109
[PlaidML]: https://github.com/plaidml/plaidml
110
[Source compile]: https://github.com/NervanaSystems/ngraph-mxnet/blob/master/README.md
111 112 113
[nGraph-ONNX]: https://github.com/NervanaSystems/ngraph-onnx/blob/master/README.md
[nGraph-ONNX adaptable]: https://ai.intel.com/adaptable-deep-learning-solutions-with-ngraph-compiler-and-onnx/
[nGraph for PyTorch developers]: https://ai.intel.com/investing-in-the-pytorch-developer-community