12:07:08 RRSAgent has joined #webgpu 12:07:08 logging to https://www.w3.org/2018/10/24-webgpu-irc 12:07:10 Zakim has joined #webgpu 12:07:12 arnog has joined #webgpu 12:07:15 RRSAgent, make logs public 12:07:17 sangchul has joined #webgpu 12:07:20 binji has joined #webgpu 12:07:23 sangwhan has joined #webgpu 12:07:24 Meeting: WebGPU TPAC breakout session 12:07:30 Chair: Corentin 12:07:39 harry has joined #webgpu 12:07:42 halo has joined #webgpu 12:07:42 scribenick: tidoust 12:07:50 Topic: WebGPU overview 12:08:00 onishi has joined #webgpu 12:08:10 krit has joined #webgpu 12:08:13 Corentin: I chair the GPU for the Web Community Group, developing WebGPU. 12:08:17 kazho has joined #webgpu 12:08:30 ... First question that usually gets raised is: why not WebGL instead? 12:08:34 cpn has joined #webgpu 12:08:55 ... WebGL has a lot of historical bagage, which creates lot of CPU overhead. And also it does not map very well to modern graphic cards. 12:08:56 JerryLin has joined #WebGPU 12:09:07 ningxinhu has joined #webgpu 12:09:16 ... The driver may be doing stuff for 100ms in some cases, resulting in dropped frames. 12:09:38 ... WebGL does not expose computation capabilities either. 12:09:53 ... And also, recently, Apple deprecated OpenGL. 12:10:10 ... WebGPU is like WebGL but more modern and without issue. 12:10:23 wseltzer has joined #webgpu 12:10:32 rrsagent, pointer? 12:10:32 See https://www.w3.org/2018/10/24-webgpu-irc#T12-10-32 12:10:33 ... It's inspired by modern GPU APIs (Metal, D3D12, Vulkan). It isn't any of them in particular, but close to them in particular. 12:10:49 ... Enables things such as faster games, more efficient machine learning on the Web, etc. 12:10:56 Huangweichai has joined #webgpu 12:11:26 ... Who's doing WebGPU? It's a W3C CG, and maybe soon as WG. Main browser vendors are engaged. Significant contributions from Intel and Yandex as well, for instance. 12:11:58 ... When will it be ready? We don't know, but we're making good progress on the API that allows scheduling of the computation on the GPU. 12:12:16 ... The discussions on the shading language are more difficult and progress has been slower on that front than expected. 12:12:50 ... Early next year, we'll have a good-enough-though-not-completely-stable API that we can share around and play with. 12:13:04 ?1: How is this API going to be consumed by the upper layer? 12:13:29 s/?1/Jungkee 12:13:34 Corentin: WebGPU is an abstraction layer over doing graphics. We don't expect a lot of people will use WebGPU directly for actual Web sites. 12:13:52 takio has joined #webgpu 12:13:53 ... The expectation is that most of the usage will be through frameworks. 12:14:01 ... or game engines 12:14:17 ... Babylon.js, three.js are considering support for instance. 12:14:25 ... unity and unreal 12:14:45 anssik: If you're moving to WG, how will the scope be different? 12:15:03 Corentin: The WG would be for stamping the spec, for IP reasons. 12:15:19 ?2: Do you consider an OpenCL replacement as well? 12:15:44 Corentin: OpenCL had some security issues, which is why WebCL did not progress, but the functionality should be there. 12:15:52 s/?2/Arno/ 12:16:21 ?3: Do you have some typical use cases that compare use of WebGPU vs. use of WebGL? 12:16:29 Corentin: One reason is advanced games. 12:16:47 s/?3/Zhiqiang 12:16:50 ... Another reason is that you'll be able to push more scene complexity, because the CPU overhead is smaller. 12:17:07 Zhiqiang: Do we have some concrete benchmarks? 12:17:26 Corentin: We had some early prototype, but we're still working on integrating the new proposal inside browsers. 12:18:01 ?4: Some ongoing effort to port "Aquarium" for benchmark. 12:18:14 s/?4/Yang/ 12:18:33 Corentin: Intel is working on WebGL2 Compute, but it's unclear when it will be done, and also won't work on Mac. 12:19:04 shangwan: Is non browser GPU also a goal for this? 12:19:09 Corentin: Yes, definitely. 12:19:23 s/shangwan/sangwhan/ 12:20:12 Topic: WHLSL 12:20:29 Myles: Want to talk about a new shading language. 12:20:35 WHLSL 12:20:59 ... Corentin explained that WebGPU needs to work across hardware platforms. All of these platforms have different shading languages. 12:21:32 ... Requirements for WebGPU: language needs to be safe! That's a non starter if the language isn't safe. 12:21:43 ... It obviously also needs to be well-specified. 12:21:59 ... Then translatable across the 3 different platforms. 12:22:15 ... It needs to be performance. 12:22:30 ... Some features need to be evolved together between WebGPU and the shading language. 12:22:54 ... Lastly, since it's new, it would be good if it could be easy to read and write. 12:23:08 ... Really quick tour through the existing languages: 12:23:42 ... Metal Shading language is C++ based. But not safe since you can cast pointer into integers back and forth. 12:24:03 ... HLSL isn't fully defined. 12:24:37 ... GLSL is the language that WebGL shaders uses. GLSL tends out to be a very difficult language to use because of its historical baggage. 12:25:01 ... SPIR-V is an interesting choice but it isn't one that humans write. 12:25:27 ... JS is also intersesting, but not typed-enough, e.g. a+b. It would be very slow. 12:25:58 ... WebAssembly is yet another interesting idea. But not fully adpated for GPUs, including memory layout. 12:26:22 ... Taking all that into account, we came up with a new one, WHLSL. 12:26:49 ... The spec contains rules, which is more than a grammar. It defines things such as how types work, and the execution environment. 12:27:13 ... There is also a compiler, which produces SPIR-V, MSL, HLSL 12:27:30 ... This is not in any browser yet. 12:28:16 ningxinhu has joined #webgpu 12:29:07 [showing an example] 12:29:19 t_homma has joined #webgpu 12:29:51 Myles: The example shows the source, the result of the compilation, here for a Mac, and the rendering. 12:30:10 ... I could talk about the details of the language. 12:30:32 anssik: How did you come up with this proposal? Massaging the different proposals? 12:30:53 Myles: Most of the work was done by the Webkit team. We're in the process of inviting other perspectives. 12:30:54 q+ 12:31:44 Corentin: In the group, there are people who believe that the browser should support SPIR-V and others that browsers should support WHLSL directly. Complicated discussions. 12:32:11 ?6: How to WHLSL compare to HLSL in a more secure version? 12:32:20 Myles: That's basically what this is. 12:32:28 s/?6/Bryan 12:32:37 ack sangwhan 12:32:43 [scribe missed question] 12:33:31 Myles: The compiler in the demo outputs intermediary language that gets ingested by my machine directly, not running in the browser for now. 12:34:02 Corentin: The advantage that we have compared to compute functionality is that you can do matrix multiplication more easily. I can go way deeper on this, it's complicated. 12:34:08 s/[scribe missed question]/sangwhan: is this proposal available for review anywhere? how is the demo implemented?/ 12:34:11 Arno: What kind of use cases are you thinking about? 12:34:30 Huangweichai has joined #webgpu 12:34:33 ... Are you thinking about machine learning for instance? 12:34:41 Corentin: Yes. 12:35:12 ... It would help with machine learning, fluid computations, effects in rendering applications. 12:35:34 Arno: Where does the compilation happen? 12:35:59 Corentin: The results of the discussion on the computation language does not really change anything. 12:36:07 ... The compilation happens when you load the application. 12:36:12 Myles: Same as in WebGL. 12:36:26 Corentin: Capabilities don't matter for this, because both languages have the same ones. 12:37:06 Arno: If the compilation happens in the browser or if the compilation happens before, it's different. The application could generate shaders on-the-fly in the second case for instance. 12:37:48 Myles: The Web author could go back to the server, or serve the source and a compiler at the same time. 12:38:11 ?7: For WebAssembly, sometimes, the compilation time sometimes makes a difference. 12:38:51 Corentin: The compilation time is not so much of a problem. Register allocation is the most complicated issue in our context for various reasons, takes an insane amount of time. 12:39:00 ... Compilation time is not a differenciation criterion. 12:39:50 ... Every vendor comes with its own set of requirements. Goal is to have it run on all Windows 10 devices, a large number of Windows 7 devices, Android devices. 12:40:15 Myles: Metal and D3D have a small number of configurations that you can change. Vulkan has a zillion of such configurations. 12:40:57 sangwhan: Is the current proposal different from the language that was "shipped" in Safari? 12:41:18 Myles: Yes, different. That was a proof of concept to prove performance gains. Now we have data. 12:41:32 ?7: Some kind of software fallback? 12:41:38 s/?7/Ben 12:41:51 Corentin: Yes, plugging things together, you'll be able to do that. 12:41:59 s/?7/Ben/g 12:42:14 ?8: Is is going to replace WebGL2 entirely? 12:42:40 Myles: WebGL is part of the Web Platform. We do want to say that WebGPU can be used in all areas where WebGL can be used. 12:42:59 Guido: [scribe missed question] 12:43:38 Corentin: Overhead target should be minimal. GPU performance is super important for us. 12:44:14 Ben: You mentioned WebAssembly API as a maybe. Anything WASM can do to help with that? 12:44:57 Corentin: We had exchanges on that with the CG. Host bindings is one. That should give us most of what you need. 12:45:39 Ben: Integers and floats are easier to pass in WASM. WebGL passes strings and arrays in a number of places, I believe. 12:45:50 ... Is there a way to make the API easier for pre-host bindings? 12:46:21 Corentin: We're looking at dictionary-based solutions, because it's not the fast path. 12:46:53 ?9: A possible future where WHLSL can be used in WebGL as well? 12:47:03 Myles: That hasn't been discussed. 12:47:22 [Some discussions on shading languages, compilers] 12:47:53 ningxinhu: Any plan to support tooling to port Metal Shading Language and others to WHLSL? 12:48:32 Corentin: First, HLSL is close to WHLSL. Also any shading language compiles to SPIR-V, so that's a common intermediary. But depends on the outcomes of related discussions. 12:48:59 ningxinhu: WHLSL is for humans, not for rendering? 12:49:14 Myles: It's actually for both. That's an explicit goal that I should have listed. 12:49:32 s/rendering/compilation output/ 12:49:50 ?10: Possible to decompile SPIR-V into WHLSL? 12:49:55 Corentin: That should be roughly doable. 12:50:15 Myles: Any arbitrary SPIR-V program cannot, though. 12:50:44 Corentin: Some operators in SPIR-V are blocked. 12:51:02 ?8: is the goal to support multiple GPUs? 12:51:21 Corentin: That's explicitly something we thought about, but then it's too complicated and probably too niche on the Web. 12:51:35 ?8: Scientific research would benefit from it. 12:51:43 Myles: That's a great thing to explore in the future. 12:51:55 Corentin: Right. To be honest, I would be surprised. 12:52:08 sangwhan: GPU context switching? 12:52:46 Corentin: The idea is that there is no GPU switching. But you can choose low- or high-performance. 12:52:53 sangwhan: And that gives you the GPU model? 12:53:04 Myles: Unclear. We don't want to expose information unless needed. 12:53:30 Bryan: Will WebGPU WHLSL have extensions? 12:53:35 Myles: Unclear. 12:54:09 Corentin: We are thinking of an extension mechanism. For instance, you could imagine Raytracing extensions. But the plan is to remain conservative. 12:54:32 ?10: Is multiview in case? 12:54:52 Corentin: We haven't thought about multiview, but that's a bandage, to be honest. 12:55:06 ... Our current approach is to try to do a basic set of features that are really fast. 12:55:40 Myles: The purpose of multiviews is to increase performance. If that give much more performance, then that's a valuable use case. 12:56:24 [WHLSL is targeting feature levels on all existing platforms, so any card should be able to run it] 12:57:03 Myles: Google has started implementing this. Apple has started implementing this as well according to activity in public repo. 12:57:22 ... Mozilla is prototyping things. 12:58:24 wseltzer: Wendy from W3C. Just wanted to say hello. Good progress there. When you mentioned transition to a WG to get IP stamps, that's valuable, especially in the GPU space. 12:58:24 sangchul has joined #webgpu 12:58:55 ... We're happy to help with that transition. Of course, that requires approval by the W3C Advisory Committee. So when you think you're ready, please get in touch with us. 12:59:10 Corentin: Awesome. I believe Dean Jackson is looking into it as well. 12:59:17 RRSAgent, draft minutes v2 12:59:17 I have made the request to generate https://www.w3.org/2018/10/24-webgpu-minutes.html tidoust 13:09:50 tidoust has joined #webgpu 13:12:24 xiaoqian has joined #webgpu 13:21:13 onishi has left #webgpu 13:27:30 t_homma has joined #webgpu 13:41:55 t_homma has left #webgpu 14:33:31 Zakim has left #webgpu 14:42:29 xiaoqian has joined #webgpu 15:54:39 xiaoqian has joined #webgpu