<tomayac> Hi there!
ningxin_hu: first input on nGraph API, in Paul's comments nGraph is one exec provider
… approach applied to try write as simple example code as possible
… for WebNN vs. other native graph APIs comparison, reproducing the same example graph
… highlights of evaluation: nGraph API uses no enums to represent op types, it uses constructors of different classes
… notably, no addOperand call similar to WebNN POC
… data provided by user code as a param at execution time
Survey graph-building APIs from native ecosystem
[ningxin_hu explains the details of the example https://github.com/webmachinelearning/webnn/issues/20#issuecomment-496838734]
Rama: does nGraph have a notion of a subgraph used for control flow constructs?
ningxin_hu: has a concept of function, not sure about nesting, will investigate and come back
anssik: is the nGraph more expressive than WebNN API?
ningxin_hu: question is more about developer ergonomics, WebNN API is a C-style API so lacks object-oriented style
ningxin_hu: MPSNNGraph investigation done by my colleague
… he is involved with WebNN POC implementation work, did MPS part of that
… happy to share his experience, also welcome Apple reps' insights
… highlight comparing with nGraph: no concept to distinguish between constants and inputs
[ ningxin_hu discussing example https://github.com/fujunwei/MPSNNGraph/blob/simple/MPSNNGraphSample/main.mm]
… on API level not much diff between constants and inputs
… the API uses different class types to distinguish ops, also MPSNNGraph takes images as input
… nGraph OTOH has a helper for the same task
… MPSNNGraph has a class to create a graph, you provide result image as a graph output
… would like to get Apple reps insight on the MPSNNGraph
RafaelCintron: talking on behalf of paul
… ONNX is an open source standard, standards body of the same name
… ONNX runtime is an OSS project, implementation of the ONNX format
… execution providers run the models, types for CPU, DirectML with compute shaders
anssik: shipping status?
RafaelCintron: DirectML shipping in upcoming Windows release
… both public APIs
… ONNX runtime has a CPU exec model only as of now
ningxin_hu: ONNX Runtime's main functionality to load the model and do the inference, is that correct?
RafaelCintron: correct
ningxin_hu: in Paul's comments, he provided a graph and edge reference, how that works with exec providers
… question re the header file, is this an API for developers to call into, or an internal API for execution boundary
RafaelCintron: API that an exec provider would call into
ningxin_hu: to clarify, it is an API for an exec provider to use, not an application developer
RafaelCintron: correct
anssik: are there any web bindings to these APIs?
RafaelCintron: not in browsers no
<tomayac> Sorry, I don't know the answer
<ningxin_hu> Android NNAPI has a C++ wrapper which should simply the code to use NN functionalities. My question is what's the status of that? Any code example available to compare with existing WebNN API (derived from NN C API)?
<RafaelCintron> I agree with Anssi said earlier that we should combine all of the APIs into one.
<ningxin_hu> The link of NNAPI C++ wrapper: https://android.googlesource.com/platform/frameworks/ml/+/refs/heads/master/nn/runtime/include/NeuralNetworksWrapper.h
ningxin_hu: based on the survey, my take is maybe we can focus on the aspects of the API itself, functionality of the APIs one by one
… for each we can refer to each native API feature, and see what to absorb for the WebNN API improvement
… goals to simplify web developers work, follow web API design conventions
… propose continue discussion in that issue https://github.com/webmachinelearning/webnn/issues/16
a///
ningxin_hu: in #16 there are already multiple design points, maybe split to focus discussion, then map one PR to one issue
Graph-building syntax simpler for web developers
ningxin_hu: we should summarize discussion points in #16 and create separate issues for further discussion and eventual resolution and PRs
Rama: support splitting where it makes sense
anssik: please open issues as you see fit
ningxin_hu: I will summarize my position in that issues
anssik: unable to chair 20 June 2019, July holiday period, next telcons:
27 June 2019
15 August 2019
https://www.w3.org/2019/09/TPAC/schedule.html
WebML CG has F2F Tuesday 17 September https://www.w3.org/2019/09/TPAC/schedule.html#Tuesday
Succeeded: s/has a/have a/
Succeeded: s/that//
Maybe present: anssik, RafaelCintron, Rama