NNVM defines the graph structure, and how to write a pass function. What
you referred includes a concrete definition of the operator interface, e.g.
the lapack/blas interface.
A similar project is DLPack (https://github.com/dmlc/dlpack), it currently
defines the tensor interface, but not the operator level now.
A complete DL/ML stack will include
1. Frontend users will see
2. Computation graph IR, a serializable format to define the computation
flow, such as c = a*b+1
3. Operator IR, a common operator interface, e.g. +: a:tensor, b:tensor,
res:tensor
4. Compilers to optimize these IRs
5. Executor to run the workloads
Currently we have
1. apache/incubatormxnet
2. dmlc/NNVM
3. dmlc/DLPack, dmlc/TVM/topi
4. pass on dmlc/NNVM, dmlc/TVM
5. Exectuor in apache/incubatormxnet
On Wed, Aug 23, 2017 at 1:54 PM, Markus Weimer <markus@weimo.de> wrote:
> Warming up this thread :)
>
> I thought a bit about this and wonder: Would a shared type system of
> all the ML projects in the ASF be a good place to start?
>
> Many data science projects I observe seem to be using several of our
> tools, mixed with other open source and proprietary software. This
> introduces all sorts of inefficiencies and breakages, many of which
> have their root cause in the different type systems used (e.g., "wait,
> 1 means missing value her? I thought we used 0??").
>
> If we could agree on a type system here in the ASF, it could provide a
> north star for the community at large. Maybe we can even collaborate
> with Apache Avro to make sure that the whole type system has a defined
> serialized form.
>
> WDYT? How much of my observations did you have? Is a shared type
> system feasible and interesting? If so, we can start a crossproject
> thread on it.
>
> Thanks,
>
> Markus
>
