W3C

– DRAFT –
WebML WG Teleconference – 2 Sep 2021

02 September 2021

Attendees

Present
Anssi_Kostiainen, dom, Jonathan_Bingham, Ningxin_Hu, Present+ Ganesan_Ramalingam, Rafael_Cintron, Sungpil_Shin, Wonsuk_Lee
Regrets
Chai_Chaoweeraprasit
Chair
Anssi
Scribe
Anssi, anssik, dom

Meeting minutes

WebNN API TAG review closure

anssik: All TAG review issues have been addressed or have PRs in review.
… thanks everyone, it is very helpful to have TAG review done at this stage of the spec development. We may reach out to TAG again for further advice as we progress.
… Today's plan is to review the remaining PR and make decisions whether to close the issues

[tag-tracker] Define a common term for logical tensor changes?

Issue #150

PR #196

anssik: My assessment is that PR #196 by Rama did also address issue #150. Do folks agree with that?

anssik: thanks Rama for this contribution!

<ningxin_hu> +1

Rama: added an overview section to discuss and cover semantical aspects of the API.
… TAG issue refers to the fact that operators can return a shared view to a tensor, and this is mostly an implementation notion

Programming Model Overview

anssik: any concerns in closing issue #150?

[tag-tracker] Ergonomics of the JS examples

Issue #139

PR #202

anssik: PR #202 adds an introduction to the WebNN API spec that notes ML JS frameworks are primary consumers of the API
… I hope this upfront introduction will help the reader orientate oneself around the API, and reason about the API design choices made and the level of abstraction
… the section also notes there's complementary work on Model Loader API that defines a higher-level abstraction targeting primarily web developers
… any concerns in merging PR #202 and closing #139?

anssik: no concerns, will merge and close the issue

[tag-tracker] String enum for activations

Issue #138

PR #188

anssik: any further comments for issue #138 that was closed?

anssik: (none heard)

WebNN API recent new feature requests

anssik: As usual, let's briefly discuss and triage new feature requests

Request input layout and resize only on height and width for Resample

Issue #200

PR #205

anssik: Request for resample2d op that takes a 4-D tensor with layout information (nchw or nhwc) and only supports interpolation on spatial dimensions (h and w)

ningxin_hu: issue comes from implementation feedback and test perspective
… from a contributor to webnn-native project
… today we have DirectML and OpenVINO backends
… according to implementation findings WebNN ops can be only directly map to DML, not OpenVINO, only support resize and resample in spatial dimension
… I think this is a good example of implementation feedback informing spec development
… we want to be compatible with major native ML APIs
… I submitted PR for resample2d with options for resize the spatial dimensions and input layout

ningxin_hu: I'd like to request Google folks to review this from Google's API perspective

<RafaelCintron> Chai should be back from vacation on Tues.

ningxin_hu: in Android NNAPI Spec, there're two similar function ops ANEURALNETWORKS_RESIZE_BILINEAR and ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR which could resize input tensor

Change the min and max value to attributes instead of operands

<Jonathan> Sure, I'll ask the NNAPI team.

Issue #203

PR #206

anssik: as the topic says, change minValue/maxValue from MLOperand to float type
… Ningxin?

ningxin_hu: this is similar to the previous request, issue reported by webnn-native contributor from implementation perspective
… current clamp definition not mapping to some backends such as OpenVINO
… proposing to change clamp options to float instead of MLOperand so this definition maps directly and explicitly to native ML APIs
… if the framework or web app wants clamp as an operand, that is still possible, since clamp can be emulated with min and max

<Jonathan> ok

Support for configuring rounding type in pooling operations

Issue #198

anssik: This was discussed on our earlier meeting as well
… Chai provided insights re ONNX pooling support

RafaelCintron: Chai provided feedback in the issue

ningxin_hu: I think Chai's comments are good, I still need some time to work on this

TPAC 2021

Timing

Anssi: TPAC2021 is happening between Oct 18 and 29

ningxin_hu: Tue 26 Oct 2021 14 UTC
… Wed 27 Oct 2021 14 UTC
… Thu 28 Oct 2021 14 UTC (the usual slot)

Anssi: suggests re-using our regular slot, and maybe adding one or two at the same time on Tue/Wed
… will follow up with a Doodle of some sort to verify availability

Topics

Dom's TPAC guidance

Anssi: Dom explained TPAC meeting expectations in its guidance mail
… our usual biweekly meetings tend to be fairly technical discussions to make progress on the spec
… a TPAC meeting is an opportunity to take a higher level view, the bigger picture

ningxin_hu: - Rationale/criteria for adding new ops to the WebNN API
… - Versioning and web compatibility
… - How should WebNN API deal with fusion
… - ML JS framework performance, focus areas for WebNN?
… - Ethical issues in using Machine Learning on the Web

