Commit 11344652 authored by L.S. Cook's avatar L.S. Cook Committed by Scott Cyphers

Repo name change and other miscellaneous edits (#588)

parent ce8fef72
...@@ -5,7 +5,7 @@ Execute a Computation ...@@ -5,7 +5,7 @@ Execute a Computation
###################### ######################
This section explains how to manually perform the steps that would normally be This section explains how to manually perform the steps that would normally be
performed by a framework :term:`bridge` to execute a computation. Intel® nGraph performed by a framework :term:`bridge` to execute a computation. Intel® nGraph++
library is targeted toward automatic construction; it is far easier for a library is targeted toward automatic construction; it is far easier for a
processing unit (GPU, CPU, or an `Intel Nervana NNP`_) to run a computation than processing unit (GPU, CPU, or an `Intel Nervana NNP`_) to run a computation than
it is for a user to map out how that computation happens. Unfortunately, things it is for a user to map out how that computation happens. Unfortunately, things
......
...@@ -3,19 +3,26 @@ ...@@ -3,19 +3,26 @@
How to How to
====== ======
.. note:: This section is aimed at intermediate-level developers working with .. toctree::
the nGraph library. It assumes a developer has understanding of the concepts :maxdepth: 1
in the previous sections. It does not assume knowledge of any particular :caption: How to
frontend framework.
execute.rst
The "How to" articles in this section explain how to do specific tasks with the The "How to" articles in this section explain how to do specific tasks with the
Intel nGraph library. The recipes are all framework agnostic; in other words, Intel nGraph++ library. The recipes are all framework agnostic; in other words,
if an entity (framework or user) wishes to make use of target-based computational if an entity (framework or user) wishes to make use of target-based computational
resources, it can either: resources, it can either:
* Do the tasks programatically through the framework, or * Do the tasks programatically through the framework, or
* Provide a clear model definition with documentation for the computational * Provide a clear model definition with documentation for the computational
resources needed. resources needed.
.. note:: This section is aimed at intermediate-level developers working with
the nGraph++ library. It assumes a developer has understanding of the concepts
in the previous sections. It does not assume knowledge of any particular
frontend framework.
Since our primary audience is developers who are pushing the boundaries of deep Since our primary audience is developers who are pushing the boundaries of deep
learning systems, we go beyond the use of deep learning primitives, and include learning systems, we go beyond the use of deep learning primitives, and include
...@@ -41,9 +48,3 @@ backend engineers, and others. We welcome contributions from the community and ...@@ -41,9 +48,3 @@ backend engineers, and others. We welcome contributions from the community and
invite you to experiment with the variety of hybridization and performance invite you to experiment with the variety of hybridization and performance
extractions available through the nGraph library. extractions available through the nGraph library.
.. toctree::
:maxdepth: 1
:caption: How-to
execute.rst
\ No newline at end of file
...@@ -13,26 +13,29 @@ ...@@ -13,26 +13,29 @@
.. limitations under the License. .. limitations under the License.
.. --------------------------------------------------------------------------- .. ---------------------------------------------------------------------------
############################# ########################
Intel nGraph library project Intel nGraph++ library
############################# ########################
Welcome to Intel nGraph, an open source C++ library for developers of Welcome to Intel® nGraph™, an open source C++ library for developers of
:abbr:`Deep Learning (DL)` (DL) systems. Here you will find a suite :abbr:`Deep Learning (DL)` (DL) systems. Here you will find a suite of
of components, APIs, and documentation that can be used to compile components, APIs, and documentation that can be used to compile and run
and run :abbr:`Deep Neural Network (DNN)` (DNN) models defined in a :abbr:`Deep Neural Network (DNN)` (DNN) models defined in a variety of
variety of frameworks. frameworks.
.. figure:: graphics/ngraph-hub.png .. figure:: graphics/ngraph-hub.png
For this early release, we provide :doc:`framework-integration-guides` to compile For this early release, we've provided :doc:`framework-integration-guides` to
and run MXNet and TensorFlow-based projects. compile and run MXNet\* and TensorFlow\*-based projects.
The nGraph library translates a framework’s representation of computations into .. note:: The library code is under active development as we're continually
an :abbr:`Intermediate Representation (IR)` designed to promote computational adding support for more ops, more frameworks, and more backends.
The nGraph++ library translates a framework’s representation of computations
into an :abbr:`Intermediate Representation (IR)` that promotes computational
efficiency on target hardware. Initially-supported backends include Intel efficiency on target hardware. Initially-supported backends include Intel
Architecture CPUs (CPU), the Intel® Nervana Neural Network Processor™ (NNP), Architecture CPUs (``CPU``), the Intel® Nervana Neural Network Processor™ (NNP),
and NVIDIA\* GPUs. Currently-supported compiler optimizations include efficient and NVIDIA\* GPUs. Currently-supported compiler optimizations include efficient
memory management and data layout abstraction. memory management and data layout abstraction.
......
.. installation: .. installation:
################################### ########
Install the Intel® nGraph™ library Install
################################### ########
Build Environments Build Environments
================== ==================
The |release| version of |project| supports Linux\*-based systems which The |release| version of |project| supports Linux\*-based systems which have
have recent updates of the following packages and prerequisites: recent updates of the following packages and prerequisites:
.. csv-table:: .. csv-table::
:header: "Operating System", "Compiler", "Build System", "Status", "Additional Packages" :header: "Operating System", "Compiler", "Build System", "Status", "Additional Packages"
...@@ -25,15 +25,15 @@ Other configurations may work, but aren't tested; on Ubuntu 16.04 with ...@@ -25,15 +25,15 @@ Other configurations may work, but aren't tested; on Ubuntu 16.04 with
below. This gets a pre-built tarball of LLVM+Clang from `llvm.org`_, and will below. This gets a pre-built tarball of LLVM+Clang from `llvm.org`_, and will
substantially reduce build time. substantially reduce build time.
If using ``gcc-4.8``, it may be necessary to add symlinksfrom ``gcc`` to If using ``gcc-4.8``, it may be necessary to add symlinks from ``gcc`` to
``gcc-4.8``, and from ``g++`` to ``g++-4.8``, in your :envvar:`PATH`, even ``gcc-4.8``, and from ``g++`` to ``g++-4.8``, in your :envvar:`PATH`, even
if you explicitly specify the ``CMAKE_C_COMPILER`` and ``CMAKE_CXX_COMPILER`` if you explicitly specify the ``CMAKE_C_COMPILER`` and ``CMAKE_CXX_COMPILER``
flags when building. (You should NOT supply the `-DNGRAPH_USE_PREBUILT_LLVM` flags when building. (You **should NOT** supply the ``-DNGRAPH_USE_PREBUILT_LLVM``
flag in this case, because the prebuilt tarball supplied on llvm.org is not flag in this case, because the prebuilt tarball supplied on llvm.org is not
compatible with a gcc-4.8 based build.) compatible with a gcc-4.8 based build.)
Support for macOS is limited; see the `macOS development prerequisites`_ Support for macOS is limited; see the `macOS development`_ section at the end of
section at the end of this page for details. this page for details.
Installation Steps Installation Steps
...@@ -44,11 +44,10 @@ install ``ngraph_dist`` to the installing user's ``$HOME`` directory as ...@@ -44,11 +44,10 @@ install ``ngraph_dist`` to the installing user's ``$HOME`` directory as
the default location. See the :file:`CMakeLists.txt` file for more the default location. See the :file:`CMakeLists.txt` file for more
information about how to change or customize this location. information about how to change or customize this location.
#. (Optional) Since most of a developer's interaction with a frontend #. (Optional) Create something like ``/opt/local`` and (with sudo permissions),
framework will take place locally through Pythonic APIs to the C++ give ownership of that directory to your user. Under this directory, you can
library, you can set a reference placeholder for the documented source add a placeholder for ``libraries`` to have a placeholder for the documented
cloned from the repo. Create something like ``/opt/local`` and (with sudo source cloned from the repo:
permissions), give ownership of that directory to your user.
.. code-block:: console .. code-block:: console
...@@ -62,62 +61,70 @@ information about how to change or customize this location. ...@@ -62,62 +61,70 @@ information about how to change or customize this location.
.. code-block:: console .. code-block:: console
$ cd /opt/local/libraries $ cd /opt/local/libraries
$ git clone git@github.com:NervanaSystems/private-ngraph-cpp.git $ git clone git@github.com:NervanaSystems/ngraph-cpp.git
$ cd private-ngraph-cpp $ cd ngraph-cpp
#. Create a build directory outside of the ``private-ngraph-cpp/src`` directory #. Create a build directory outside of the ``ngraph-cpp/src`` directory
tree; somewhere like ``private-ngraph-cpp/build``, for example. tree; somewhere like ``ngraph-cpp/build``, for example.
.. code-block:: console .. code-block:: console
$ mkdir build $ mkdir build
#. ``$ cd`` to the build directory and generate the GNUMakefiles in the #. ``$ cd`` to the build directory and generate the GNUMakefiles in the
customary manner from within your ``build`` directory: customary manner from within your ``build`` directory (remember to append the
command with the prebuilt option, if needed):
.. code-block:: console .. code-block:: console
$ cd build && cmake ../ $ cd build && cmake ../ [-DNGRAPH_USE_PREBUILT_LLVM=TRUE]
#. Run ``$ make -j8`` and ``make install`` to install ``libngraph.so`` and the #. (Optional) Run ``$ make [-jN]`` where :option:`-jN` specifies the number of
header files to the default location of ``$HOME/ngraph_dist``. cores. The example here uses a configuration of :option:`j8`, which is
good for a system install using an Intel® Xeon® (CPU processor). This step
is **not recommended** with Docker / VM installs.
.. code-block:: console .. code-block:: console
$ make -j8
$ make -j8 && make install #. Run ``make install`` to install ``libngraph.so`` and the header files to the
default location of ``$HOME/ngraph_dist``
.. code-block:: console
#. (Optional, requires `Sphinx`_.) Run ``make html`` inside the $ make install
``doc/sphinx`` directory to build HTML docs for the nGraph library.
#. (Optional, requires `doxygen`_.) Run ``$ make htmldocs`` inside #. (Optional, requires `doxygen`_, `Sphinx`_, and `breathe`_). Run ``make html``
the ``doc/sphinx`` directory to build HTML API docs inside the inside the ``doc/sphinx`` directory of the cloned source to build a copy of
``/docs/doxygen/`` directory. the `website docs`_ locally. The low-level API docs with inheritance diagrams
and collaboration diagrams can be found inside the ``/docs/doxygen/``
directory.
.. macos_development_prerequisites: .. macos_development:
macOS Development Prerequisites macOS development
------------------------------- -----------------
.. note:: If you are developing |nGl| projects on macOS*\, please be .. note:: The macOS*\ platform is officially unsupported.
aware that this platform is officially unsupported.
The repository includes two scripts (``maint/check-code-format.sh`` and The repository includes two scripts (``maint/check-code-format.sh`` and
``maint/apply-code-format.sh``) that are used respectively to check adherence ``maint/apply-code-format.sh``) that are used respectively to check adherence
to `libngraph` code formatting conventions, and to automatically reformat code to ``libngraph`` code formatting conventions, and to automatically reformat code
according to those conventions. These scripts require the command according to those conventions. These scripts require the command
``clang-format-3.9`` to be in your ``PATH``. Run the following commands ``clang-format-3.9`` to be in your ``PATH``. Run the following commands
(you will need to adjust them if you are not using bash): (you will need to adjust them if you are not using bash):
.. code-block:: bash .. code-block:: bash
$ brew install llvm@3.9 $ brew install llvm@3.9
$ mkdir -p $HOME/bin $ mkdir -p $HOME/bin
$ ln -s /usr/local/opt/llvm@3.9/bin/clang-format $HOME/bin/clang-format-3.9 $ ln -s /usr/local/opt/llvm@3.9/bin/clang-format $HOME/bin/clang-format-3.9
$ echo 'export PATH=$HOME/bin:$PATH' >> $HOME/.bash_profile $ echo 'export PATH=$HOME/bin:$PATH' >> $HOME/.bash_profile
.. _doxygen: https://www.stack.nl/~dimitri/doxygen/ .. _doxygen: https://www.stack.nl/~dimitri/doxygen/
.. _Sphinx: http://www.sphinx-doc.org/en/stable/ .. _Sphinx: http://www.sphinx-doc.org/en/stable/
.. _NervanaSystems: https://github.com/NervanaSystems/private-ngraph-cpp/blob/master/README.md .. _breathe: https://breathe.readthedocs.io/en/latest/
.. _llvm.org: https://www.llvm.org .. _llvm.org: https://www.llvm.org
.. _NervanaSystems: https://github.com/NervanaSystems/ngraph-cpp/blob/master/README.md
.. _website docs: http://ngraph.nervanasys.com/index.html/index.html
...@@ -32,7 +32,7 @@ For this early |release| release, we're providing :doc:`framework-integration-gu ...@@ -32,7 +32,7 @@ For this early |release| release, we're providing :doc:`framework-integration-gu
for: for:
* :doc:`MXNet<framework-integration-guides>` framework, * :doc:`MXNet<framework-integration-guides>` framework,
* :doc:`Tensorflow<framework-integration-guides>` framework, and * :doc:`TensorFlow<framework-integration-guides>` framework, and
* neon™ `frontend framework`_. * neon™ `frontend framework`_.
Integration guides for other frameworks are tentatively forthcoming. Integration guides for other frameworks are tentatively forthcoming.
......
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