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.
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://
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://
<RafaelCintron> https://
https://
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
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://
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