AIKernel.Wasm.WebGpuComputeProvider 0.1.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package AIKernel.Wasm.WebGpuComputeProvider --version 0.1.1
                    
NuGet\Install-Package AIKernel.Wasm.WebGpuComputeProvider -Version 0.1.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="AIKernel.Wasm.WebGpuComputeProvider" Version="0.1.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="AIKernel.Wasm.WebGpuComputeProvider" Version="0.1.1" />
                    
Directory.Packages.props
<PackageReference Include="AIKernel.Wasm.WebGpuComputeProvider" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add AIKernel.Wasm.WebGpuComputeProvider --version 0.1.1
                    
#r "nuget: AIKernel.Wasm.WebGpuComputeProvider, 0.1.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package AIKernel.Wasm.WebGpuComputeProvider@0.1.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=AIKernel.Wasm.WebGpuComputeProvider&version=0.1.1
                    
Install as a Cake Addin
#tool nuget:?package=AIKernel.Wasm.WebGpuComputeProvider&version=0.1.1
                    
Install as a Cake Tool

AIKernel.Wasm

日本語 README

AIKernel.Wasm isolates browser/WebAssembly runtime services and WebGPU boundaries for AIKernel.

AIKernel.Providers owns host-side OS standard drivers. AIKernel.Wasm owns WASM-specific runtime, process, memory, stdin, file system, event, audio, screenshot, save-state, time, and WebGPU compute boundaries.

Core abstractions such as IProcess, IProcessHost, IComputeProvider, and IProvider are referenced from AIKernel.Abstractions. AIKernel.Wasm provides browser/WebAssembly implementations without leaking WASM runtime concerns back into Core or AIKernel.Providers.

Package

  • AIKernel.Wasm.Runtime
  • AIKernel.Wasm.WebGpuComputeProvider
  • aikernel-wasm

Documentation

Runtime Providers

The runtime package defines WASM-scoped providers for:

  • WasmRuntime
  • WasmProcessProvider
  • WasmMemoryProvider
  • WasmStdinProvider
  • WasmFileSystemProvider
  • WasmEventProvider
  • WasmAudioProvider
  • WasmScreenshotProvider
  • WasmSaveStateProvider
  • WasmTimeProvider

WasmProcessProvider implements the Core IProcessHost contract and creates IProcess handles with Starting, Running, Stopped, and Error state transitions. Process lifecycle transitions publish OS events through IEventBus when an event bus is supplied.

WasmRuntimeContext is the shared runtime state object used by the providers. It tracks loaded modules, deterministic linear memory, imports and exports, stdin lines, an in-memory WASI-style file surface, framebuffer bytes, audio bytes, save-state snapshots, and a controllable deterministic clock.

The provider responsibilities are intentionally narrow:

  • WasmMemoryProvider performs checked linear-memory read/write operations.
  • WasmStdinProvider forwards intervention input to the runtime stdin export.
  • WasmFileSystemProvider exposes deterministic runtime files and file access events.
  • WasmEventProvider bridges WASM-originated events into AIKernel IEventBus.
  • WasmAudioProvider stores the latest audio buffer for a browser/WebAudio bridge.
  • WasmScreenshotProvider returns framebuffer bytes for capture pipelines.
  • WasmSaveStateProvider snapshots and restores linear memory.
  • WasmTimeProvider controls pause, resume, scale, and deterministic time advance.

The current runtime model is deterministic and testable on Windows and Linux. Browser-specific host bindings can be supplied at the boundary without changing the Core contracts.

WebGPU Compute

WebGpuComputeProvider lives under src/Compute/WebGpuComputeProvider and implements AIKernel.Abstractions.Compute.IComputeProvider.

The provider exposes:

  • compute.dispatch
  • compute.vector_add

Backend bindings are separated into:

  • WebGpuNativeBackend
  • WebGpuWasmBackend

WebGpuWasmBackend accepts an IWebGpuJsInterop bridge. In browser builds, that bridge owns navigator.gpu, buffer transfer, pipeline creation, and dispatchWorkgroups. The .NET provider keeps the AIKernel compute contract, buffer size validation, fallback routing, and EventBus publication.

When WebGPU is unavailable, the provider delegates CPU fallback execution to AIKernel.Providers.Standard.Compute.CpuComputeProvider. Kernel execution publishes GpuKernelExecuted when an IEventBus is supplied.

Python Wrapper

python/ contains the aikernel-wasm Python package. It exposes the public WASM runtime providers and WebGPU compute provider through pythonnet as a thin managed wrapper:

  • WasmRuntime, WasmRuntimeContext
  • WasmProcessProvider, WasmMemoryProvider, WasmStdinProvider
  • WasmFileSystemProvider, WasmEventProvider, WasmAudioProvider
  • WasmScreenshotProvider, WasmSaveStateProvider, WasmTimeProvider
  • WebGpuComputeProvider, WebGpuComputeInvoker, WebGpuComputeCapability

The wrapper does not re-implement WASM runtime semantics in Python. It resolves bundled assemblies from aikernel_wasm/native or local NuGet packages and can use AIKERNEL_WASM_ASSEMBLY_PATH for additional assembly roots.

Control Integration

Core.Control and Bonsai observe WASM runtime behavior through IEventBus. AIKernel.Wasm publishes process, memory, stdin, file, and GPU events using stable event names such as ProcessStarted, ProcessStopped, ProcessCrashed, MemoryAccessed, StdinSent, FileAccessed, and GpuKernelExecuted. This keeps runtime automation decoupled from browser and provider-specific implementation details.

Running WASM Applications

WASM applications are represented as AIKernel processes. A host creates a process through IProcessHost.CreateProcessAsync, optionally passing WasmProcessOptions with module bytes and initial memory size. The resulting IProcess can be started, stopped, listed, killed, restarted, observed through logs, and connected to scheduler rules through the same OS command model used by other providers.

CLI Integration

The aik CLI treats GPU, process, logs, and scheduler operations as OS commands:

aik gpu list
aik gpu run vector-add --a a.bin --b b.bin
aik run sample
aik ps
aik kill <pid-or-name>
aik restart <pid-or-name>
aik logs sample
aik schedule add --every 1m "aik system info"

Build

dotnet build AIKernel.Wasm.slnx -c Release
dotnet test AIKernel.Wasm.slnx -c Release --no-build

Contributor Guidelines

WASM runtime and WebGPU changes must follow the shared AIKernel development discipline:

Runtime/provider code should preserve deterministic process state, use fail-closed Result/Try boundaries for host integration, keep browser-specific interop behind abstractions, and keep Python wrappers aligned with public C# contracts.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on AIKernel.Wasm.WebGpuComputeProvider:

Package Downloads
AIKernel.Wasm.Models

EN: AIKernel WASM model execution package for descriptor-driven WebGPU resident model boundaries. JA: descriptor-driven な WebGPU resident model 境界を提供する AIKernel WASM model execution package です。

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.2 42 6/16/2026
0.1.1 64 6/10/2026 0.1.1 is deprecated because it is no longer maintained.

AIKernel.Wasm v0.1.1 - Aligns the WASM runtime and WebGPU provider with AIKernel.NET, AIKernel.Core, and AIKernel.Providers 0.1.1 while preserving monadic Result/Try/Option runtime provider lookup, adapter success checks, and WebGPU initialization fallback.