13:57:02 RRSAgent has joined #webmachinelearning 13:57:06 logging to https://www.w3.org/2023/05/25-webmachinelearning-irc 13:57:08 RRSAgent, make logs Public 13:57:09 please title this meeting ("meeting: ..."), anssik 13:57:11 Meeting: WebML WG Teleconference – 25 May 2023 13:57:15 Chair: Anssi 13:57:20 Agenda: https://github.com/webmachinelearning/meetings/blob/main/telcons/2023-05-25-wg-agenda.md 13:57:24 Scribe: Anssi 13:57:34 scribeNick: anssik 13:57:35 ghurlbot, this is webmachinelearning/webnn 13:57:35 anssik, OK. 13:57:40 Present+ Anssi_Kostiainen 13:57:44 RRSAgent, draft minutes 13:57:45 I have made the request to generate https://www.w3.org/2023/05/25-webmachinelearning-minutes.html anssik 13:59:41 Regrets+ Dom 14:00:06 zkis has joined #webmachinelearning 14:01:03 ningxin_hu has joined #webmachinelearning 14:01:06 Present+ Zoltan_Kis 14:01:17 Present+ Ningxin_Hu 14:06:13 Present+ Vivek_Sekhar 14:06:54 RafaelCintron has joined #webmachinelearning 14:08:30 Vivek: Joined this WG recently, PM on Chrome Web Platform team, worked on WebGPU, Skia, etc. compute shaders, Wasm 14:08:49 ... super excited to support developer-created models inside the browser! 14:08:50 Present+ Rafael_Cintron 14:10:01 vsekhar has joined #webmachinelearning 14:12:48 RRSAgent, draft minutes 14:12:50 I have made the request to generate https://www.w3.org/2023/05/25-webmachinelearning-minutes.html anssik 14:14:36 Topic: WebNN - WebIDL and Infra standard conventions 14:14:56 anssik: We'll review the open PRs to prep for an upcoming stylistic update that will follow. 14:15:03 Subtopic: The computeSync and computeAsync algorithms 14:15:07 anssik: issue #316 and PR #329 14:15:07 https://github.com/webmachinelearning/webnn/issues/316 -> Issue 316 Review sync vs async compute differences (zolkis) Editorial 14:15:08 https://github.com/webmachinelearning/webnn/issues/329 -> Pull Request 329 Rework the sync async algorithms based on PR 323 (zolkis) 14:15:21 ... ready to merge once we receive Chai's review 14:15:33 ... reviewed by Ningxin, Jiewei, Anssi 14:15:56 Zoltan: this PR factors out common parts to sync and async parts, purely editorial, Ningxin checked for correctness 14:16:15 q? 14:16:27 Subtopic: The batchNormalization algorithm 14:17:06 anssik: issue #334 and PR #339 14:17:06 https://github.com/webmachinelearning/webnn/issues/334 -> Issue 334 Improve batchNorm (zolkis) Editorial 14:17:06 https://github.com/webmachinelearning/webnn/issues/339 -> Pull Request 339 Fix #334: Improve the batch norm algorithm (zolkis) 14:17:06 ... re-review requested from Ningxin and Chai. 14:17:06 ... Changes in this PR: 14:17:13 ... - add missing prose for MLBatchNormalizationOptions members: scale, bias, axis, epsilon, acivation 14:17:20 ... - editorial tweaks in Arguments section 14:17:29 ... - add The batchNormalization() method steps 14:17:56 -> diff https://pr-preview.s3.amazonaws.com/webmachinelearning/webnn/339/9774d49...zolkis:0eea13e.html 14:19:12 Zoltan: this PR is an example on how to factor out options and dictionary, ground rules for every PR from now on, feedback to have only this change, I rewrote this section initially, but then reverted to the original wording and add just the delta and defer other changes to other PRs 14:19:17 ... all this has been done 14:19:56 q? 14:19:58 received the notice, will review 14:20:05 anssik: thanks! 14:20:15 Subtopic: The clamp algorithm 14:20:20 anssik: issue #347 and PR #348 14:20:20 https://github.com/webmachinelearning/webnn/issues/347 -> Issue 347 Add the clamp() algorithm (zolkis) Editorial 14:20:20 https://github.com/webmachinelearning/webnn/issues/348 -> Pull Request 348 Add the clamp() algorithm (zolkis) 14:20:38 ... review requested from Ningxin and Chai 14:20:46 ... 1 change was requested by Chai to remove "This step does not execute the clamp operation yet..." note 14:20:57 ... addressed by Zoltan by removing the note 14:21:01 ... Changes in this PR: 14:21:14 ... - Add "check clamp options" steps 14:21:14 ... - Minor editorial tweaks in Arguments section 14:21:19 ... - Add The clamp() method steps 14:21:58 Zoltan: polymorphic function, along with constant() and input(), the first PR that got tagged by Dom on how to do polymorphic 14:22:15 ... folks to look the steps they look good, I checked the implementation for this and hope all is good 14:22:26 ... ready for merging 14:22:30 q+ 14:23:21 ack ningxin_hu 14:24:06 ningxin_hu: question about the algorithm used by this PR, it looks like all deps not included in this PR? Copy operand and create MLOperand steps but I cannot see these defined in this PR. 14:24:50 Zoltan: if you see any missing algoritms you'll find them in PR #337 that is marked as draft, it includes all the dependencies 14:24:51 https://github.com/webmachinelearning/webnn/issues/337 -> Pull Request 337 Add internal slots to MLOperand and MLActivation (zolkis) 14:25:38 Zoltan: I'll add any missing dependencies to that PR 14:25:38 Subtopic: The concat algorithm 14:25:38 anssik: meta issue #210 and PR #366 14:25:38 https://github.com/webmachinelearning/webnn/issues/366 -> Pull Request 366 Add the concat algorithm (zolkis) 14:25:38 https://github.com/webmachinelearning/webnn/issues/210 -> Issue 210 Use modern WebIDL and Infra standard conventions (anssiko) enhancement, Editorial 14:25:43 ... 1 change requested by Chai to adjust the note in one of the concat() substeps 14:25:49 ... updated the note per Chai's suggestion to the following: 14:25:52 ... "If the shape of each corresponding dimension and type of the operands, except for those of the dimension given by axis, is not the same, fail." 14:26:07 ... final review requested from Chai and Ningxin for the PR that addresses all feedback 14:26:45 Zoltan: I will re-check the dependencies after the meeting and will add them here if something is missing 14:27:32 anssik: the stylistic PR would be up for review after these 4 PRs have been merged 14:28:04 Zoltan: correct, we'll then have collapsible algorithms, some other visual cues 14:28:34 [I've filed https://github.com/w3c/AB-public/issues/82 ] 14:29:08 I'll review the three PRs in the following days 14:29:15 anssik: thanks! 14:29:16 Topic: New features 14:29:23 Subtopic: Float16Array 14:29:31 anssik: issue #373 and PR #386 14:29:32 https://github.com/webmachinelearning/webnn/issues/373 -> Issue 373 heads up re: proposal to add Float16Array to JavaScript (bakkot) v2 14:29:33 https://github.com/webmachinelearning/webnn/issues/386 -> Pull Request 386 Add float16 to MLOperandType and ArrayBufferView compatibility table (anssiko) 14:29:41 s|[I've filed https://github.com/w3c/AB-public/issues/82 ]| 14:29:45 ... summary: Float16Array design finished, ready to integrate into WebNN 14:30:19 ... ECMA folks let us know that the proposal to add Float16Array to JavaScript reached stage 3, meaning the design is finished, the committee is in favor, and engines can start implementing and shipping it. 14:30:35 ... I updated PR #386 to align with this new reality that allows us to add this type as a normative reference to the WebNN spec proper 14:30:47 ... concretely we're adding a new line to the MLOperandType and ArrayBufferView compatibility table: 14:30:51 ... MLOperandType float16 14:30:56 ... ArrayBufferView Float16Array 14:31:04 q+ 14:31:20 ... also added is the following note that documents the current status of Float16Array, its emulation path via Uint16Array and links to issue #373 that says: 14:31:25 ... "Float16Array is at ECMA Stage 3 signalling its design is finished. Implementers wanting to enable this type ahead native implementations can emulate the type by passing raw bits via Uint16Array. [Issue webnn#373]" 14:31:25 https://github.com/webmachinelearning/webnn/issues/373 -> Issue 373 heads up re: proposal to add Float16Array to JavaScript (bakkot) v2 14:31:32 q? 14:31:36 ack RafaelCintron 14:32:15 RafaelCintron: I think it is great that we have Float16Array, I'd like to point it takes some time it will get into implementations proper 14:32:54 anssik: do you support the addition of this into WebNN API spec? 14:33:12 RafaelCintron: yes, full support 14:34:02 ... this small PR is ready for review by Chai and Ningxin, anyone else 14:34:18 ... this received thumbs up support from Dwayne and ECMA folks were excited to hear WebNN is an early adopter of Float16Array 14:34:22 RRSAgent, draft minutes 14:34:23 I have made the request to generate https://www.w3.org/2023/05/25-webmachinelearning-minutes.html anssik 14:34:45 q? 14:35:06 Subtopic: 0D scalars 14:35:15 anssik: issue #390 opened by Dwayne (thanks!) 14:35:15 https://github.com/webmachinelearning/webnn/issues/390 -> Issue 390 0D scalars (fdwr) 14:35:21 ... zero-dimension scalars 14:35:42 ... Per Dwayne this arose during prototyping additional models and during Chromium code review and ORT review 14:36:07 ... please check the issue, the issue is well described in there 14:36:23 ... the proposed fix is a small one, delete the following line in https://www.w3.org/TR/webnn/#api-mloperand-create check dimensions steps: 14:36:33 ... "2. If dimensions.length is 0, return false." 14:36:42 RRSAgent, draft minutes 14:36:44 I have made the request to generate https://www.w3.org/2023/05/25-webmachinelearning-minutes.html anssik 14:36:51 q+ 14:36:51 ack ningxin_hu 14:37:01 ningxin_hu: this is a good one, I have two open questions 14:37:51 ... today we have way to define the scalar: MLOperand for dimensions, if not present, descriptor represents scalar 14:38:30 ... zero-dimension would be a better way, this change the optional dimensions field of this MLOperand 14:39:07 Zoltan: makes sense 14:39:51 ningxin_hu: second open question related to XNNPACK implementability 14:40:43 ... I'm working on XNNPACK impl in Chromium so can work with Jiawei to take this investigation 14:40:46 anssik: thanks! 14:41:09 q? 14:41:13 will provide inputs in the issue 14:41:37 Topic: Enhancements, editorials, questions 14:41:49 Subtopic: Error handling of MLNamedArrayBufferViews transfer algorithm 14:41:53 anssik: issue #351 14:41:53 https://github.com/webmachinelearning/webnn/issues/351 -> Issue 351 Need to define error handling of MLNamedArrayBufferViews transfer algorithm (huningxin) 14:42:04 ... we discussed this issue on our last meeting and since then Domenic reviewed the proposal and confirmed the proposed solution should work 14:42:15 ... as part of the solution we'd need an algorithm to "check if an ArrayBuffer is detachable" 14:42:29 ... this could be upstreamed to Web IDL spec, Domenic was welcoming such contribution 14:43:14 ningxin_hu: thanks Rafael for proposing this issue! 14:43:33 ... we can implement this either in WebNN or upstream WebIDL spec 14:43:56 ... ideally we'd upstream this to WebIDL 14:44:19 ... I'd be happy if someone who is familiar with WebIDL spec to do that 14:45:08 q? 14:45:43 anssik: any opens regarding the design? 14:45:58 ningxin_hu: no other comments 14:46:18 Subtopic: Remove the support of null value in newShape parameter of reshape build method 14:46:21 anssik: issue #388 14:46:22 https://github.com/webmachinelearning/webnn/issues/388 -> Issue 388 Remove the support of `null` value in `newShape` parameter of `reshape` build method (huningxin) 14:46:38 ... Ningxin explains: "WebNN reshape op build method currently supports a special null value in newShape array that instructs the implementation to compute the size of the dimension with the value null so that the total size remains constant." 14:47:20 ... Dwayne's proposal: "WebNN should only support the concrete values in newShape because this can be easily handled by framework through shape inference." 14:47:29 ... LGTM from Jiewei and Dwayne 14:47:54 anssik: we have a solution, right? 14:48:06 ningxin_hu: this is great feedback from implementers! thanks! 14:48:19 ... editor's view is this is good 14:48:47 ... in WebNN graph all shapes are static and can be inferred when compiled 14:49:29 ... this is a little helped for the developer, OTOH this calculation can be easily done by the developer 14:50:05 ... this makes this little helped in impl less valuable, Jiawei thinks this calculation is less valuable for the developer and from implementer's perspective increases the complexity yet is not so commonly used 14:50:25 ... so makes sense to remove support for this, make WebNN new shape concrete and static 14:51:06 ... another perspective is if we look at WebNN progress, conventions for axis etc. can be more concrete, also reduces complexity of implementation 14:51:32 ... if we make this change we can bring more consistency to the spec 14:51:44 ... I support this direction 14:52:29 q? 14:52:44 RRSAgent, draft minutes 14:52:45 I have made the request to generate https://www.w3.org/2023/05/25-webmachinelearning-minutes.html anssik 14:52:57 Subtopic: Support for transformers 14:53:06 anssik: issue #375 14:53:06 https://github.com/webmachinelearning/webnn/issues/375 -> Issue 375 Support for transformers (dontcallmedom) v2 14:53:46 ... continuing our discussion on support for transformers initiated by W3C AC review comment 14:54:06 ... we've received fantastic feedback from Joshua who created Transformers.js (thanks!) 14:54:18 https://github.com/webmachinelearning/webnn/issues/375#issuecomment-1560785639 14:55:32 anssik: I had a discussion with Joshua and he will join our next call on 8th of June to contribute his insights to inform this WebNN v2 features discussion 14:55:51 ... on our next meeting I expect Joshua to talks about Transformers.js supported tasks, planned future tasks, discuss limitations and learnings, use cases that motivated the creation of Transformers.js 14:56:34 ... I'm confident that with this feedback we are well informed to recognize transformers in the WebNN use cases to fulfill the original request in this issue #375 and initiate the concrete spec work to bridge the gap in this regard, in op support 14:57:01 ... I'm also aware of other related work such as the Dwayne's prototyping to get Stable Diffusion running on a Chromium WebNN implementation 14:57:10 ... I expect this effort to similarly inform what additional ops we should consider adding to WebNN v2 14:57:30 ... SegmentAnything from Meta with its first featurization transformer block may also provide relevant insights to inform our WebNN v2 feature work 14:58:03 q? 14:58:31 anssik: is Stable Diffusion, SegmentAnything, Transformers.js/HuggingFace's a good start for this investigation? 14:59:36 this list is a good start 14:59:48 Rafael: this is great, we should definitely consider them! 15:01:42 Vivek: re timezones, this timeslot works well for me I'm on the East Coast 15:04:11 RRSAgent, draft minutes 15:04:12 I have made the request to generate https://www.w3.org/2023/05/25-webmachinelearning-minutes.html anssik 15:30:37 <\join_torontomayors> \join_torontomayors has joined #webmachinelearning 16:58:33 Zakim has left #webmachinelearning