Wasi: WebGPU – A Proposed WebAssembly System Interface API A proposed WebAssembly System Interface API, wasi:webgpu, aims to bring GPU access to WebAssembly, enabling portable, sandboxed GPU compute for applications such as server-side graphics streaming, scientific computing, and AI/ML inference. The API is based on the official WebGPU specification but deviates where that spec assumes a web or JavaScript environment, with all deviations clearly documented. The proposal is currently in Phase 2 development, targeting Linux, Windows, MacOS, Android, and Web platforms. A proposed WebAssembly System Interface https://github.com/WebAssembly/WASI API. Phase 2 - Mendy Berger - Sean Isom Linux, Windows, MacOS, Android, Web. Introduction introduction Goals or Motivating Use Cases, or Scenarios goals-or-motivating-use-cases-or-scenarios Non-goals non-goals API walk-through api-walk-through Detailed design discussion detailed-design-discussion Considered alternatives considered-alternatives Stakeholder Interest & Feedback stakeholder-interest--feedback References & acknowledgements references--acknowledgements wasi:webgpu is a WASI proposal for GPU access in WebAssembly. Bring the benefits of Wasm portability, security, sandboxing to GPU compute. Use cases include, but are not limited to: - Server-side graphics streaming. - Scientific computing and simulations. - AI/ML inference and training. - Image and video processing. - Data visualization and rendering. - Displaying to a screen / windowing API — out of scope here, but active work is happening in other projects that may eventually become their own wasi proposals e.g., wasi-gfx https://github.com/wasi-gfx . The full API documentation can be found in imports.md /WebAssembly/wasi-webgpu/blob/main/imports.md . wasi:webgpu is based on the official WebGPU spec https://www.w3.org/TR/webgpu/ . It deviate in some cases from the webgpu spec, namely, in cases where the spec makes assumptions about running in a web or JS environment. Wherever wasi:webgpu deviates from the spec, a clear explanation should be documented. Provide example code snippets and diagrams explaining how the API would be used to solve the given problem etc. This section should mostly refer to the .wit.md file that specifies the API. This section is for any discussion of the choices made in the API which don't make sense to document in the spec file itself. Talk through the tradeoffs in coming to the specific design point you want to make. // Illustrated with example code. This may be an open question, in which case you should link to any active discussion threads. etc. This section is not required if you already covered considered alternatives in the design discussion above. Describe an alternative which was considered, and why you decided against it. etc. TODO before entering Phase 3. This should include a list of implementers who have expressed interest in implementing the proposal Many thanks for valuable feedback and advice from: - Person 1 - Person 2 - etc.