Re: [Proposal] New operator graph for MXNet

2019-05-17 Thread Pedro Larroy
Hi Tianqi and Junru. MXNet as a piece of software is in its teens and needs to mature. The community needs to have a honest discussion, and decide if MXNet is a production or a research framework. If it's a production framework, we need to apply the YAGNI principle and decide what is and what is

Re: [Proposal] New operator graph for MXNet

2019-05-15 Thread Junru Shao
Hi Zach, Thank you for raising these points! I am happy to offer more reading materials about this topic. *SSA vs ANF.* ANF and SSA are essentially the same thing [1]. *AD in Relay.* Relay is able to do AD through not only control flow, but also various data structures and higher-order functjon

Re: [Proposal] New operator graph for MXNet

2019-05-15 Thread Tianqi Chen
This is a good point. I believe the main question here is not SSA vs others, but more about CFG vs structured control flow. SSA is generally equivalent to ANF or dataflow if you ignore the Phi and CFG blocks. The current relay IR makes use of more structured control flow so it does not have an exp

Re: [Proposal] New operator graph for MXNet

2019-05-15 Thread Pedro Larroy
Hi Thanks for all the materials and keypoints raised. The discussion has many ramifications, I will think about them and research them very carefully before replying further. Please also don't quickly dismiss the points I have raised and reduce them to typed vs untyped or pedantic C++ comments, we

Re: [Proposal] New operator graph for MXNet

2019-05-15 Thread Junru Shao
Hi Anirudh, Naveen, Thank you so much for the gentle remainder! I am not a native speaker and have resulted in the mistake. I would love to say sincere sorry to Pedro. Pedro is working really hard for growing our community and improving our code base. I sincerely apologize for what I have said in

Re: [Proposal] New operator graph for MXNet

2019-05-15 Thread Zach Kimberg
I would like to raise another option to get back on the topic of changing the Operator graph structure. On the page discussing Relay IR [1], it discusses mainly the difference between a data flow graph like we use now and A-normal [2] which is used in some functional compilers. Is there a reason we

Re: [Proposal] New operator graph for MXNet

2019-05-15 Thread Naveen Swamy
Being dismissive and condescending has been exactly what is plaguing this project. I agree the last paragraph sounds very condescending and very dismissive and it breaks many code of conducts listed. On Wed, May 15, 2019 at 11:31 AM Anirudh Subramanian wrote: > Hi Junru, > > Overall, I apprecia

Re: [Proposal] New operator graph for MXNet

2019-05-15 Thread Anirudh Subramanian
Hi Junru, Overall, I appreciate the points you made about the proposal. Having said that, I would like to remind the Apache Code of Conduct : https://www.apache.org/foundation/policies/conduct. "Be empathetic, welcoming, friendly and patient". I find your tone condescending. Clearly you understa

Re: [Proposal] New operator graph for MXNet

2019-05-15 Thread Junru Shao
Hi Pedro, I really appreciate that a diligent and talented engineer eagerly wants to improve our system, and am very thankful that you have done so much for our community. However, I do want to mention some points that I believe I should mention. While I agree with Tianqi that every design has it

Re: [Proposal] New operator graph for MXNet

2019-05-14 Thread Tianqi Chen
The core part of the proposal is to move the graph to be much more strongly typed template class. I think this is mainly a point of engineering taste, and both sides have pros and cons, let me list them before I share my thoughts on this issue: - Typed fields certainly enjoy more compile-time type

Re: [Proposal] New operator graph for MXNet

2019-05-14 Thread Pedro Larroy
Hi Tianqi I thought a bit more about your comments and I think there is a simple way to address your concerns that satisfies both needs. We can have a NodeAttributes template class which has a map of string to any as it's currenlty the case, so the graph can be used in the highly dynamic scenario

Re: [Proposal] New operator graph for MXNet

2019-05-14 Thread Pedro Larroy
Hi Tianqi Thanks for the quick response. Could you point to examples where graph.h is being exposed which would not be possible with what I propose? I don't think my proposal is having any impact in language bindings, and the way I describe it doesn't affect having or not having higher language b

Re: [Proposal] New operator graph for MXNet

2019-05-14 Thread Tianqi Chen
Thanks for the proposal. Let me share some of my thoughts: Specific comments on the proposal --- The heavy use of generic in the Graph type was a huge departure from type-erased data structure which was presented in the previous design. While we understa

Re: [Proposal] New operator graph for MXNet

2019-05-14 Thread Pedro Larroy
Hi Sheng Could you provide relevant links to Relay and what you would recommend to read so we have a focused discussion instead of me potentially me miss-searching? Probably I also missed the discussion or vote in the mail list regarding including TVM as a depedency or future plans on using Relay

Re: [Proposal] New operator graph for MXNet

2019-05-14 Thread Sheng Zha
Hi Pedro, Thanks for taking the inititaive. Skimming through the design doc, I didn't see comparison with existing solutions such as relay in tvm, which is already a dependency of mxnet already. Could you elaborate on comparison with existing solutions in the design doc too? -sz On 2019/05/14

[Proposal] New operator graph for MXNet

2019-05-14 Thread Pedro Larroy
Hi dev@ As a result of my deep dives on the graph machinery I have created a new proposal to improve the operator graph in MXNet. This would mean superseding the use of NNVM Graph in MXNet and having a new implementation that we can use to simplify a lot of code and do powerful graph manipulation