15:00:29 RRSAgent has joined #webmachinelearning 15:00:33 logging to https://www.w3.org/2024/02/22-webmachinelearning-irc 15:00:33 RRSAgent, make logs Public 15:00:34 please title this meeting ("meeting: ..."), anssik 15:00:34 Meeting: WebML WG Teleconference – 22 February 2024 15:00:39 Chair: Anssi 15:00:50 Joshua_Lochner has joined #webmachinelearning 15:00:55 Agenda: https://github.com/webmachinelearning/meetings/blob/main/telcons/2024-02-22-wg-agenda.md 15:00:59 Scribe: Anssi 15:01:02 scribeNick: anssik 15:01:11 gb, this is webmachinelearning/webnn 15:01:11 anssik, OK. 15:01:16 asully has joined #webmachinelearning 15:01:19 Present+ Anssi_Kostiainen 15:01:31 Present+ Austin_Sullivan 15:01:31 Present+ Dwayne_Robinson 15:01:35 phillis has joined #webmachinelearning 15:01:42 Present+ Bryan_Bernhart 15:01:48 Present+ Zoltan_Kis 15:01:51 Present+ Dominique_Hazael-Massieux 15:01:53 Present+ Phillis_Tang 15:02:03 Present+ Joshua_Bell 15:02:11 Present+ Joshua_Lochner 15:02:14 dwayner has joined #webmachinelearning 15:02:16 Present+ Ningxin_Hu 15:02:25 Present+ Rafael_Cintron 15:02:35 RRSAgent, draft minutes 15:02:36 I have made the request to generate https://www.w3.org/2024/02/22-webmachinelearning-minutes.html anssik 15:02:52 Present+ Mike_Wyrzykowski 15:03:07 RafaelCintron has joined #webmachinelearning 15:03:38 MikeW has joined #webmachinelearning 15:05:19 MikeW: I represent Apple, WebGPU implementation background on Apple platform, leading WebNN/ML effort on Apple side as well 15:06:53 mwyrzykowski 15:07:03 Topic: Announcements 15:07:11 -> W3C Breakouts Day 2024 https://github.com/w3c/breakouts-day-2024/ 15:07:18 anssik: W3C Breakouts Day 2024 welcomes proposals by 29 February 15:07:28 ... breakout concept is familiar from TPAC, but now there's a separate day 15:07:37 ... in fact, an early WebNN API proposal was introduced in a breakout session at TPAC some years ago 15:07:47 ... breakouts are a good opportunity to share any new explorations with the broader community to gather feedback 15:07:53 ... if anyone has a breakout proposal in mind, simply open a GH issue in the breakouts-day-2024 repo https://github.com/w3c/breakouts-day-2024/issues 15:08:08 zkis has joined #webmachinelearning 15:08:11 q? 15:08:32 dom: in general breakouts are an opportunity to raise topics that go beyond one group's scope 15:08:44 ... typically prepare for 1 hour session with a small presentation and discussion 15:08:55 q? 15:09:04 Topic: WebNN API Candidate Recommendation Snapshot transition 15:09:35 anssik: Proposal is to initiate WebNN API CR Snapshot transition request 7 March, then publish by the end of March 15:09:45 ... let's review our CR readiness #240 15:09:45 https://github.com/webmachinelearning/webnn/issues/240 -> Issue 240 Candidate Recommendation readiness tracker (by anssiko) [process] 15:10:00 ... we're soon ready to turn all green, I have still a few areas I want to confirm with the group 15:10:03 Subtopic: Test coverage 15:10:33 anssik: my expectation is the current test coverage is considered adequate for the CR transition, 100% coverage is not expected at CR time 15:10:40 -> wpt/webnn https://github.com/web-platform-tests/wpt/tree/master/webnn 15:11:02 -> wpt.fyi https://wpt.fyi/results/webnn 15:11:58 dom: we are way beyond expectations in terms of test coverage 15:12:04 anssik: happy to hear that 15:13:14 anssik: I suggest we note in the CR transition request that wpt.fyi results reflect XNNPACK backend implementation status 15:13:30 dom: good idea to clarify that in transition request 15:14:56 Ningxin_Hu: for DirectML implementation, we have an SW adapter for WPT, some gaps for real GPU in the bots to run wpt 15:15:11 gdeepti has joined #webmachinelearning 15:15:14 dom: is this something that is being worked on and is there a timeline? 15:15:24 Present+ Deepti_Gandluri 15:15:54 Ningxin_Hu: Austin informed we want to enable GPU tests in Chromium infrastructure, not sure if anyone is working on wpt.fyi currently 15:16:46 dom: wpt.fyi in some circles is used to gauge momentum so it is useful to figure out what needs to be done to improve CI setup for WPT for DirectML 15:17:20 Ningxin_Hu: currently wpt.fyi runs Edge on Windows 10, DML backends would require Windows 11, please point a contact for wpt.fyi to work with 15:18:00 dom: wpt owners groups would be the responsible people, being clear on what is needed would be the good first step 15:19:02 anssik: can have a separate call about this 15:19:12 Subtopic: Delta wide review 15:19:18 anssik: Delta wide review tracked in #239 15:19:19 https://github.com/webmachinelearning/webnn/issues/239 -> Issue 239 Wide review tracker (by anssiko) [process] 15:19:23 ... no concerns raised 15:19:50 ... not expecting any major concerns given this is a delta review and the earlier full review passed and changes since have been either to address review feedback or adjust opset scope, improve overall spec quality 15:20:04 Subtopic: High-level status 15:20:08 -> High-level status (aka Status of this document) https://www.w3.org/TR/webnn/#sotd 15:20:15 anssik: I think we're good with this status text, merged to main, any proposals welcome 15:20:20 ... to recap this is the section busy people read, it is not inclusive of everything 15:20:31 Subtopic: Implementation status 15:20:35 -> Implementation Status https://webmachinelearning.github.io/webnn-status/ 15:20:45 anssik: Belem & co have maintained the implementation status page, it is fit for the purpose of the CR 15:21:18 thank you 15:21:52 anssik: all good to initiate transition req on March 7? 15:22:49 dom: only dangling bit is the TAG review 15:22:58 anssik: can you help bring this to their attention? 15:23:36 dom: I can try 15:24:17 Topic: Triage Guidance and Milestones 15:25:08 anssik: Next, I'd like to introduce the newly minted triage guidance and review initial triage results. Thanks Josh for working with me on this. I hope the group sees this effort as net positive 15:25:27 ... for this call, I'd like to hear if any of the issues identified as "bug", "testing", or "untriaged" (later "big issues") should be addressed by imminent CR Snapshot 15:25:40 ... for CR Snapshot purposes, we obviously are not expected to reach zero issues 15:25:46 -> Triage Guidance https://github.com/webmachinelearning/webnn/blob/main/docs/IssueTriage.md 15:26:22 jsbell: a few weeks ago we published triage guidance 15:26:36 ... since then have tried to follow the guidance 15:26:52 ... a big new label was "operator specific" with 41 issues 15:27:09 ... even if a lot of issues, the problems are scoped, not affecting the shape of the API overall 15:27:18 https://github.com/webmachinelearning/webnn/issues?page=1&q=is%3Aissue+is%3Aopen+-label%3A%22operator+specific%22+-label%3A%22opset%22+-label%3A%22use+case%22+-label%3A%22webgpu+interop%22+-label%3A%22conventions%22+-label%3A%22editorial%22+-label%3A%22process%22++-label%3A%22testing%22 15:27:23 ... important are issues that do not fit into the workstreams 15:27:32 aka "unknown unknowns" 15:27:39 s/aka/... aka 15:27:57 jsbell: some additional issue clusters includes: 15:28:06 ... - Graph construction and build steps - covers about 5 issues; we've got some active discussion from several participants narrowing in on what, where, and how to make things more precise. 15:28:23 ... - Data types and number handling, including casting, small and big ints, input validation, and so on 15:28:36 ... Dwayne has kicked off discussions with WebIDL maintainers about the path to supporting both float64 (double) and int64 (bigint) as inputs to the same method 15:29:00 ... closed 15-20 issues as part of this initial triage 15:29:21 q? 15:29:48 q? 15:29:51 ack zkis 15:30:09 zkis: thanks Josh! 15:31:00 dom: I think some groups could borrow best practices from this group for triage guidance 15:31:40 anssik: triage guidance is welcoming PRs 15:32:18 ... also new contributors to the Triage team welcome 15:32:40 Subtopic: Milestones 15:32:50 anssik: how do we want to concretely make the best use of the GH milestones feature? 15:32:54 ... there was support on our last call to adopt milestones 15:33:31 ... is a CR Snapshot a good spec milestone with an a scope that is feasible for a ~quarter worth of work? 15:33:37 q? 15:34:07 dom: CR Snapshot every 3 months would raise a question how we do wide reviews for that cadence 15:34:47 ... we want another CR Snaphot beyond the next planned one, one milestone might be the next CR Snapshot, another obvious would be "Proposed Rec", not anticipating any timelines 15:35:12 ... discussion how to integrate backends to Proposed Rec implementation experience 15:35:30 ... what should not be part of the first Rec 15:35:46 ... declaring the first victory is beneficial 15:36:49 q? 15:37:27 RafaelCintron: WebGPU group there's a concept of a milestone, Mike can confirm 15:37:43 That's right, its quite fluid however the milestones for WebGPU 15:37:50 ... criteria there is different from ours 15:39:07 MikeW: WebGPU group basically just categorizes issues to milestones based on complexity, flexibly changing from milestone to another 15:39:21 q? 15:39:55 Topic: New features 15:39:58 Subtopic: MLBuffer 15:40:39 anssik: Let's continue discussion on the proposal for a backend-agnostic storage type for WebNN operations informed by implementation experience. 15:40:39 ... I'd ask the group to pay attention to the open questions in the sub-issues and the exploration doc 15:40:42 -> MLBuffer proposal #482 15:40:42 https://github.com/webmachinelearning/webnn/issues/482 -> Issue 482 Support for device-based tensor storage objects (by bbernhar) [webgpu interop] 15:40:45 -> Creation and representing MLBuffer on XPU devices #542 15:40:46 https://github.com/webmachinelearning/webnn/issues/542 -> Issue 542 [MLBuffer] Creation and representing MLBuffer on a XPU devices (by bbernhar) [webgpu interop] 15:40:49 -> Uploading/downloading tensor data #543 15:40:49 https://github.com/webmachinelearning/webnn/issues/543 -> Issue 543 [MLBuffer] Uploading/downloading tensor data (by bbernhar) [webgpu interop] 15:40:52 -> Support for MLBuffer in graph execution #544 15:40:53 https://github.com/webmachinelearning/webnn/issues/544 -> Issue 544 [MLBuffer] Support for MLBuffer in graph execution (by bbernhar) [webgpu interop] 15:40:58 -> MLBuffer exploration doc #541 15:40:59 https://github.com/webmachinelearning/webnn/pull/541 -> Pull Request 541 Add MLBuffer exploration doc (by a-sully) [webgpu interop] 15:41:03 -> Chromium implementation https://chromium-review.googlesource.com/c/chromium/src/+/5173676 15:41:27 anssik: I'm seeing good discussion in the exploration doc 15:41:35 ... I'd like to bring for discussion Austin's proposal for refocusing MLBuffer on the following goals: 15:41:51 ... - Prove out that the MLBuffer concept is feasible to implement on all platforms, 15:42:21 ... - Prove out that MLBuffer provides meaningful performance wins for the two use cases we've identified, and 15:42:42 ... - Avoid baking in any assumptions which would preclude adopting further optimizations in the future 15:42:55 ... tentative suggestions: 15:43:12 ... - Start with the initially-proposed readBuffer() and writeBuffer() APIs as the only way to read/write data to an MLBuffer from script 15:43:13 q+ 15:43:38 ... tentative suggestions: 15:43:41 ... - Start with the initially-proposed readBuffer() and writeBuffer() APIs as the only way to read/write data to an MLBuffer from script 15:43:45 ... - Take a phased approach to supporting WebGPU <-> WebNN interop 15:43:49 ... - Punt on the following features: Buffer mapping to JS, Minimizing buffer copies for UMA systems 15:43:51 q? 15:43:58 ack asully 15:44:09 asully: thanks for taking a look at this! 15:44:34 ... I think the purpose is to make sure we get performance wins, JS buffer mapping is not so helpful because it may introduce overhead in fact 15:45:03 ... most of the discussion can happen async, but would love to get Apple's feedback on this call 15:45:05 q? 15:46:15 MikeW: I'm reading the issue now, I need to do a little bit research first 15:46:16 q? 15:47:02 Bryan: more or less we're back to where we started 15:47:19 q+ 15:47:23 ack phillis 15:47:49 Topic: Pull Requests and open issues 15:48:00 anssik: we've worked through our PR queue, so we can focus on discussing open issues based on your feedback 15:48:06 -> Open PRs https://github.com/webmachinelearning/webnn/pulls 15:48:06 -> Open issues https://github.com/webmachinelearning/webnn/issues 15:48:12 https://github.com/webmachinelearning/webnn/issues/573 15:48:13 https://github.com/webmachinelearning/webnn/issues/573 -> Issue 573 Core operator set (by philloooo) [question] [opset] 15:48:39 Subtopic: Core operator set 15:49:24 phillis: feedback from our platform teams, want to ensure we have good coverage and it is decomporable 15:49:35 ... works consistently so frameworks on top can rely on it 15:49:51 q? 15:49:52 q+ 15:49:54 ack jsbell 15:50:45 jsbell: thi has come up with StableHLO and PyTorch that have tried to move to very well defined baseline ops 15:50:50 s/thi/this 15:51:36 q+ 15:51:38 jsbell: if the higher-level op is missing they want to be able to lower to a core ops 15:51:38 q? 15:51:41 ack RafaelCintron 15:51:59 RafaelCintron: I'm willing to explore what a core op set would mean 15:52:15 ... need web developers to be able to use an expanded ops on platforms that support it 15:53:05 ... being able to do higher-level things easily seems very useful, everything should be in the spec, core and "expanded" op set 15:53:21 q+ 15:53:28 phillis: expanded op set should be in the spec, the question is whether we section the ops per core and "extended" 15:53:29 q? 15:53:44 q? 15:53:48 ack jsbell 15:53:57 https://pytorch.org/docs/main/torch.compiler_ir.html 15:54:25 q+ 15:54:27 jsbell: agree we don't want to go down to minimal set, PyTorch has settled on a core op set 15:54:28 q? 15:54:30 ack asully 15:54:58 asully: one of the key thing when we way "core op set" these are defined closely with constraints and would behave the same across platforms 15:55:29 ... the higher-level the op, more variation in implementations, e.g. LSTM 15:55:57 q? 15:56:25 Dwayne has hand up in Zoom? 15:56:38 q+ 15:56:43 q? 15:56:45 ack RafaelCintron 15:57:31 Dwayne: this is not a new concept, we haven't gone deep into this, there's primitive, aggregate, optional ops -- what does it mean to be compliant to this spec then? 15:57:49 ... I feel every complex op should be decomporable and core set should behave the same across platforms 15:58:05 ... there's wiggle room around edges, casting, truncating to zero etc. 15:58:14 s/ora/osa/ 15:58:14 ... fuzzier areas to iron out 15:58:28 ... required and optional, logically organized with a label next to them 15:58:36 q+ 15:58:42 ack asully 15:59:27 asully: to respond to Dwayne, agree ideally every op behaves the same on all platforms and we have no distinction of core and others 15:59:51 ... in reality we have different backends to TF, PT etc. with differences 16:00:28 ... for many web platform APIs you expect to run everyone, if we require every op to be supported everywhere e.g. LSTM is not implemented everywhere and would require a CPU fallback 16:00:39 ... there's room to establish clarity around this 16:00:40 q? 16:01:41 q? 16:02:33 RRSAgent, draft minutes 16:02:35 I have made the request to generate https://www.w3.org/2024/02/22-webmachinelearning-minutes.html anssik 16:13:00 s/we way/we say 16:14:26 RRSAgent, draft minutes 16:14:27 I have made the request to generate https://www.w3.org/2024/02/22-webmachinelearning-minutes.html anssik 18:05:00 Zakim has left #webmachinelearning