13:51:34 RRSAgent has joined #webmachinelearning 13:51:34 logging to https://www.w3.org/2022/06/30-webmachinelearning-irc 13:51:42 RRSAgent, draft minutes 13:51:42 I have made the request to generate https://www.w3.org/2022/06/30-webmachinelearning-minutes.html anssik 13:53:25 Zakim, prepare meeting 13:53:25 RRSAgent, make logs Public 13:53:26 please title this meeting ("meeting: ..."), anssik 13:53:31 Meeting: WebML WG Teleconference – 30 June 2022 13:53:37 Chair: Anssi 13:53:42 Agenda: https://github.com/webmachinelearning/meetings/blob/main/telcons/2022-06-30-wg-agenda.md 13:53:46 Scribe: Anssi 13:53:50 scribeNick: anssik 13:53:54 scribe+ dom 13:54:02 Present+ Anssi_Kostiainen 13:54:06 RRSAgent, draft minutes 13:54:06 I have made the request to generate https://www.w3.org/2022/06/30-webmachinelearning-minutes.html anssik 14:00:26 Present+ Bruce 14:01:03 Present+ 14:01:24 ningxin_hu has joined #webmachinelearning 14:01:28 Present+ Ningxin_Hu 14:04:09 Topic: WebNN implementation status update 14:05:29 RafaelCintron has joined #webmachinelearning 14:05:38 Ningxin: we landed a few patches to land WebNN IDL in Chromium - the operators for Mobile.net 14:05:40 ... they've been merged 14:05:41 Present+ Rafael_Cintron 14:05:55 ... I'm now working on a patch to implement the WebNN CPU backend based on @@@ 14:06:04 s/@@@/XNNPACK 14:06:12 ... it's been reviewed by a few folks of the Chrome Team and Rafael 14:06:15 https://chromium-review.googlesource.com/c/chromium/src/+/3684745 14:06:45 ... it implements the graph building & compute functionalities on top of XNNPACK 14:06:54 ... and execute them with optimized kernels on x86 and ARM 14:07:10 ... XNNPACK support other architectures, but this patch focuses on this subset 14:07:26 ... targets both Windows and Linux 14:07:48 ... it implements the operations that landed in the previous WebIDL patch 14:08:00 ... it allows to run our image segmentation example 14:08:15 ... with @@@ speedup compared to the WASM version 14:08:35 s/@@@/~3x/ 14:08:59 RRSAgent, draft minutes 14:08:59 I have made the request to generate https://www.w3.org/2022/06/30-webmachinelearning-minutes.html anssik 14:09:26 ... with the context-based graph execution, this allows the background-thread processing for async 14:09:35 ... with the sync API restricted to workers 14:09:36 Bruce has joined #webmachinelearning 14:10:28 ... last time, we agreed to use Sync postfix for the sync (vs Async for async) - the patch uses that convention (even if it hasn't been merged in the spec yet) 14:11:15 ... the security reviewer we got on the spec is also making good suggestions on the patch to avoid overflow / underflow, enforcing safe conversions 14:11:24 ... based on an existing chromium utility 14:11:47 ... also suggested a fuzzer to test the graph building & computing 14:12:04 ... which sounds good and will be added to my todo 14:12:38 ... Rafael mentioned that the CPU backend could run in the renderer process to avoid IPC 14:12:52 ... which this patch is doing and provides good speedup (3x) 14:13:06 ... works very well on Windows, but some issues on linux 14:13:21 ... XNNPACK requires CPU info for optimization 14:13:37 ... which is restricted in the linux sandbox 14:13:54 ... there are workarounds I have proposed, but this will likely need a more sophisticated solution 14:14:03 ... or modify XNNPACK to work better with the linux sandbox 14:14:14 q+ 14:14:25 q? 14:14:28 ack dom 14:14:37 dom: thanks for the update, congrats! 14:14:42 Great progress, Ningxin! 14:14:49 ... I'm impressed by 3x speedup 14:14:56 ... is it Wasm with SIMD? 14:15:09 ningxin_hu: yes 14:15:27 dom: did you get a sense where we get this acceleration from? 14:15:34 ningxin_hu: major thing is SIMD width 14:15:56 ... SIMD 128 bits, but XNNPACK can select what is the best available on the platform, 256 bit on my test platform 14:16:03 ... that gives good performance boost 14:16:43 ... there may be also other instruction-level optimizations that helped 14:17:34 ... this is very close to native performance, ~80-90% 14:18:05 q? 14:18:06 q+ 14:18:20 q+ to suggest a recorded demo/update for TPAC 14:18:28 ack RafaelCintron 14:18:51 RafaelCintron: question, is the CL you have up today, is it complete implementation of WebNN of a start of more CLs? 14:18:56 RafaelCintron: is the patch a complete implementation of WebNN or just a start? 14:19:08 Ningxin: it's a start but provides complete support for mobilenet v2 14:19:27 ... (needs 8 operators that are supported in this patch) 14:19:38 Present+ Raviraj_Pinnamaraju 14:21:01 Rafael: no dependency on WebNN native - will that be necessary in the future? 14:21:10 Ningxin: that will depend on feedback from the chrome reviewers 14:21:21 ... WebNN native is a tool we use to evaluate multiple backend implementations 14:21:25 ... and OS API capabilities 14:21:51 ... it supports a wide range of APIs, but not all APIs are suitable for Chrome integration given its deployment model or other restrictions 14:22:07 ... we select the backends that are suitable for chrome integration - here XNNPACK 14:22:19 ... which allows to reduce the WebNN native code that is needed 14:22:38 ... so most likely WebNN native won't be used as a whole 14:22:42 ... XNNPACK is for CPU only 14:22:55 ... for GPU, we would look at upstreaming the DirectML backend 14:23:05 ... GPU will require IPC, so we're looking into this 14:23:16 ... which is part of our next steps 14:23:23 s/IPC/Mojo-based IPC 14:23:45 RafaelCintron: do you anticipate for other things like GPU backend, you would do the same approach of copy & pasting from WebNN Native? 14:24:02 ningxin: right, although the code may diverge based on Chrome reviewers 14:24:04 q? 14:24:07 ack dom 14:24:07 dom, you wanted to suggest a recorded demo/update for TPAC 14:24:33 dom: wanted to suggest a recorded demo/update for TPAC 14:24:53 ... ~parity with native would be a nice story 14:25:26 ... re TPAC, wrapping what has been done in real-time processing integration into a demo might be another concrete demonstration of the impact of the work 14:25:38 ningxin: good idea 14:26:05 ... this would show progress from last year demo based on electron+node 14:26:23 RRSAgent, draft minutes 14:26:23 I have made the request to generate https://www.w3.org/2022/06/30-webmachinelearning-minutes.html anssik 14:26:25 ... for the GPU, we have a good demo 14:27:00 ... based on integration as a third party, different from what we're doing through this patch 14:27:17 ... incl a different IPC mechansim 14:28:05 dom: to be clear, if we are doing a demo based on unreleased code, that's perfectly OK 14:28:52 ... if it'd be repackaging the demos produced earlier that's OK too, the goal is to show what we're doing, prototype code is fine and valuable 14:29:11 q? 14:29:20 Topic: Privacy review request for PING 14:29:32 #276 14:29:50 ghurlbot, this is webmachinelearning/webnn 14:29:53 #276 14:30:11 -> [PROPOSED] Privacy review request https://github.com/webmachinelearning/webnn/issues/276 14:31:13 anssik, OK 14:31:18 https://github.com/webmachinelearning/webnn/issues/276 -> #276 14:31:19 https://github.com/webmachinelearning/webnn/issues/276 -> #276 14:31:39 #271 14:31:40 https://github.com/webmachinelearning/webnn/issues/271 -> Pull Request 271 Privacy Considerations refresh (anssiko) 14:33:23 anssik: any concern with merging #271? 14:33:54 ... will merge; we'll continue refining privacy considerations even after the review request has been submitted 14:34:14 PROPOSED RESOLUTION: merge #271 and submit updated privacy review request 14:34:21 RESOLUTION: merge #271 and submit updated privacy review request 14:34:28 Topic: Ethical Principles for Web Machine Learning Draft Note 14:34:57 anssi: the first draft note of our ethical principles for Web Machine Learning has been published 14:34:57 https://lists.w3.org/Archives/Public/public-webmachinelearning-wg/2022Jun/0007.html 14:35:18 ... this has been a cross-group & cross-disciplinary effort, based on our charter commitment 14:35:26 ... happy to have reached that initial milestone 14:35:53 Topic: WebNN API Candidate Recommendation issue scope 14:36:11 Subtopic: Current CR issues 14:36:16 -> Current CR issues https://github.com/webmachinelearning/webnn/issues?q=is%3Aissue+is%3Aopen+label%3Acr 14:36:28 anssik: new "cr" issue #272, discussed later today 14:36:29 https://github.com/webmachinelearning/webnn/issues/272 -> Issue 272 Support asynchronous context creation (huningxin) cr 14:36:37 ... remove "cr" from issue #226 per our resolution: 14:36:37 https://github.com/webmachinelearning/webnn/issues/226 -> Issue 226 Integration with real-time video processing (dontcallmedom) 14:36:44 -> https://www.w3.org/2022/06/16-webmachinelearning-minutes.html#r02 RESOLUTION: In response to real-time video processing #226, Ningxin to open new issues for WebGPU and WebCodec WebNN interop issues and remove "cr" label from #226 once done 14:38:01 ... should we label #264 as "cr"? 14:38:01 https://github.com/webmachinelearning/webnn/issues/264 -> Issue 264 CommandBuffer usage clarification: internal, external, both? (bbernhar) 14:38:24 q+ 14:38:27 ack ningxin_hu 14:39:04 ningxin_hu: #264 is related to WebGPU interop, which WebGPU has labeled as post-v1 for WebGPU 14:39:09 ningxin_hu: this issue is related to WebGPU interop, and as discussed before, WebGPU interop is post-V1 for WebGPU WG so adding this to our "cr" scope would add a schedule risk for our CR 2022 plan 14:39:10 ... which creates risk for our schedule 14:39:14 q+ 14:39:25 ack dom 14:39:51 dom: making sure we understand the impact, we're going to do CR without GPU? 14:40:05 q+ 14:40:33 ningxin_hu: GPUCommandEncoder would be out of CR scope, but standalone GPU usage via MLDeviceType would be in scope 14:40:35 q? 14:40:53 dom: real-time processing use case would be out of scope for CR? 14:41:03 ningxin_hu: right, because it'd need WebGPU interop 14:41:07 ack RafaelCintron 14:41:46 RafaelCintron: question, if we remove WebGPU interop from the scope for CR, the only thing web developer can do with GPU is to use ArrayBuffers? 14:41:51 ningxin_hu: correct 14:41:55 Rafael: if we remove from WebGPU interop from the spec for CR, that would mean the only thing a dev can do with WebGPU is send and get back ArrayBuffer with WebNN mediating exchange with the GPU 14:42:20 RafaelCintron: for CR there would be no IDL types for GPUBuffer or GPUTexture 14:42:52 q+ 14:43:32 ningxin_hu: right, those are supported by CommandEncoder interface, so we try to make a clear separation between ArrayBuffer input/output and WebGPU primitives 14:44:02 RafaelCintron: I'm trying to understand if CommandEncoder is in scope 14:44:20 q? 14:44:57 anssi: the CR scope kind of says "feature complete" 14:45:22 ... to move from CR to the next stage, it's useful if the scope hasn't changed 14:45:37 q? 14:45:39 ack dom 14:46:43 dom: whether this means moving things out of the spec for CR, should we split the spec for CPU and GPU that'd advance at a different pace 14:47:48 ... when we go from CR to the next stage PR we are expected to have independent separate implementations 14:48:32 ... having real-time processing use case in scope of the WebNN would help drive interest among a broader group of implementers 14:49:01 Rafael: I personally feel that the WebGPU interop needs a bit more discussion & implementation experience 14:49:41 dom: revising a CR is easier today that it was before 14:50:43 ... need to do wide review update but I don't expect changes delta to have many implications re these review 14:51:47 anssik: indeed, with the new process, updating CR is much cheaper 14:51:57 ... might require new reviews in some cases 14:52:22 rafael: would it be getting back the same reviews as the ones we're conducting? 14:52:40 anssi: reviews of the delta, and if the said delta impacts the said review from our perspective 14:52:48 ... which for WebGPU interop might be very limited 14:52:49 q? 14:53:26 rafael: let's pretend we get updated TAG & PING reviews, we go to CR and make impacting changes, the same people would be involved in the updated reviews? 14:53:33 anssi: right 14:54:06 ... with different expectations (probably not as big changes expected from that point on) 14:54:14 q? 14:54:48 Subtopic: Support asynchronous context creation 14:54:59 anssik: A new "cr" issue for asynchronous context creation: #272 14:55:00 https://github.com/webmachinelearning/webnn/issues/272 -> Issue 272 Support asynchronous context creation (huningxin) cr 14:55:05 ... and an accompanying PR #274 by Ningxin in review, awaits Chai 14:55:06 https://github.com/webmachinelearning/webnn/issues/274 -> Pull Request 274 Support async context creation and use sync postfix (huningxin) 14:55:29 q? 14:55:36 Subtopic: Forward-looking use cases 14:55:42 anssik: Use cases #207 and #253 proposed to be redirected to the proposals repo 14:55:43 https://github.com/webmachinelearning/webnn/issues/253 -> Pull Request 253 Add "Ethical Content Filtering" use case to WebNN specs (humeranoor) 14:55:43 https://github.com/webmachinelearning/webnn/issues/207 -> Pull Request 207 Update "Performance Adaptation" use case (spshin3) 14:55:52 ... Humera confirmed this approach sounds good, Sungpil Shin indicated he's been busy and will look into this once back in the office 14:56:08 ... the implication for the WebNN API spec would be these use cases are considered out of scope for CR and as such do not impose new requirements for the API 14:56:25 q? 14:56:28 Topic: CommandBuffer usage clarification 14:56:28 q+ 14:56:36 s/Topic: CommandBuffer usage clarification// 14:56:37 ack ningxin_hu 14:57:14 ningxin_hu: just checked the issue, we missed w-p-t 14:57:23 #240 14:57:23 https://github.com/webmachinelearning/webnn/issues/240 -> Issue 240 Candidate Recommendation readiness tracker (anssiko) 14:58:15 #265 14:58:15 https://github.com/webmachinelearning/webnn/issues/265 -> Issue 265 Define ULP (unit of least precision) tolerances for Conformance testing of WebNN API (BruceDai) 14:58:44 RRSAgent, draft minutes 14:58:44 I have made the request to generate https://www.w3.org/2022/06/30-webmachinelearning-minutes.html anssik 14:58:51 Bruce: I have a proposal to define ULP tolerances 14:59:12 ... I have these in a WPT PR for 8 operations 14:59:26 anssik: chai would have an expert opinion on this one 14:59:50 q? 15:00:14 ... WPT is otherwise an expectation for CR, but we don't have to have 100% coverage either 15:00:16 propose to label wpt related issues with "cr" 15:00:58 Topic: CommandBuffer usage clarification 15:01:10 anssik: Discuss on how to address the WebGPU resource usage and sharing issues in preparation for the WebGPU WG review. 15:01:20 ... discussed this on 2022/06/02 call, we missed Chai's input last time due to vacation so revisiting 15:01:35 ... still on vacation, so propose we skip this again 15:01:46 ... next steps would be to create a PR and ask Bryan to review 15:01:54 -> 2022/06/02 minutes https://www.w3.org/2022/06/02-webmachinelearning-minutes.html#t02 15:02:19 Topic: Proposed new features 15:02:25 #275 15:02:25 https://github.com/webmachinelearning/webnn/issues/275 -> Issue 275 Should MLBufferView + MLOperandDescriptor be strongly typed (as a MLTensor)? (wacky6) 15:02:29 #270 15:02:30 https://github.com/webmachinelearning/webnn/issues/270 -> Issue 270 Support coordinate transformation modes for Resample2d (Honry) 15:02:33 #269 15:02:34 https://github.com/webmachinelearning/webnn/issues/269 -> Issue 269 Define the data type of the padding, strides and dilations of MLConv2dOptions as sequence (miaobin) 15:02:42 Topic: TPAC 2022 15:02:50 -> W3C TPAC 2022 https://www.w3.org/2022/09/TPAC/ 15:02:55 -> WebML WG Hybrid Meeting at TPAC 2022 https://github.com/webmachinelearning/meetings/issues/20 15:03:16 anssik: TPAC 2022 takes place 12–16 September 2022 15:03:34 anssik: "This event brings together W3C technical groups, the Advisory Board, the Technical Architecture Group and the Advisory Committee for exciting, coordinated work. The benefit of assembling the community for thought-provoking discussions is invaluable." 15:03:51 -> WebML WG Hybrid Meeting at TPAC 2022 https://github.com/webmachinelearning/meetings/issues/20 15:04:00 ... WebML WG meets 13 Sep 2022 15:00 UTC - 18:00 UTC 15:04:11 ... Tentative ML & Ethics workshop sessions: Mon 12 & Thu 15 Sep 2022 afternoon(?) Vancouver time 15:04:15 ... In-person hub: 15:04:20 ... Sheraton Vancouver Wall Centre 15:04:24 ... Vancouver British Columbia, Canada 15:04:33 ... I'm hearing the remote experience will be dramatically improved from earlier years 15:04:53 ... If you're planning to join in-person and willing to share your plans, it might help others decide their participation mode 15:05:40 Rafael: I'm not sure what our plans are will need to talk with Travis who's our W3C AC rep 15:06:12 ... questions about TPAC? 15:06:26 Topic: AOB 15:06:31 Subtopic: Next teleconference 11 August 2022 15:07:02 anssik: We'll pause the meetings for July due to vacation period in the Northern hemisphere and will resume 11 August 2022. 15:07:19 ... Have a relaxing vacation to whom it concerns! 15:07:26 ... and as usual, GH repos remains open for your contributions. 15:07:51 ... we've made substantial progress during the first half of 2022 and have very exciting milestones ahead of us in the second half of 2022! 15:08:10 RRSAgent, draft minutes 15:08:10 I have made the request to generate https://www.w3.org/2022/06/30-webmachinelearning-minutes.html anssik 15:08:32 RRSAgent, draft minutes 15:08:32 I have made the request to generate https://www.w3.org/2022/06/30-webmachinelearning-minutes.html anssik 15:11:38 AramZS has joined #webmachinelearning 16:29:40 AramZS has joined #webmachinelearning 17:04:56 Zakim has left #webmachinelearning 19:04:38 AramZS_ has joined #webmachinelearning