microsoft / microsoft/onnxruntime

[Feature request] Deno webgpu support

Open
#22,309 19 comments 2 reactions 0 assignees View on GitHub
ep:WebGPU feature request platform:web
Dominant language
C++
Stars
21.9k
Forks
4.2k
Avg merge
4d 11h
Merged PRs (30d)
184

Description

### Describe the feature request

Support to running onnx models in webgpu using deno

### Describe scenario use case

Actually not working because this error:
`error: Uncaught (in promise) Error: no available backend found. ERR: [webgpu] backend not found.`

Debug
`console.log(await navigator.gpu.requestAdapter())`
```
GPUAdapter {
features: GPUSupportedFeatures [
"depth-clip-control",
"timestamp-query",
"indirect-first-instance",
"shader-f16",
"depth32float-stencil8",
"texture-compression-bc",
"rg11b10ufloat-renderable",
"bgra8unorm-storage",
"float32-filterable",
"texture-format-16-bit-norm",
"texture-adapter-specific-format-features",
"pipeline-statistics-query",
"timestamp-query-inside-passes",
"mappable-primary-buffers",
"texture-binding-array",
"buffer-binding-array",
"storage-resource-binding-array",
"sampled-texture-and-storage-buffer-array-non-uniform-indexing",
"uniform-buffer-and-storage-texture-array-non-uniform-indexing",
"partially-bound-binding-array",
"multi-draw-indirect",
"multi-draw-indirect-count",
"push-constants",
"address-mode-clamp-to-zero",
"address-mode-clamp-to-border",
"polygon-mode-line",
"polygon-mode-point",
"conservative-rasterization",
"vertex-writable-storage",
"clear-texture",
"spirv-shader-passthrough",
"multiview",
"shader-f64",
"shader-i16",
"shader-primitive-index",
"shader-unused-vertex-output"
],
limits: GPUSupportedLimits {
maxTextureDimension1D: 16384,
maxTextureDimension2D: 16384,
maxTextureDimension3D: 2048,
maxTextureArrayLayers: 2048,
maxBindGroups: 8,
maxBindingsPerBindGroup: 1000,
maxBufferSize: 2147483647,
maxDynamicUniformBuffersPerPipelineLayout: 16,
maxDynamicStorageBuffersPerPipelineLayout: 8,
maxSampledTexturesPerShaderStage: 8388606,
maxSamplersPerShaderStage: 8388606,
maxStorageBuffersPerShaderStage: 8388606,
maxStorageTexturesPerShaderStage: 8388606,
maxUniformBuffersPerShaderStage: 8388606,
maxUniformBufferBindingSize: 2147483648,
maxStorageBufferBindingSize: 2147483648,
minUniformBufferOffsetAlignment: 32,
minStorageBufferOffsetAlignment: 32,
maxVertexBuffers: 16,
maxVertexAttributes: 32,
maxVertexBufferArrayStride: 2048,
maxInterStageShaderComponents: 128,
maxColorAttachments: 8,
maxColorAttachmentBytesPerSample: 32,
maxComputeWorkgroupStorageSize: 65536,
maxComputeInvocationsPerWorkgroup: 1024,
maxComputeWorkgroupSizeX: 1024,
maxComputeWorkgroupSizeY: 1024,
maxComputeWorkgroupSizeZ: 1024,
maxComputeWorkgroupsPerDimension: 65535
},
info: GPUAdapterInfo {
vendor: "4098",
architecture: "",
device: "29695",
description: "AMD Radeon RX 6600 (RADV NAVI23)"
},
isFallbackAdapter: false
}
```

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the reported backend-not-found error while running an ONNX model in Deno and tracing how the WebGPU backend is discovered. The issue names no files or tests, so first identify the existing Deno and WebGPU integration points; done means ONNX models run through WebGPU without the missing-backend error.

Written by the indexing model from the issue text.

Assessment

Tech stack
deno
Domain
machine-learning
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.