What follows here are a few notable features of the nGraph Compiler stack.
- Fusion – Fuse multiple ops to to decrease memory usage.
- Data layout abstraction – Make abstraction easier and faster with nGraph translating element order to work best for a given or available device.
- Data reuse – Save results and reuse for subgraphs with the same input.
- Graph scheduling – Run similar subgraphs in parallel via multi-threading.
- Graph partitioning – Partition subgraphs to run on different devices to speed up computation; make better use of spare CPU cycles with nGraph.
- Memory management – Prevent peak memory usage by intercepting a graph with or by a “saved checkpoint,” and to enable data auditing.