WebGPU – All of the cores, none of the canvas – surma.dev

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • SonarQube - Static code analysis for 29 languages.
  • SaaSHub - Software Alternatives and Reviews
  • bevy

    A refreshingly simple data-driven game engine built in Rust

    Im excited for Bevy engine too. It uses wgpu, which has many backends, including webgpu.

    https://bevyengine.org

  • naga

    Universal shader translation in Rust

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.

  • gpuweb

    Where the GPU for the Web work happens!

    Google wants SPIRV alive.

    Google developed a human readable text version for SPIRV, which is isomorphic to the binary version, akin to WASM <-> WAT.

    Mozilla wants SPIRV, which Apple fully rejects, but they are open to googles proposal of a textural intermediary, which is isomorphic.

    Mozilla and Google agree, because they'll all compile down to SPIRV anyways, except for Apple which will target Metal.

    This decision is captured in the W3C proposal which to this day contains the Isomorphism property.

    That's the Embrace, WGSL is born.

    Apple convinces Mozilla and Google that WGSL should be even more human readable, since user readable formats are the backbone of the open web. But for more convenience WGSL will need more features. Extend.

    Apple convinces Mozilla and Google that now that the language has grown anyways they should make it much more compatible with other shading languages in general, SPIRV will not be the only target, so while it should be compilable to SPIRV, that's by no means a primary goal. Isomorphism is abandoned. Google tries a last ditch effort to keep the isomorphism with a proposal literally called: "Preserving developer trust via careful conversion between SPIR-V and WGSL".

    The proposal is rejected, the working group decides that the isomorphism property will no longer hold (I can only assume malevolence that they haven't removed it from the spec yet, probably to keep dev support.). Extinguished.

    https://docs.google.com/presentation/d/1ybmnmmzsZZTA0Y9awTDU...

    Why is that isomorphism so important? Because it's near impossible to develop truly high performance shaders with a load of compiler optimisations between your hardware and your tooling. Apple is successfully giving us GLSL in new clothes, and developers are cheering them on, because the just read the spec and ignore the realities of the standard.

    Apple: "Having an isolated focus on SPIR-V is not a good perspective, we have MSL etc. to consider too"

    ...

    Apple: "Extreme A is no interaction with SPIRV?, extreme B is very tightly coupled to SPIRV, we should find a middle point"

    ...

    Google: "We take all targets into consideration. We can allow developers do runtime probing and maybe branch according to that. Optimization occurs in existence of uncertainty. Dealing with fuzziness is a fact of life and we should give the tools to developers to determine in runtime."

    From https://docs.google.com/document/d/15Pi1fYzr5F-aP92mosOLtRL4...

    See also:

    https://github.com/gpuweb/gpuweb/pull/599

    https://github.com/gpuweb/gpuweb/issues/582

    https://github.com/gpuweb/gpuweb/issues/566

    http://kvark.github.io/spirv/2021/05/01/spirv-horrors.html

    https://github.com/gpuweb/gpuweb/issues/847#issuecomment-642...

    https://news.ycombinator.com/item?id=24858172

  • wonnx

    A GPU-accelerated ONNX inference run-time written 100% in Rust, ready for the web

    Already on it! https://github.com/webonnx/wonnx - runs ONNX neural networks on top of WebGPU (in the browser, or using wgpu on top of Vulkan/DX12/..)

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts