THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
- Have an internalized graph library that can be maintained as part as MXNet. This makes contributions easier and helps evolve the graph without potential design conflicts for a library that is now part of other project with different goals and use cases than MXNet (TVM). In this way we can evolve the library and fit it for MXNet use cases.
- Use a class passed as template argument to the graph for node and edge attributes, where the graph attributes are stored in a maintainable, type safe and compile-time checked way.
- The nodes of the graph also have templated Node data and attributes class which decouple the implementation of generic graph algorithms, traversal etc, from their usage. This will allow for more data fields and structured data and classes to be added to the graph nodes and edges in a propper way.
- The graph is type safe,extensible, reusable, and is debugging friendly.
- Developers can easily extend the graph implementing logic to dump and process the graph in a generic way without having to deal with too many implementation details.
- Generic facilities can be added such as serialization, optimization passes, operation fusion passes etc. which will add tremendous value to MXNet as a flexible framework going forward in the next steps of deep learning developments.
- AGInfo is simplified and such a vital part can be part of the Node attributes class (NodeData in the example below).
- This change would help support higher order gradient calculations, since it needs to do passes on the graph that generate additional backward nodes recursively.
Examples of design changes:
...