I want to talk about WebGPU

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

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • wgpu

    A cross-platform, safe, pure-Rust graphics API.

  • WebGPU can be used outside of the browser through native libraries:

    https://github.com/gfx-rs/wgpu

    https://dawn.googlesource.com/dawn

    Some WASM engines also have WebGPU support already, but unfortunately only for 'offscreen rendering' or compute tasks (e.g. for writing windowed apps, there's a window system glue layer missing).

  • gpuweb

    Where the GPU for the Web work happens!

  • Shared memory, yes, with the goodies: atomics and barriers. We rely on that heavily in Vello, so we've pushed very hard on it. For example, WebGPU introduces the "workgroupUniformLoad" built-in, which lets you broadcast a value to all threads in the workgroup while not introducing potential unsafety.

    Tensor cores: I can't say there are plans to add it, but it's certainly something I would like to see. You need subgroups in place first, and there's been quite a bit of discussion[1] on that as a likely extension post-1.0.

    [1]: https://github.com/gpuweb/gpuweb/issues/3950

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • sokol

    minimal cross-platform standalone C headers

  • It's not Rust and TS, instead C and JS, but Emscripten has a very nice way of integrating C/C++ and JS (you can just embed snippets of Javascript inside C/C++ source files), e.g. starting at this line, there's a couple of embedded Javascript functions which can be called like C functions directly from the "C side":

    https://github.com/floooh/sokol/blob/4535a3b4be59eb912e77e04...

  • Graphite

    2D raster & vector editor that melds traditional layers & tools with a modern node-based, non-destructive, procedural workflow.

  • https://github.com/GraphiteEditor/Graphite

    Web based graphics editor where the engine is written in rust. I think it uses tauri

  • naga

    Universal shader translation in Rust

  • That wouldn't have been all that different from WGSL though, the most important thing is that whatever WebGPU uses for its shaders can be translated to and from SPRIV (and WGSL does that too (e.g. via https://dawn.googlesource.com/tint and https://github.com/gfx-rs/naga).

  • Vulkan-Docs

    The Vulkan API Specification and related tools

  • Memory synchronization is explained in https://github.com/KhronosGroup/Vulkan-Docs/wiki/Synchroniza...

    The thing is, Vulkan requires planning. So if you want to write some simple game which displays sprites on the screen, then you are better off with something OpenGL-like. But once you need an optimized rendering pipeline with HiZ culling, minimal CPU-GPU memory transfers, etc., then Vulkan is the way to go. You can use newer OpenGL versions for this,

  • wonnx

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

  • > GPU in other ways, such as training ML models and then using them via an inference engine all powered by your local GPU?

    Have a look at wonnix https://github.com/webonnx/wonnx

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

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • bevy

    A refreshingly simple data-driven game engine built in Rust

  • To get an idea where WebGPU is heading a couple of projects worth looking at.

    - The Bevy game engine, using WebGPU on the backend. https://bevyengine.org/

    - Wonnx, A WebGPU inference engine for running AI compute on the server or in the browser. https://github.com/webonnx/wonnx

  • vault

    Koofr Vault is an open-source, client-side encrypted folder for your Koofr cloud storage offering an extra layer of security for your most sensitive files. (by koofr)

  • You can check out Koofr Vault. The engine is written in Rust and the web frontend is written in TypeScript and React.

    https://github.com/koofr/vault

  • WebKit

    Home of the WebKit project, the browser engine used by Safari, Mail, App Store and many other applications on macOS, iOS and Linux.

  • > don't know if Apple/WebKit also has open-sourced theirs

    https://github.com/WebKit/WebKit/tree/main/Source/WebGPU

  • WebDNN

    The Fastest DNN Running Framework on Web Browser

  • I haven't tried it myself, but it looks like several are already looking at implementing machine learning with WebGPU, and that this is one of the goals of WebGPU. Some info I found:

    * "WebGPU powered machine learning in the browser with Apache TVM" - https://octoml.ai/blog/webgpu-powered-machine-learning-in-th...

    * "Fastest DNN Execution Framework on Web Browser" https://mil-tokyo.github.io/webdnn/

    * "Google builds WebGPU into Chrome to speed up rendering and AI tasks" https://siliconangle.com/2023/04/07/google-builds-webgpu-chr...

  • tfjs

    A WebGL accelerated JavaScript library for training and deploying ML models.

  • Also, Tensorflow.js WebGPU backend has been in the works for quite some time: https://github.com/tensorflow/tfjs/tree/master/tfjs-backend-...

  • webgpu-headers

  • The API definition exists:

    https://github.com/webgpu-native/webgpu-headers/blob/main/we...

    The next missing piece is a standard window system glue API for WASI though.

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

  • Hice un clon de Cookie Clicker en React

    7 projects | dev.to | 29 May 2023
  • How to create YOLOv8-based object detection web service using Python, Julia, Node.js, JavaScript, Go and Rust

    19 projects | dev.to | 13 May 2023
  • Wat

    5 projects | news.ycombinator.com | 29 Mar 2023
  • Could someone suggest a development environment and/or tools I could use? I'm looking for an environment similar to a browser. I plan on using Python to display the results of many calculations that would change, maybe every second or half second. With lots of variables involved. More details below.

    3 projects | /r/learnpython | 7 Feb 2023
  • Ask HN: Who needs beta testers? (February 2023)

    9 projects | news.ycombinator.com | 2 Feb 2023