Skip to content
This repository has been archived by the owner on Jan 3, 2023. It is now read-only.
Christian Convey edited this page Sep 8, 2017 · 17 revisions

Overview

ngraph-cpp (a.k.a. "NGraph++") is a C++ implementation of Nervana graph initially aimed at the support of ResNet and DeepSpeech 2 using TensorFlow/XLA on IA and Lake Crest.

Supported Platform / Workload Combinations

The project has three levels of support for particular combinations of operating system, compiler, and related details needed to build and/or use the NGraph++ software.

Due to the pre-release status of NGraph++, we also consider only specific workloads to be supported.

  • fully supported - It must be possible to build NGraph++ software on this platform, and use it to execute the specified workloads without error.

  • best effort - The specified platform and workloads will be supported on a best-effort level by the project team, when time allows. This level of support is intended for internal developers using alternative operating systems and compilers.

  • unsupported - Platforms and workloads for which the project's developers will make no effort to support. The project's build system may or may not explicitly reject attempts to build on such platforms.

2017 Q3 Supported Platforms and Workloads

Operating System Compiler Build Tool Host Back-end Workload Support Level
Ubuntu 16.04 Clang 3.9 CMake 3.5.1 + Gnu Make 10.19.176.53 Intel Architecture ResNet 50, Deep Speech 2 fully supported
Ubuntu 16.04 Clang 3.9 CMake 3.5.1 + Gnu Make ? Lake Crest simulator ResNet 50, Deep Speech 2 fully supported
Mac OS X clang (via current XCode) CMake + Gnu Make any Intel Architecture MNIST, ResNet 50, Deep Speech 2 best effort

Bugs and Feature Requests

Bugs and Feature Requests are represented in the usual fashion via Github Issues. The usual rules regarding sensible bug reporting apply.

Contributing Code

These guidelines are loosely modeled on those used for private-ngraph.

Some things we do differently from the private-ngraph guidelines:

  • We currently have no mechanism for publishing branches in private-ngraph-cpp to a public repository. Therefore, the convention regarding some branch names beginning with dev/ isn't applicable.

  • We don't currently require that each PR correspond to one or more Github issues.

How we do Pull Requests

Our PR workflow (DRAFT)

  1. Create the PR

    • Only create a PR when author believes its ready for merge.
    • Author assigns one or more "Reviewers".
    • We ignore the value of the "Assignees" list.
    • Author notifies reviewers that the PR is waiting their attention.
  2. Each PR Reviewer...

    • Adds review comments as appropriate.
    • When completing a round of review, only use the "Approve" outcome if the reviewer is truly okay with the current state of the code being merged. Adding caveats to the Approve comment might be totally ignored.
  3. Merging a PR

    • Only allowed when all reviewers have given approval.
    • Can be done by anyone with appropriate permissions, without warning.

Unit Testing

TODO

Continuous CI Testing

TODO

Clone this wiki locally