IRC log of webmachinelearning on 2024-02-22

Timestamps are in UTC.

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