Anssi: re ops, we need an organized way to make decision on adding ops - this could make a good TPAC discussion
… re versioning, it would be good to have discussion on how versioning works (or doesn't) for the Web platform
… re fusion - this emerged from our recent discussions
… re JS framework perf - would be interesting to get benchmark results on how well WebNN is doing
… (TF.js people's input would be particularly useful)
… last, ethical issues - I've been noodling on this, would be good to have discussions on it
… any other suggestion?

jonathan: ChromeOS is quite interested in both model loader and WebNN

Jonathan: Chrome OS team interested in both Model Loader API and WebNN API and working to get perf benchmarks and security implementations

jonathan: they're running perf benchmark and security review - they might be in a position to get feedback at TPAC on their work

Jonathan: also want to get to a point to share more with this group and share code

dom: in addition to technical topics for TPAC, we might consider more of where we are, where are we going style topics, status check of the group if you will
… another thing, the week of WG meetings is the 2nd week of TPAC Oct 25-28
… before that there's TPAC breakouts week for topics that do not directly map to existing groups
… some of the topics might be interesting in that context as well
… for example versioning

RafaelCintron: couple of question to Jonathan
… what features and use cases Chrome OS would like to use Model Loader API for?
… timeline for code to be available for the group to comment on?

RafaelCintron: Jonathan, out of curiosity, what's driving the implementation in ChromeOS? any sense of the timeline when more might be shared?

jonathan: re use case, ChromeOS only run Web Apps, and having ML acceleration would be beneficial to many apps
… Model loader would be useful for a number of products that would rely e.g. on TF Lite models
… re timeline, hope is to get an OT started maybe next year, which requires the code to be open
… hope that means it will be so soon

anssi: will continue collecting ideas

Demos

Anssi: there is an opportunity to share technical demos with the broader technical community at TPAC
… I think we already have a bunch of demos available

dom: we use TPAC as a way for the community to learn what other groups are doing and also broader public
… what we are suggesting is for group to prepare short demos
… demo has two potential goals: 1) high-level illustration what the group is working on and why it matters
… e.g. why ML on the Web matters and what does it change in terms of performance
… 2) look at the intersection of WebNN with other web technologies
… e.g. WebRTC integration to run each video frame
… we may not have a such a demo, but that'd be a great discussion started with WebRTC WG

dom: we'd need demo description by Sep 15, and recorded demo by Sep 27

https://www.w3.org/wiki/TPAC2021/Demos_and_Group_updates

<ningxin_hu> webnn-samples implement bunch of webnn use cases that can run on webnn-polyfill and webnn-native: https://github.com/webmachinelearning/webnn-samples

anssik: does the demo have to be a recording?

<ningxin_hu> that could be good candidate

dom: having a link to the polyfill would be great, but it may not demonstrate full potential
… video recording of WebNN as a browser implemented primitive can be more impactful

<ningxin_hu> webnn-native could be used to demonstrate near-to-native performance

dom: demo can be a group effort from multiple people contributing

dom: contact dom for more info on demos

ningxin_hu: I'll think if we can use WebNN samples that implement a few key WebNN use cases
… there demos have a nice UI and good implementation
… these can run in existing browsers with webnn-polyfill
… also webnn-native can be used to run these demos through node.js binding in an Electron environment
… this setup might work for early demonstration and perf projection

dom: that sounds great
… explaining the impact on use cases that are enabled by hardware acceleration would be great

Joint meetings

anssik: Wasm, WebGPU, WebRTC, TAG?
… I checked these groups current plans:
… WebRTC Oct 28, 15 UTC or Oct 29, 15 UTC
… Wasm, WebGPU had not yet announced their meeting times

dom: my experience of joint meetings is to have a well prepared agenda around joint topics
… e.g. in WebRTC the question that exists there is how and when one might start using WebNN to do some of the fancy processing on audio and video transmitted by WebRTC
… what is the impact on architecture, impact on codecs etc.
… I'm not sure we have even through about this questions, if we were to organize a joint meeting with WebRTC we need to look into it

anssik: Dom can you start discussing with WebRTC WG chairs on joint meeting idea?

dom: only thing re TPAC we need to register interest to meet by the end of next week

Minutes manually created (not a transcript), formatted by scribe.perl version 136 (Thu May 27 13:50:24 2021 UTC).

Diagnostics

Succeeded: i/Subtopic: Timing/Topic: TPAC 2021

Succeeded: i/Subtopic/scribe+

Succeeded: s/abi/availabi/

Succeeded: s/cut/ctu/

Succeeded: s/TF life/TF Lite

Maybe present: Anssi, anssik, jonathan, RafaelCintron, Rama