microsoft / microsoft/onnxruntime
[Feature request] Deno webgpu support
- 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
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