13:58:29 RRSAgent has joined #webmachinelearning 13:58:29 logging to https://www.w3.org/2019/08/22-webmachinelearning-irc 13:58:34 Zakim has joined #webmachinelearning 13:58:39 RRSAgent, make logs public 13:58:50 Meeting: WebML CG Teleconference – 22 August 2019 13:58:52 Chair: Anssi 13:58:57 Agenda: https://github.com/webmachinelearning/meetings/blob/master/telcons/2019-08-22-agenda.md 13:59:09 Scribe: Anssi 13:59:17 scribeNick: anssik 13:59:27 present+ Greg_Whitworth 14:00:02 Ningxin_Hu has joined #webmachinelearning 14:00:16 Present+ Anssi_Kostiainen 14:00:21 Present+ Ningxin_Hu 14:00:23 Present+ Ningxin_Hu 14:00:31 Present+ Jonathan_Bingham 14:01:29 Jonathan has joined #webmachinelearning 14:01:30 tomayac has joined #webmachinelearning 14:01:50 Present+ Kai_Ninomiya 14:02:23 Present+ Thomas_Steiner 14:03:34 RRSAgent, draft minutes v2 14:03:34 I have made the request to generate https://www.w3.org/2019/08/22-webmachinelearning-minutes.html anssik 14:03:57 daniel_smilkov has joined #webmachinelearning 14:04:28 Present+ Nikhil_Thorat 14:04:32 Present+ Daniel_Smilkov 14:04:37 TOPIC: Define the set of operations and their specification 14:04:48 Nikhil has joined #webmachinelearning 14:04:51 -> https://github.com/webmachinelearning/webnn/issues/17 Define the set of operations and their specification 14:05:00 anssik: let's discuss the ops compatibility study status with Daniel and Nikhil lead 14:05:08 grama has joined #webmachinelearning 14:05:09 -> https://github.com/webmachinelearning/webnn/issues/17#issuecomment-512651711 14 ops in scope of the study 14:05:32 Nikhil: still in planning phase, will start looking at this early next week 14:06:30 anssik: on our last call we agreed to create an ONNX namespace for WebNN ops and to define a process for adding to that 14:08:25 gregwhitworth: we started a conversation around this with rama 14:09:01 rama: ideally ONNX ops namaspace should be updated to reflect any extensions, with different op definition there's a risk of branching 14:10:23 daniel_smilkov: want to understand ONNX namespaces, understanding was ns is a subset of ops tied to a certain version 14:11:46 rama: namespaces are like in any other language, way to organize ops into groups, can be used to group ops for a certain purpose, but in terms of standardization whenever there's existing namespace propose use existing ones 14:12:31 Nikhil: to resolve diff between TF Lite and ONNX Lite needs to change ONNX ops spec 14:12:50 Rama: we can do that extension to whatever namespace it currently is in 14:13:18 gregwhitworth: outside the issue, you identified a set of operations, is there another reason to have an ONNX namespace 14:13:44 daniel_smilkov: we grow the namespace slowly, so want to have a mechanism to do that 14:14:01 gregwhitworth: ONNX namespaces probably are not the best way to address that issue 14:14:19 ... example: in CSS we've had similar issue with referencing Unicode spec 14:14:48 ... in the WebNN spec we reference directly the ops in the ONNX not the namespace 14:14:52 daniel_smilkov: that makes sense 14:15:34 daniel_smilkov: as long as we're able to change an operation, in result of this spec and the change gets done in ONNX we'd be fine 14:15:47 ... when an op changes, how ONNX deals with backwards compat? 14:16:11 rama: the specs have version numbers associated with them, currently at v10 or v11 14:16:50 ... in terms of runtime supporting this the expectation is the runtime supports the most recent ops, opsets are a collection of ops 14:19:48 Nikhil: another proposal, if we don't spec format at all, allows more portable code across browser, different channel layouts 14:20:42 ... how to resolve backwards compat in a situation where something gets removed from ONNX op? 14:21:29 Rama: layout is only semantics of the op, you cannot get away without specifying the dimensions 14:22:01 daniel_smilkov: our question is more abstract: what if we need to make a backwards incompatible change? 14:22:18 ... we need mechanisms that allow us to do that in the context of the WebNN 14:22:57 Rama: ONNX namespace would allow us to do that, another one is to use attributes 14:23:20 gregwhitworth: propose to create an issue and more discussion there 14:25:12 PROPOSED RESOLUTION: Investigate background compatibility of initial set of ops 14:25:40 RESOLUTION: Investigate background compatibility of the initial set of ops 14:25:51 RRSAgent, draft minutes v2 14:25:51 I have made the request to generate https://www.w3.org/2019/08/22-webmachinelearning-minutes.html anssik 14:25:59 TOPIC: Graph-building syntax simpler for web developers 14:26:05 -> https://github.com/webmachinelearning/webnn/issues/16 Graph-building syntax simpler for web developers #16 14:26:12 -> https://github.com/webmachinelearning/webnn/pull/22 Ningxin's PR to fix #16 14:26:25 anssik: no comments, we take silence as consent with the proposal 14:26:32 ... suggest we merge this PR and continue iteration on top of it 14:27:00 gregwhitworth: did not have time to review the PR 14:27:49 daniel_smilkov: reviewed the PR, step in the right direction 14:27:50 [hearing no objections] 14:27:57 RESOLUTION: Merge PR #22 14:28:03 RRSAgent, draft minutes v2 14:28:03 I have made the request to generate https://www.w3.org/2019/08/22-webmachinelearning-minutes.html anssik 14:28:18 TOPIC: Custom ops 14:28:23 -> https://github.com/webmachinelearning/webnn/issues/6 Custom operations #6 14:28:41 anssik: agreed to identify topics related to custom ops (sharing memory etc.) we need to understand better 14:28:54 ... lead Ningxin, contributors Rafael, James, Kai 14:29:03 jdarpinian has joined #webmachinelearning 14:29:07 ... Ningxin prototyped a WebNN backend for ONNX.js and provided findings. 14:29:20 -> https://github.com/webmachinelearning/webnn/issues/6#issuecomment-505877911 WebNN backend for ONNX.js findings 14:30:07 Present+ James_D 14:30:53 -> https://github.com/webmachinelearning/webnn/issues/6#issuecomment-523892643 Initial investigation of the WebGPU and WebNN memory sharing 14:31:14 Ningxin_Hu: welcome WebGPU experts review for the latter 14:31:56 Ningxin: The investigation is based on WebGPU backend of TF.js, WebGPU Dawn project and WebNN POC. In particular, I only touched the Metal backend of Dawn and MPS backend and WebNN POC. 14:32:55 Ningxin_Hu: Compilation - For sub-graph compilation, WebNN may need to support WebGPUDevice as compilation target (Compilation.setGPUDevice(WebGPUDevice device)). So framework can make sure WebNN allocates and compiles the sub-graph on the same GPU device as its WebGPU backend 14:34:03 Kai: that makes sense to me 14:35:21 kainino has joined #webmachinelearning 14:35:24 Ningxin_Hu: Execution - Framework implements custom kernels in WebGPU compute shader and uses WebGPUBuffer for data input and output. To allow framework interleaves execution of WebGPU kernels and WebNN sub-graph, WebNN may need to support WebGPUBuffer object as inputs and outputs of execution (Execution.setInput(unsigned long index, WebGPUBuffer buffer) and Execution.setOutput(unsigned long index, WebGPUBuffer buffer) ). 14:41:41 Kai: there are some inefficiencies that can be optimized further 14:42:13 s/Kai:/James(?):/ 14:43:21 Kai: should use formats we have in WebGPU, not require extensions, this will end up requiring platform specific code e.g. use buffers rather than texture, but that's tricky 14:44:15 ... instead of using the set input and set output, you'd be able to say, tell WebNN API this is the data input format I understand and this is what I will give you and allow overloading so that apps can have performant code on different platform 14:44:48 James: would be unfortunate if we have platform-specific shaders 14:45:14 ... we don't have a way to write generic shaders over working on buffer or texture 14:45:23 Kai: agree, finding a solution would be nice 14:45:42 Ningxin_Hu: also a case for CPU with SIMD, internal data layout differs based on CPU arch 14:46:11 anssik: next steps? 14:46:31 Ningxin_Hu: would like to get comments in the issue, this is a critical design point for the API 14:46:58 ... I can work on some POC, extend it to support WebGPU buffer 14:47:09 ... this might take some time, feedback? 14:47:46 ... with that we could find perf overhead of each 14:47:53 [no objections] 14:48:16 anssik: Ningxin_Hu to proceed with the investigation 14:48:36 https://github.com/webmachinelearning/webnn/issues/6 14:49:33 anssik: Ningxin prototyped a WebNN backend for ONNX.js and provided findings. 14:49:38 -> https://github.com/webmachinelearning/webnn/issues/6#issuecomment-505877911 WebNN backend for ONNX.js findings 14:49:49 ... 1. If the framework is able to share the graph info with a backend, it would help the integration of a graph-building API 14:52:47 Ningxin_Hu: need to carefully design tensor layout echoing Kai and James 14:53:22 Ningxin_Hu: 2. If the framework is able to execute ops by multiple backends, it would help the integration of WebNN and custom ops of framework 14:53:27 ... 3. Performance wise, if the WebNN sub-graph is as big as possible, there would be a good speedup for whole graph execution 14:53:32 ... 4. The tensor layout conversions would take significant overhead. It should be minimized as much as possible 14:54:00 RRSAgent, draft minutes v2 14:54:00 I have made the request to generate https://www.w3.org/2019/08/22-webmachinelearning-minutes.html anssik 14:54:05 TOPIC: WebML CG F2F meeting at TPAC 14:54:32 anssik: WebML CG F2F meeting takes place at TPAC, W3C's annual all-groups meeting 14:54:41 ... location Fukuoka, Japan, 17 & 20 Sep 2019 14:55:20 ... (TPAC itself runs for the whole week 16-20 Sep) 14:55:34 -> https://www.w3.org/2019/09/TPAC/ About TPAC 14:55:41 -> https://www.w3.org/2019/09/TPAC/registration.html Registration by 6 Sep 14:55:47 -> https://github.com/webmachinelearning/meetings/tree/master/2019-09-17-fukuoka WebML CG F2F agenda (PRs welcome) 14:56:38 Nikhil: I will attend and also participate Wasm meeting 14:56:58 Ningxin_Hu: I'll attend Wasm and WebRTC 14:57:35 anssik: chairing Devices and Sensors, Second Screen, WebML 14:59:06 TOPIC: Adjourn 14:59:10 RRSAgent, draft minutes v2 14:59:10 I have made the request to generate https://www.w3.org/2019/08/22-webmachinelearning-minutes.html anssik 15:03:05 s/Investigate background/Investigate backwards/ 15:03:10 RRSAgent, draft minutes v2 15:03:10 I have made the request to generate https://www.w3.org/2019/08/22-webmachinelearning-minutes.html anssik 16:42:43 Zakim has left #webmachinelearning