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
######################
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
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
......
......@@ -3,19 +3,26 @@
How to
======
.. 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.
.. toctree::
:maxdepth: 1
:caption: How to
execute.rst
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
resources, it can either:
* Do the tasks programatically through the framework, or
* Provide a clear model definition with documentation for the computational
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
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
invite you to experiment with the variety of hybridization and performance
extractions available through the nGraph library.
.. toctree::
:maxdepth: 1
:caption: How-to
execute.rst
\ No newline at end of file
......@@ -13,26 +13,29 @@
.. limitations under the License.
.. ---------------------------------------------------------------------------
#############################
Intel nGraph library project
#############################
########################
Intel nGraph++ library
########################
Welcome to Intel nGraph, an open source C++ library for developers of
:abbr:`Deep Learning (DL)` (DL) systems. Here you will find a suite
of components, APIs, and documentation that can be used to compile
and run :abbr:`Deep Neural Network (DNN)` (DNN) models defined in a
variety of frameworks.
Welcome to Intel® nGraph™, an open source C++ library for developers of
:abbr:`Deep Learning (DL)` (DL) systems. Here you will find a suite of
components, APIs, and documentation that can be used to compile and run
:abbr:`Deep Neural Network (DNN)` (DNN) models defined in a variety of
frameworks.
.. figure:: graphics/ngraph-hub.png
For this early release, we provide :doc:`framework-integration-guides` to compile
and run MXNet and TensorFlow-based projects.
For this early release, we've provided :doc:`framework-integration-guides` to
compile and run MXNet\* and TensorFlow\*-based projects.
The nGraph library translates a framework’s representation of computations into
an :abbr:`Intermediate Representation (IR)` designed to promote computational
.. note:: The library code is under active development as we're continually
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
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
memory management and data layout abstraction.
......
.. installation:
###################################
Install the Intel® nGraph™ library
###################################
########
Install
########
Build Environments
==================
The |release| version of |project| supports Linux\*-based systems which
have recent updates of the following packages and prerequisites:
The |release| version of |project| supports Linux\*-based systems which have
recent updates of the following packages and prerequisites:
.. csv-table::
: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
below. This gets a pre-built tarball of LLVM+Clang from `llvm.org`_, and will
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
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
compatible with a gcc-4.8 based build.)
Support for macOS is limited; see the `macOS development prerequisites`_
section at the end of this page for details.
Support for macOS is limited; see the `macOS development`_ section at the end of
this page for details.
Installation Steps
......@@ -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
information about how to change or customize this location.
#. (Optional) Since most of a developer's interaction with a frontend
framework will take place locally through Pythonic APIs to the C++
library, you can set a reference placeholder for the documented source
cloned from the repo. Create something like ``/opt/local`` and (with sudo
permissions), give ownership of that directory to your user.
#. (Optional) Create something like ``/opt/local`` and (with sudo permissions),
give ownership of that directory to your user. Under this directory, you can
add a placeholder for ``libraries`` to have a placeholder for the documented
source cloned from the repo:
.. code-block:: console
......@@ -62,62 +61,70 @@ information about how to change or customize this location.
.. code-block:: console
$ cd /opt/local/libraries
$ git clone git@github.com:NervanaSystems/private-ngraph-cpp.git
$ cd private-ngraph-cpp
$ git clone git@github.com:NervanaSystems/ngraph-cpp.git
$ cd ngraph-cpp
#. Create a build directory outside of the ``private-ngraph-cpp/src`` directory
tree; somewhere like ``private-ngraph-cpp/build``, for example.
#. Create a build directory outside of the ``ngraph-cpp/src`` directory
tree; somewhere like ``ngraph-cpp/build``, for example.
.. code-block:: console
$ mkdir build
#. ``$ 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
$ cd build && cmake ../
$ cd build && cmake ../ [-DNGRAPH_USE_PREBUILT_LLVM=TRUE]
#. Run ``$ make -j8`` and ``make install`` to install ``libngraph.so`` and the
header files to the default location of ``$HOME/ngraph_dist``.
#. (Optional) Run ``$ make [-jN]`` where :option:`-jN` specifies the number of
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
$ 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
``doc/sphinx`` directory to build HTML docs for the nGraph library.
$ make install
#. (Optional, requires `doxygen`_.) Run ``$ make htmldocs`` inside
the ``doc/sphinx`` directory to build HTML API docs inside the
``/docs/doxygen/`` directory.
#. (Optional, requires `doxygen`_, `Sphinx`_, and `breathe`_). Run ``make html``
inside the ``doc/sphinx`` directory of the cloned source to build a copy of
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
aware that this platform is officially unsupported.
.. note:: The macOS*\ platform is officially unsupported.
The repository includes two scripts (``maint/check-code-format.sh`` and
``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
``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):
.. code-block:: bash
$ brew install llvm@3.9
$ mkdir -p $HOME/bin
$ 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
$ brew install llvm@3.9
$ mkdir -p $HOME/bin
$ 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
.. _doxygen: https://www.stack.nl/~dimitri/doxygen/
.. _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
.. _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
for:
* :doc:`MXNet<framework-integration-guides>` framework,
* :doc:`Tensorflow<framework-integration-guides>` framework, and
* :doc:`TensorFlow<framework-integration-guides>` framework, and
* neon™ `frontend framework`_.
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