Commit 400bf7da authored by Leona C's avatar Leona C Committed by Scott Cyphers

Update template for release notes and CHANGELOG with latest few summaries from…

Update template for release notes and CHANGELOG with latest few summaries from ngraph releases repo (#2696)

* Update Release Notes for Github summaries, incorporate feedback from doc review, fix typos, etc

* Fix links

* Rename RCs on template

* PR reviews

* Remove trailing spaces and add clarification on Python API example

* Fix typo
parent 5cec2e37
......@@ -1725,6 +1725,7 @@ h1 {
h2, .rst-content .toctree-wrapper p.caption {
font-size: 139%;
font-weight: lighter;
color: #30333c;
}
h3 {
......
......@@ -73,11 +73,11 @@ author = 'Intel Corporation'
# built documents.
#
# The short X.Y version.
version = '0.16'
version = '0.17'
# The Documentation full version, including alpha/beta/rc tags. Some features
# available in the latest code will not necessarily be documented first
release = '0.16.1'
release = '0.17.0'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
......
......@@ -27,7 +27,7 @@ Automating graph construction
==============================
In a :abbr:`Machine Learning (ML)` ecosystem, it makes sense to use automation
and abstraction whereever possible. nGraph was designed to automatically use
and abstraction where possible. nGraph was designed to automatically use
the "ops" of tensors provided by a framework when constructing graphs. However,
nGraph's graph-construction API operates at a fundamentally lower level than a
typical framework's API, and writing a model directly in nGraph would be somewhat
......
......@@ -101,7 +101,7 @@ Maintenance Passes
----------------------------
.. figure:: ../../graphics/algebraic-simpl.png
:width: 650px
:width: 450 px
Algebraic simplification
......@@ -152,7 +152,7 @@ can be.
The pass also called **Reshape/Transpose Elimination** will find and optimize where
we can "push" two ``Transpose`` ops through a matrix multiplication. For example,
if you have two matrices (say, *foo* and *bar*), both of these matrices will be
transposed (to produce *foo.t* and *bar.t*, respectively), aftew which *foo.t*
transposed (to produce *foo.t* and *bar.t*, respectively), after which *foo.t*
and *bar.t* get multiplied together.
Often a more efficient way to implement this is to switch the order of the
......@@ -160,7 +160,7 @@ arguments *foo* and *bar*, multiply them together, and then transpose the output
of the matmul. Effectively, this cuts two `Transpose` operations down to just
one, where the **Reshape/Transpose** elimination will do that rewrite for you.
Another common pattern can be optimized via nGraph is the case where two
Another common pattern that can be optimized via nGraph is the case where two
transpositions cancel each other out. One example of this is taking the
"Transpose" of the transpose of a matrix, though actually a more common case is
when the graph is translating among different batch formats. We can often move
......@@ -169,7 +169,6 @@ and in cases where two transposes wind up canceling each other out, we can cut
them both out of the graph.
.. _reshape_transpose_sink:
``Reshape Sinking``
......
......@@ -63,7 +63,8 @@ additional component to be able to use these configuration settings.
* ``KMP_BLOCKTIME`` Sets the time, in milliseconds, that a thread should wait
after completing the execution of a parallel region, before sleeping.
* ``KMP_AFFINITY`` Enables the runtime library to bind threads to physical
processing units.
processing units. A useful article that explains more about how to use this
option for various CPU backends is here: https://web.archive.org/web/20190401182248/https://www.nas.nasa.gov/hecc/support/kb/Using-Intel-OpenMP-Thread-Affinity-for-Pinning_285.html
* ``KMP_SETTINGS`` Enables (``true``) or disables (``false``) the printing of
OpenMP\* runtime library environment variables during program execution.
* ``OMP_NUM_THREADS`` Specifies the number of threads to use.
......@@ -162,9 +163,8 @@ Compiler stack runs on transformers handled by Intel® Architecture (IA), and
thus can make more efficient use of the underlying hardware.
.. _KMP options: https://software.intel.com/en-us/node/522691
.. _KMP options: https://software.intel.com/en-us/cpp-compiler-developer-guide-and-reference-controlling-thread-allocation
.. KMP options: https://software.intel.com/en-us/node/522691
.. _MKL-DNN: https://github.com/intel/mkl-dnn
.. _gnu.org site: https://gcc.gnu.org/onlinedocs/libgomp/Environment-Variables.html
.. _Movidius: https://www.movidius.com/
......
......@@ -18,6 +18,9 @@ cloned from one of our GitHub repos and built to connect to nGraph device
backends while maintaining the framework's programmatic or user interface. Bridges
currently exist for the TensorFlow\* and MXNet\* frameworks.
ONNX is not a framework; however, it can be used with nGraph's :doc:../python_api/index`
to import and execute ONNX models.
.. figure:: ../graphics/whole-stack.png
:width: 733px
:alt: JiT compiling of a computation
......
......@@ -132,7 +132,7 @@ and nGraph bridges are provided below:
operator transformation. The relevant interfaces are:
- GetInputNode: obtains input node for the conversion operator. The nodes
are manged through a map.
are managed through a map.
- SetOutputNode: sets the constructed node to the map.
- Related code :
+ ``Paddle/fluid/operators/ngraph/ngraph_bridge.h`` `link to ngraph_bridge header code`_
......
......@@ -16,11 +16,10 @@ MXNet\*, where `Intel has contributed efforts showing`_ how to work with our
nGraph Compiler stack as an `experimental backend`_. Our approach provides
**more opportunities** to start working with different kinds of graph
optimizations **than would be available to the MXNet framework alone**, for
reasons outlined in our `introduction`_ documentation.
reasons outlined in our `introduction`_ documentation. Note that the
MXNet bridge requires trained models only; it does not support distributed
training.
.. TODO : Link to latest on mxnet when/if they do this instead of linking to PR;
keep in mind this tutorial will still work regardless of the merge status of
the experimental backend if you already use the ngraph-mxnet Github repo
.. figure:: ../../graphics/ngraph-mxnet-models.png
......@@ -98,7 +97,7 @@ To load the model into nGraph, we simply bind the symbol into an Executor.
At binding, the MXNet Subgraph API finds nGraph, determines how to partition
the graph, and in the case of Resnet, sends the entire graph to nGraph for
compilation. This produces a single call to an NNVM ``NGraphSubgraphOp`` embedded
compilation. This produces a single call to an `NNVM`_ ``NGraphSubgraphOp`` embedded
with the compiled model. At this point, we can test the model's performance.
.. literalinclude:: ../../../../examples/subgraph_snippets/mxnet-gluon-example.py
......@@ -111,4 +110,5 @@ with the compiled model. At this point, we can test the model's performance.
.. _introduction: http://ngraph.nervanasys.com/docs/latest/project/introduction.html
.. _gluon model zoo: https://github.com/apache/incubator-mxnet/blob/master/python/mxnet/gluon/model_zoo/vision/resnet.py#L499
.. _subgraph acceleration API: https://cwiki.apache.org/confluence/display/MXNET/Unified+integration+with+external+backend+libraries
.. _NNVM: https://github.com/dmlc/nnvm
.. _nGraph-MXNet: https://github.com/NervanaSystems/ngraph-mxnet/blob/master/README.md
......@@ -22,7 +22,7 @@ nGraph Compiler stack
######################
`nGraph`_ is an open-source graph compiler for :abbr:`Artificial Neural Networks (ANNs)`.
nGraph is an open-source graph compiler for :abbr:`Artificial Neural Networks (ANNs)`.
The nGraph Compiler stack provides an inherently efficient graph-based compilation
infrastructure designed to be compatible with many upcoming
:abbr:`Application-Specific Integrated Circuits (ASICs)`, like the Intel® Nervana™
......@@ -116,5 +116,5 @@ Indices and tables
.. _nGraph: https://www.ngraph.ai
.. nGraph: https://www.ngraph.ai
.. _up to 45X: https://ai.intel.com/ngraph-compiler-stack-beta-release/
\ No newline at end of file
.. ops/index.rst
.. ops/index.rst
####################
List of Core ``ops``
......@@ -163,7 +163,7 @@ dependency computation graph.
bridges and that can be compiled by all transformers. A framework bridge may
define framework-specific ops to simplify graph construction, provided that the
bridge can enable every transformer to replace all such ops with equivalent
clusters or subgraphs composed of core ops. Similary, transformers may define
clusters or subgraphs composed of core ops. In a similar manner, transformers may define
transformer-specific ops to represent kernels or other intermediate operations.
If a framework supports extending the set of ops it offers, a bridge may even
......@@ -181,7 +181,7 @@ expose transformer-specific ops to the framework user.
running kernels; rather, our compilation will match ``ops`` to appropriate
kernels for the backend(s) in use. Thus, we expect that adding of new Core
ops should be infrequent and that most functionality instead gets added with
new functions that build sub-graphs from existing core ops.
new functions that build sub-graphs from existing core ops.
It is easiest to define a new op by adapting an existing op. Some of the tasks
that must be performed are:
......
.. release-notes:
.. ngraph/release-notes:
Release Notes
#############
This is |release|.
The latest |version| download below
* `Format .zip`_
* `Format tar.gz`_
See also: https://github.com/NervanaSystems/ngraph/releases for previous versions.
CHANGELOG |release|
===================
CHANGELOG
=========
(Last updated September 2018)
nGraph v0.17.0-rc.0
-------------------
+ Allow negative padding in more places
+ Add code generation for some quantized ops
+ Preliminary dynamic shape support
+ initial distributed ops
Recent API Changes
~~~~~~~~~~~~~~~~~~
This release focuses on accelerating deep learning inference workloads on
Intel® Xeon® (CPU processor) and has the following key features:
+ Pad op takes CoordinateDiff instead of Shape pad values to allow for negative padding.
* Out-of-box installation experience for TensorFlow*, MXNet*, and ONNX.
* Validated optimizations for 17 workloads each on both TensorFlow and MXNet,
as well as 14 for ONNX.
* Support for Ubuntu 16.04 (TensorFlow, MXNet and ONNX).
* Support for OSX 10.13.x (buildable for TensorFlow and MXNet).
This |version| release includes optimizations built for popular workloads
already widely deployed in production environments. These workloads cover
the following categories:
Changelog
=========
nGraph v0.16.0-rc.3
-------------------
* ``image recognition & segmentation``
* ``object detection``
* ``language translation``
* ``speech generation & recognition``
* ``recommender systems``
* ``Generative Adversarial Networks (GAN)``
* ``reinforcement learning``
+ NodeInput and NodeOutput classes prepare for simplifications of Node
+ Test improvements
+ Additional quantization ops
+ Performance improvements
+ Fix memory leak
+ Concat optimization
+ Doc updates
In our tests, the optimized workloads can perform up to 45X faster than native
frameworks, and we expect performance gains for other workloads due to our
powerful :doc:`../core/fusion/index` feature.
.. _Format .zip: https://github.com/NervanaSystems/ngraph/archive/v0.17.0-rc.0.zip
.. _Format tar.gz: https://github.com/NervanaSystems/ngraph/archive/v0.17.0-rc.0.tar.gz
\ No newline at end of file
......@@ -8,13 +8,19 @@ This section contains the Python API component of the nGraph Compiler stack. The
Python API exposes nGraph™ C++ operations to Python users. For quick-start you
can find an example of the API usage below.
Note that the output at ``print(model)`` may vary; it varies according to the
number of nodes or variety of :term:`step` used to compute the printed solution.
Various NNs configured in different ways should produce the same result for
simple calculations or accountings. More complex computations may have minor
variations with respect to how precise they ought to be. For example, a more
efficient graph ``<Multiply: 'Multiply_12' ([2, 2])>`` can also be achieved
with some configurations.
.. literalinclude:: ../../../../python/examples/basic.py
:language: python
:lines: 18-47
:lines: 18-47
:caption: "Basic example"
=======
......
......@@ -3,8 +3,8 @@
[nGraph][ngraph_github] is an open-source graph compiler for Artificial
Neural Networks (ANNs). The nGraph Compiler stack provides an inherently
efficient graph-based compilation infrastructure designed to be compatible
with the many upcoming processors, like the Intel(R) Nervana(TM) Neural Network
Processor (Intel(R) Nervana(TM) NNP), while also unlocking a massive performance
with the many upcoming processors, like the Intel Nervana&trade; Neural Network
Processor (Intel&reg; Nervana&trade; NNP), while also unlocking a massive performance
boost on any existing hardware targets in your neural network: both GPUs
and CPUs. Using its flexible infrastructure, you will find it becomes
much easier to create Deep Learning (DL) models that can adhere to the
......@@ -40,6 +40,7 @@ computation is simple. The following example shows how to create a minimal
`(A + B) * C` computation graph and calculate a result using 3 numpy arrays
as input.
```python
import numpy as np
import ngraph as ng
......@@ -84,3 +85,5 @@ print('Result = ', result)
[api_cpp]: https://ngraph.nervanasys.com/docs/latest/backend-support/cpp-api.html
[core documentation]: https://ngraph.nervanasys.com/docs/latest/core/overview.html
[nGraph Ops]: http://ngraph.nervanasys.com/docs/latest/ops/index.html
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment