apache / mxnet

Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more
https://mxnet.apache.org
Apache License 2.0
20.79k stars 6.79k forks source link

subgraph TODO #11896

Open zheng-da opened 6 years ago

zheng-da commented 6 years ago

Subgraph was proposed as a general mechanism for integrating many different backends. https://cwiki.apache.org/confluence/display/MXNET/Unified+integration+with+external+acceleration+libraries

As the project progresses, we get more people joined for the project. To have better collaboration, we like to maintain a TODO list here for better collaboration. As we get more tasks for this project, we'll update the list.

There are two tasks that are MKLDNN-specific.

@reminisce @pengzhao-intel @TaoLv @ZhennanQin @ashokei

pengzhao-intel commented 6 years ago

Thanks, @zheng-da , the subgraph will be a unified interface between different implementations and make the whole architecture very clear.

We're very happy to co-work together to accelerate the progress :) And MKL-DNN would be the first backend with this wonderful bridge 🥇

mbrookhart commented 6 years ago

@zheng-da I think all we need for nGraph is

 enable graph partitioning in CachedOp and bind of the symbol executor.

  infer shape/dtype/storage info before graph partitioning and pass nnvm::Graph that carries shape/dtype/storage info as an argument when creating a subgraph node.

We'll review internally and try to assign an Engineer to those items.

zheng-da commented 6 years ago

@azai91

azai91 commented 6 years ago

for task 2, what is the optimal layout for the weights?

zheng-da commented 6 years ago

@azai91 the optimal layout is defined by the operator. This is the tricky part of this task. How to determine the optimal layout without breaking the current API?