14:58:19 RRSAgent has joined #webmachinelearning 14:58:19 logging to https://www.w3.org/2020/03/19-webmachinelearning-irc 14:58:27 Zakim has joined #webmachinelearning 14:58:33 RRSAgent, make logs public 14:58:39 Meeting: WebML CG Teleconference – 19 March 2020 14:58:44 Chair: Anssi 14:58:50 Agenda: https://github.com/webmachinelearning/meetings/blob/master/telcons/2020-03-19-agenda.md 14:58:55 Scribe: Anssi 14:59:00 scribeNick: anssik 14:59:05 Present+ Anssi_Kostiainen 14:59:32 Present+ Nikhil_Thorat 15:00:11 Present+ Rafael_Cintron 15:00:37 Jonathan has joined #webmachinelearning 15:00:50 Ningxin_hu has joined #webmachinelearning 15:01:07 Ningxin_Hu has joined #webmachinelearning 15:01:37 RafaelCintron has joined #webmachinelearning 15:01:42 walrusmcd has joined #webmachinelearning 15:01:43 Present+ Jonathan_Bingham 15:02:34 Present+ Paul_McDaniel 15:02:42 Present+ Chai_Chaoweeraprasit 15:02:43 Present+ Ningxin_Hu 15:02:46 Chai has joined #webmachinelearning 15:03:08 Present+ Ningxin_Hu 15:03:15 Rama has joined #webmachinelearning 15:04:03 daniel_smilkov has joined #webmachinelearning 15:04:20 Present+ Ganesan_Ramalingam 15:04:28 Present+ Daniel_Smilkov 15:04:37 RRSAgent, draft minutes v2 15:04:37 I have made the request to generate https://www.w3.org/2020/03/19-webmachinelearning-minutes.html anssik 15:04:43 anssi - you might be dropping out audio 15:06:12 TOPIC: matMul op definition 15:06:19 anssik: ask for the group was to review PR: 15:06:24 -> https://github.com/webmachinelearning/webnn/pull/49 Add matmul PR #49 15:07:21 Ningxin_Hu: PR is based on the matMul signature proposal from Nikhil 15:08:45 ... the proposal is strongly numpy inspired 15:09:25 [Ningxin_Hu walking thought the details of the matMul op definition] 15:10:22 Chai: might be a good idea to explain the output 15:10:33 Present+ Greg Whitworth 15:11:00 Ningxin_Hu: returns section is a brief description of the output, need more details? 15:11:42 Chai: right, input in this case can be inclusive of all the cases enumerated, impacting the output, e.g. if dimension greater than 2 the output should match accordingly 15:11:49 ... happy to help clarify that 15:12:41 anssik: any other feedback on the matMul op definition? 15:13:07 TOPIC: Handling unsupported OperandType 15:13:14 -> https://github.com/webmachinelearning/webnn/issues/36 Handling unsupported OperandType issue #36 15:13:21 -> https://github.com/webmachinelearning/webnn/pull/50 How to handle a failing compilation PR #50 15:14:06 anssik: Chai submitted a PR #50 to fix issue #36 (thanks!). This PR proposes to update CompilationPreference to follow WebGL convention for context creation. Update the code sample to show how a certain compilation could fail such as when the model uses data type not supported by the hardware, and how to recover from the failure. 15:15:42 Chai: wanted to clarify, I looked at WebGL, there's also a concept of context attribute, WebGLPowerPreference: :high perf, low power, 3rd_one_script_did_not_catch 15:16:10 ... matches what we'd probably want to have for this API as well e.g. in cases when we fallback to CPU 15:16:44 ... if float16 not possible on GPU, then can fallback to CPU, but if low power or high perf preference, we'd try that 15:17:22 ... another preference in WebGL allows to create a high performance context, but that could fail(?) if not supported 15:17:43 ... power preference of WebGL is something we should try to align with 15:19:24 RafaelCintron: agree we need a default 15:19:38 ... in WebGL if you ask high perf, you always get something 15:19:40 ... never fails 15:20:16 ... you always get something back regardless of the preference, it just sorts the list of GPUs 15:21:57 Chai: in this case we have a model, that might not be supported by the GPU, so how we interpret high perf is more absolute in the case of WebNN API, similar to WebGL preference + flag 15:22:35 RafaelCintron: in this case high perf preference is not power setting, just whether it is supported? 15:23:47 Chai: if we try to compile a model, and GPU does not support it, we want the preference to say "we cannot create a high perf compilation of this model" 15:24:01 ... semantics different from those of the WebGL behavior 15:24:25 RafaelCintron: so you're saying, if the model requires a lot of copies then high perf pref would fail? 15:24:36 Chai: right 15:25:03 Chai: if developers do not care, they could retry compilation with CPU 15:25:25 RafaelCintron: is there a threshold? 15:25:48 Chai: you don't want to mix two devices midstream 15:26:06 RafaelCintron: if 6 out of 10 ops can be done, does that qualify as a high perf GPU? 15:26:17 Chai: hard to say how we define runtime performance 15:27:09 ... given what we know w/o executing, we want to compile with high perf preferences, there could be some policy as long as it is not too slow, if the browser needs to walk the graph to determine which is fast and which is slow then that's too much 15:27:55 ... the idea of high perf when user is certain the scenario/use case needs high fps, e.g. computer vision usages need high perf for good UX 15:27:59 q+ 15:29:04 RafaelCintron: I see your point, if device-specific there's a fingerprinting concern, maybe there's no other way to specify this than how it's now spec'd 15:29:14 Chai: important topic, should offline 15:31:09 anssik: WebGL API fingerprintable surface is way larger 15:31:15 Ningxin_Hu: thanks Chai for the PR 15:31:34 ... ask for clarification, compilation preference: low power, high perf, fast answer 15:31:47 ... in current spec not clear fast answer is the default 15:32:17 ... fast answer is about responsiveness 15:32:53 ... high perf is for use cases that need successive frames such as input from camera frames 15:33:18 ... Android NN API has similar preferences 15:34:00 ... on previous meeting, we wanted to handle the failure similar to WebGL, and define error codes to indicate the reason of failure 15:34:11 q? 15:34:17 ack Ningxin_Hu 15:36:52 Chai: general observation, if we know what to recommend to the caller given a specific error code, then we should define a error code(s) for such a failure path 15:38:32 Chai: any cases when we do not want to caller to fall back to another preference, not just run the model? 15:40:55 RafaelCintron: in WebGL you can ask preference, high power, low power before context creation, after the context creation can ask if can if e.g. can do 16-bit float textures or not 15:41:01 ... similarly for WebGPU 15:43:24 anssik: do we have extension points in the API to add error codes later on? maybe have a separate issue for error codes? 15:44:21 Chai: right 15:44:38 q+ 15:44:42 anssack Ningxin_Hu 15:44:50 ack Ningxin_Hu 15:45:06 Ningxin_Hu: agree we want to separate error code 15:46:27 ... can we create a separate issue for compilation preference change? 15:48:13 anssik: do you want to offline this topic? 15:48:17 Chai: sounds good 15:48:25 Ningxin_Hu: similarly, ok with that 15:49:02 TOPIC: Inference API to load and run a model 15:49:40 anssik: I review WebML CG charter to figure out what changes if any are needed to allow us to incubate the load and run a model API proposal alongside the current graph builder API as a result of that review 15:50:11 ... proposed resolution: add the load and run a model API to the group's scope, the group does not attempt to mandate a specific ML schema or format. No changes to the charter with this clarification. 15:50:24 anssik: comments? concerns? 15:52:03 Greg: when does the charter expire? 15:52:16 anssik: does not expire, since this is a CG 15:52:48 Greg: I think we should go ahead and circle back to charter if we hit a roadblock with charter definition 15:54:01 >thanks 15:55:08 Jonathan: would like to record a decision in the respective GH issue 15:57:21 ... maybe someone could pull out the model loader part of WebNN into a separate spec? 15:57:52 anssik: how about starting with all in one spec and split later? 15:58:00 Jonathan: sounds okay too 15:58:13 anssik: proposed resolution: add the load and run a model API to the group's scope, the group does not attempt to mandate a specific ML schema or format. No changes to the charter with this clarification. 15:59:07 anssik: any concerns? 15:59:12 RafaelCintron: LGTM 15:59:30 Jonathan: LGTM 15:59:44 Ningxin_Hu: LGTM 15:59:55 RESOLUTION: Add the load and run a model API to the group's scope, the group does not attempt to mandate a specific ML schema or format. No changes to the charter with this clarification. 16:00:02 RRSAgent, draft minutes v2 16:00:02 I have made the request to generate https://www.w3.org/2020/03/19-webmachinelearning-minutes.html anssik 16:01:21 TOPIC: Adjourn 16:01:29 anssik: Take care y'all 16:01:47 RRSAgent, draft minutes v2 16:01:47 I have made the request to generate https://www.w3.org/2020/03/19-webmachinelearning-minutes.html anssik 16:19:31 zkis has joined #webmachinelearning 16:42:35 zkis has joined #webmachinelearning 18:18:35 Zakim has left #webmachinelearning 19:20:50 zkis has joined #webmachinelearning 20:02:47 zkis has joined #webmachinelearning