W3C

– DRAFT –
WebML CG Teleconference – 6 June 2019

06 June 2019

Attendees

Present
Anssi_Kostiainen, Gabe_Esteven, Ganesan_Ramalingam, Jonathan_Bingham, Kai_Ninomiya, Ningxin_Hu, Rafael_Cintron, Thomas_Steiner
Regrets
Chair
Anssi
Scribe
Anssi, anssik

Meeting minutes

<tomayac> Hi there!

Survey graph-building APIs from native ecosystem

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

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

Call schedule for the upcoming summer

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

Adjust

Minutes manually created (not a transcript), formatted by Bert Bos's scribe.perl version Mon Apr 15 13:11:59 2019 UTC, a reimplementation of David Booth's scribe.perl. See history.

Diagnostics

Succeeded: s/has a/have a/

Succeeded: s/that//

Maybe present: anssik, RafaelCintron, Rama