• Leona C's avatar
    Documentation updates for 0.21.0 (#3010) · b8056257
    Leona C authored
    * WIP more guides and tutorials for the docs
    
    * Update Guides and structure
    
    * Update Guides and structure
    
    + Test documentation build on Clear Linux OS;
    + Fix a few links and redirs.
    + Note rc-naming conventions in doc may be tag-generalized.
    
    * documentation supports various rc-naming conventions
    
    * Add instructions on building nGraph bridge from src
    
    * Update ngtf bridge versions to 0.14.1 and TensorFlow's bazel dependency to 0.24.1
    
    * Use consistent file naming on all BE indexes
    
    * Fix comma
    
    * Templatize versioning for releases starting 0.20 and add placeholders for changes by components
    
    * Remove typo
    
    * Minor formatting fixed
    
    * Document how to find or display built version of nGraph
    
    * Start a r0.21 for doc that also fixes broken link and typo
    
    * Correct use of console command context for version check
    
    * Minor fixes to doc-contributor-README
    
    * Docs for version 0.21
    
    * Ensure docs build without error
    
    * Assign ownership project README and intro for new ngraph.ai site to Straw
    
    * Note deprecated Tensor API in doc
    
    * Update to generic versioning on core doc for importing via built wheels
    
    * Resolve merge conflicts leftover from v20 version request changes
    
    * remove typo and suggested use of prebuilt LLVM since newer OSes do not have them available
    
    * Update to latest
    
    * Update with review from PR and ngraph bridge team
    
    * Update right section with review from PR and ngraph bridge team
    
    * Ensure doc example folders have owners from the component
    
    * Push edit of tensorflow_connect to v0.22 docs
    
    * Update Python wheel building instructions to newer version
    b8056257
index.rst 2.07 KB

Developer Resources for Backends

What's a backend?

In the nGraph Compiler stack, what we call a backend is responsible for function execution and value allocation. A backend can be used to :doc:`carry out a programmed computation<../core/constructing-graphs/execute>` from a framework on a CPU or GPU; or it can be used with an Interpreter mode, which is primarily intended for testing, to analyze a program, or to help a framework developer customize targeted solutions. Experimental APIs to support current and future nGraph Backends are also available; see, for example, the section on :doc:`plaidml-ng-api/index`.

Backend Current nGraph support Future nGraph support
Intel® Architecture Processors (CPUs) Yes Yes
Intel® Nervana™ Neural Network Processor™ (NNPs) Yes Yes
NVIDIA* CUDA (GPUs) Yes Some
AMD* GPUs Yes Some

How to use?

  1. Create a Backend; think of it as a compiler.
  2. A Backend can then produce an Executable by calling compile.
  3. A single iteration of the executable is executed by calling the call method on the Executable object.
../graphics/execution-interface.png

The execution interface for nGraph

The nGraph execution API for Executable objects is a simple, five-method interface; each backend implements the following five functions:

  • The create_tensor() method allows the bridge to create tensor objects in host memory or an accelerator's memory.
  • The write() and read() methods are used to transfer raw data into and out of tensors that reside in off-host memory.
  • The compile() method instructs the backend to prepare an nGraph function for later execution.
  • And, finally, the call() method is used to invoke an nGraph function against a particular set of tensors.