W3C

– DRAFT –
WebML WG Teleconference – 25 August 2022

25 August 2022

Attendees

Present
Anssi_Kostiainen, Bruce_Dai, Dominique_Hazael-Massieux, Jan_Wang, Jonathan_Bingham, Ningxin_Hu, Rafael_Cintron, Zoltan_Kis
Regrets
-
Chair
Anssi
Scribe
Anssi, anssik, dom

Meeting minutes

ghurlbot, this is webmachinelearning/webnn

<ghurlbot> anssik, OK

Meeting logistics update

anssik: Teleconferences: Given good overlap of participants across WG+CG, we plan to repurpose monthly Sydney afternoon CG slots (Wed 04:00-05:00 UTC) for WG+CG topics when there's demand. This slot will be in addition to the normal WG bi-weekly (Thu 14:00-15:00 UTC) and caters specifically to our participants from APAC time zones.

anssik: TPAC: The Web Machine Learning Working Group's hybrid TPAC meeting is canceled due to key participants' inability to attend the in-person meeting.

ningxin_hu: re the APAC-friendly meeting time being scheduled on-demand - what will be the criteria? will it be a regular event?

anssik: when the Sydney people feels the call would be useful, we should schedule such a call
… we could make it a recurring call at some point if that proves useful

WebNN API Candidate Recommendation open issues

anssik: Review and discuss the current CR issues, work out a plan to address the issues prior to the expected CR publication.

Current CR issues

anssi: beyond wide reviews, we have 5 open issues which makes me feel that we're on track

Remove the support of negative dimension values

anssik: issue #279 and PR #281

<ghurlbot> Issue 279 Remove the support of negative dimension values (huningxin) cr

<ghurlbot> Pull Request 281 Drop dynamic tensor support (huningxin)

ningxin_hu: I think we're good to merge

anssik: most recent change is the dfn of the byte length of an MLOperandDescriptor:

byte length of an MLOperandDescriptor
… this dfn is referenced from within the following algos in the spec:
… - Syncronous Execution
… - Asyncronous Execution
… - Dispatch Execution Commands

ningxin_hu: one highlight: this is based on implementation experience as we're implementing WebNN in Chromium
… this feature is not widely supported in native ML APIs we're targeting
… that's the reason we propose to drop this
… this feature can still be supported by frameworks
… they can do shape inference and support dynamic tensor at their level
… we would limit WebNN to static shapes
… that makes for a good decomposition given WebNN's role as a backend for frameworks
… WebNN Graph are made ready in two stage: compilation/build, and then compute
… when a graph is a built, it should be ready for performant compute
… if we were to support dynamic tensor shape through emulation, it would create latency in the first inference since the graph would need to be recompiled
… so this PR would help keep our design goal and align well with the role of WebNN as a backend API

Rafael: I haven't reviewed the details, but I'm supportive of the direction of removing negative offsets

Anssi: ok, so we seem to be good with merging that one and solving the CR issue

Rafael: has anyone looked at what support would look like on Mac? it would be good to include this as a data point in general

<jan-www> Hi, I'm Jan Wang, I have participated in a discussion before. I am now working in Alibaba as a front-end and machine learning engineer. Currently my main job is to build a web machine learning framework. Therefore, I am very interested in W3C's work for webNN and would like to attend your discussions in the future.

ningxin: good point - I can do more investigation on mac APIs and add the relevant information in the issue

<jan-www> Just wonder if there's any docker support for webnn-native project?

<ningxin_hu> AFAIK, no docker support at this stage

https://github.com/webmachinelearning/webnn-native/

Support asynchronous context creation

anssik: issue #272 and PR #274

<ghurlbot> Pull Request 274 Support async context creation and use sync postfix (huningxin)

<ghurlbot> Issue 272 Support asynchronous context creation (huningxin) cr

anssi: chai is not 100% happy with that design - I tried to explain some of the challenges in Web API naming

anssik: I think these considerations motivated the design (not a complete list):
… - sync version is for "non-JS developers" for bringing non-JS codebases via worker to the web, suggests async default and use sync postfix
… - no established naming convention for sync vs async Web APIs due to historical reasons, no design patterns for naming
… - some Sync suffixed Web APIs exists (FileReaderSync and WebGLSync), no Async suffixed Web APIs
… - Sync suffix matches Node.js convention

https://dontcallmedom.github.io/webidlpedia/names/

<RafaelCintron> https://gpuweb.github.io/gpuweb/#gpu-device

https://dontcallmedom.github.io/webidlpedia/members.html

Anssi: we probably need Chai to progress on this topic

Rafael: WebGPU uses an Async suffix - so this may be another parameter to consider
… in particular in light of our interest in working with WebGPU

<dom> WebGPU is the only API that seems to be using this Async suffix FWIW

Ningxin: this may be a good topic for the APAC topic, to get all the people with opinions together

Anssi: it would be useful to document more clearly the two approaches for comparison purposes
… e.g. with the 2 versions of the IDL

Ningxin: I can; only 3 APIs will be changed

Anssi: is this blocking the landing of implementation patches? presumably this can be updated quickly

Define ULP (unit of least precision) tolerances for testing

anssik: I wanted to check on this issue #265 that is a CR blocker. In Dec 2021 we decided to add ULP-based comparison for testing

<ghurlbot> Issue 265 Define ULP (unit of least precision) tolerances for Conformance testing of WebNN API (BruceDai) cr

anssik: Bruce has an open PR for w-p-t that proposes new ULP-based assertions, needs w-p-t reviewers to unblock

PR #34287 [w-p-t] Add WebNN API operations tests
… Bruce is blocked on w-p-t infra team to know whether testharness.js can be augmented with these new assertions?
… If that is not possible, can we add these assertions in the WebNN specific test suite and upstream them to testharness.js later?

<ghurlbot> Issue 34287 [not found]

PR #34287 [w-p-t] Add WebNN API operations tests

dom: easier to make assertions local to our webnn test directory
… helps with maintenance, the questions here is the right values for ULP tolerances

https://github.com/webmachinelearning/webnn/issues/265#issuecomment-1168093010

Support for int8 quantized models

anssik: we agreed this feature is in CR scope in March 2022, I want to check we're on track to deliver this feature or whether we need to course-correct

#128

<ghurlbot> Issue 128 WebNN should support int8 quantized models (wchao1115) cr

Rafael: I support bringing this feature in; we probably need to defer until Chai is available

ningxin_hu: I know that frameworks have also interest in this

jonathan: no strong opinion on this one
… definitely not opposed

dom: I wonder if anyone knows how much work this is, in the spec and implementations?

ningxin_hu: based on my experience - given existing support in native APIs, there would be several options: quantize/dequantize operations that frameworks could use within graphs
… or we could introduce this as an operand descriptor
… another important aspect is the quantization schema
… there are variants with different characteristics; we'll need to survey the existing landscape and find common ground

anssik: what would it take to go to the PR stage?

ningxin_hu: chai had mentioned that he had this on his todo list, so we should check with him

Add method steps to operations

dom: issue #210 and related issue #211

<ghurlbot> Issue 211 Define algorithms for dictionaries with lists as default values (anssiko)

<ghurlbot> Issue 210 Add method steps to operations (anssiko) cr

Anssi: Zoltan was interested in helping address this issue and upgrade WebNN to use modern spec conventions
… including using internal slots

zoltan: I'll be happy to help, bringing both spec writing and some AI research backgrounds

anssik: thanks, really happy to get your help on this!

<ningxin_hu> thanks Zoltan!

anssik: we'll expect PRs from Zoltan going forward

Wide review

#239

<ghurlbot> Issue 239 Wide review tracker (anssiko)

anssik: here's how we're doing:
… Accessibility: Review feedback received, no proposed changes
… Architecture: Review closed as completed
… Internationalization: Review feedback received, no proposed changes
… Privacy: Review feedback received, WG response provided

WG response to Privacy review
… Security: Review closed as completed

anssik: overall, we're doing great with wide review, thanks all!
… the only remaining review we should make progress with is WebGPU Working Group
… for that our plan of record is:
… Give WebGPU WG an update on the latest developments since Jan '22 as part of WebGPU wide review, introduce a plan for WebNN-WebGPU interop, consider CommandBuffer usage clarification issue #264

<ghurlbot> Issue 264 CommandBuffer usage clarification: internal, external, both? (bbernhar)

Proposed new features

l2Pool2d algorithm clarifications

#278
… comments?

<ghurlbot> Issue 278 How to define the algorithm of L2_Pool2d? (mingmingtasd)

<ningxin_hu> i can check with mingming offline

Revisit proposed new features discussed earlier

#275

<ghurlbot> Issue 275 Should MLBufferView + MLOperandDescriptor be strongly typed (as a MLTensor)? (wacky6)

#270

<ghurlbot> Issue 270 Support coordinate transformation modes for Resample2d (Honry)

dom: I think we need to address these two by CR, or confirm we can defer them without creating breaking changes down the line
… need to understand backwards compat story

Minutes manually created (not a transcript), formatted by scribe.perl version 192 (Tue Jun 28 16:55:30 2022 UTC).

Diagnostics

Succeeded: s/I thing/I think/

Succeeded: s/upgrade/upgrade WebNN to use/

Succeeded: s/dom:q?//

Maybe present: anssi, anssik, dom, jonathan, ningxin, Rafael, zoltan