Download build/webgpu/manifest.json from webgpu-kernels/ai.onnx.SplitToSequence: direct link, hf CLI and curl.
- Browser
- Download file 8.46 kB
-
https://huggingface.co/kernels/webgpu-kernels/ai.onnx.SplitToSequence/resolve/v1/build/webgpu/manifest.json
- Command line
-
hf download hf://webgpu-kernels/ai.onnx.SplitToSequence@v1/build/webgpu/manifest.json
-
curl -L -o manifest.json https://huggingface.co/kernels/webgpu-kernels/ai.onnx.SplitToSequence/resolve/v1/build/webgpu/manifest.json
8.46 kB
| { | |
| "domain": "ai.onnx", | |
| "name": "SplitToSequence", | |
| "conformance": "internal-lowering", | |
| "sinceVersion": 11, | |
| "inputs": { "input": { "dtype": "T" }, "split": { "dtype": "S", "optional": true } }, | |
| "outputs": { | |
| "y0": { "onnx": "Y0", "dtype": "T", "rank": "ranks.input if attrs.keepdims == 1 else ranks.input - 1" }, | |
| "y1": { "onnx": "Y1", "dtype": "T", "rank": "ranks.input if attrs.keepdims == 1 else ranks.input - 1" }, | |
| "y2": { | |
| "onnx": "Y2", | |
| "dtype": "T", | |
| "rank": "ranks.input if attrs.keepdims == 1 else ranks.input - 1", | |
| "optional": true | |
| }, | |
| "y3": { | |
| "onnx": "Y3", | |
| "dtype": "T", | |
| "rank": "ranks.input if attrs.keepdims == 1 else ranks.input - 1", | |
| "optional": true | |
| }, | |
| "y4": { | |
| "onnx": "Y4", | |
| "dtype": "T", | |
| "rank": "ranks.input if attrs.keepdims == 1 else ranks.input - 1", | |
| "optional": true | |
| }, | |
| "y5": { | |
| "onnx": "Y5", | |
| "dtype": "T", | |
| "rank": "ranks.input if attrs.keepdims == 1 else ranks.input - 1", | |
| "optional": true | |
| } | |
| }, | |
| "attributes": { "axis": { "default": 0 }, "keepdims": { "default": 1 } }, | |
| "attributeConstraints": { "keepdims": { "values": [0, 1] } }, | |
| "typeConstraints": { "T": ["float32", "float16", "bool"], "S": ["uint32"] }, | |
| "tunables": { "WORKGROUP_SIZE": { "default": 256 } }, | |
| "derive": { | |
| "baseContract": "ranks.input >= 1 and (attrs.axis if attrs.axis >= 0 else attrs.axis + ranks.input) >= 0 and (attrs.axis if attrs.axis >= 0 else attrs.axis + ranks.input) < ranks.input and f16Ok(dtypes.T)", | |
| "outputRankContract": "ranks.y0 == ranks.input if present.split else (ranks.y0 == ranks.input if attrs.keepdims == 1 else ranks.y0 == ranks.input - 1)", | |
| "twoOutputContract": "baseContract and not present.y2 and ranks.y0 == ranks.y1 and outputRankContract", | |
| "threeOutputContract": "baseContract and present.y2 and not present.y3 and ranks.y0 == ranks.y1 and ranks.y0 == ranks.y2 and outputRankContract", | |
| "fourOutputContract": "baseContract and present.y2 and present.y3 and not present.y4 and ranks.y0 == ranks.y1 and ranks.y0 == ranks.y2 and ranks.y0 == ranks.y3 and outputRankContract", | |
| "sixOutputContract": "baseContract and present.y2 and present.y3 and present.y4 and present.y5 and ranks.y0 == ranks.y1 and ranks.y0 == ranks.y2 and ranks.y0 == ranks.y3 and ranks.y0 == ranks.y4 and ranks.y0 == ranks.y5 and outputRankContract" | |
| }, | |
| "variants": [ | |
| { | |
| "id": "two_outputs", | |
| "when": ["twoOutputContract"], | |
| "passes": [ | |
| { | |
| "id": "main", | |
| "name": "SplitToSequence2", | |
| "shader": "split-to-sequence.wgsl.jinja", | |
| "derive": { | |
| "inputShape": "shapes.input", | |
| "rank": "ranks.input", | |
| "axisSpec": "attrs.axis if attrs.axis >= 0 else attrs.axis + ranks.input", | |
| "squeeze": "ranks.y0 < ranks.input", | |
| "numOutputs": "2", | |
| "outShapes": ["shapes.y0", "shapes.y1"] | |
| }, | |
| "bindings": [ | |
| "input", | |
| "y0", | |
| "y1", | |
| { | |
| "name": "params", | |
| "struct": [ | |
| { "name": "y0Count", "type": "u32", "value": "numel(shapes.y0)" }, | |
| { "name": "y1Count", "type": "u32", "value": "numel(shapes.y1)" } | |
| ] | |
| } | |
| ], | |
| "dispatch": { | |
| "x": "min(ceilDiv((max(numel(shapes.y0), numel(shapes.y1))), (tunables.WORKGROUP_SIZE)), 65535)", | |
| "y": "ceilDiv(ceilDiv((max(numel(shapes.y0), numel(shapes.y1))), (tunables.WORKGROUP_SIZE)), 65535)", | |
| "z": 1 | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "three_outputs", | |
| "priority": 20, | |
| "when": ["threeOutputContract"], | |
| "passes": [ | |
| { | |
| "id": "main", | |
| "name": "SplitToSequence3", | |
| "shader": "split-to-sequence.wgsl.jinja", | |
| "derive": { | |
| "inputShape": "shapes.input", | |
| "rank": "ranks.input", | |
| "axisSpec": "attrs.axis if attrs.axis >= 0 else attrs.axis + ranks.input", | |
| "squeeze": "ranks.y0 < ranks.input", | |
| "numOutputs": "3", | |
| "outShapes": ["shapes.y0", "shapes.y1", "shapes.y2"] | |
| }, | |
| "bindings": [ | |
| "input", | |
| "y0", | |
| "y1", | |
| "y2", | |
| { | |
| "name": "params", | |
| "struct": [ | |
| { "name": "y0Count", "type": "u32", "value": "numel(shapes.y0)" }, | |
| { "name": "y1Count", "type": "u32", "value": "numel(shapes.y1)" }, | |
| { "name": "y2Count", "type": "u32", "value": "numel(shapes.y2)" } | |
| ] | |
| } | |
| ], | |
| "dispatch": { | |
| "x": "min(ceilDiv((max(max(numel(shapes.y0), numel(shapes.y1)), numel(shapes.y2))), (tunables.WORKGROUP_SIZE)), 65535)", | |
| "y": "ceilDiv(ceilDiv((max(max(numel(shapes.y0), numel(shapes.y1)), numel(shapes.y2))), (tunables.WORKGROUP_SIZE)), 65535)", | |
| "z": 1 | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "four_outputs", | |
| "priority": 30, | |
| "when": ["fourOutputContract"], | |
| "passes": [ | |
| { | |
| "id": "main", | |
| "name": "SplitToSequence4", | |
| "shader": "split-to-sequence.wgsl.jinja", | |
| "derive": { | |
| "inputShape": "shapes.input", | |
| "rank": "ranks.input", | |
| "axisSpec": "attrs.axis if attrs.axis >= 0 else attrs.axis + ranks.input", | |
| "squeeze": "ranks.y0 < ranks.input", | |
| "numOutputs": "4", | |
| "outShapes": ["shapes.y0", "shapes.y1", "shapes.y2", "shapes.y3"] | |
| }, | |
| "bindings": [ | |
| "input", | |
| "y0", | |
| "y1", | |
| "y2", | |
| "y3", | |
| { | |
| "name": "params", | |
| "struct": [ | |
| { "name": "y0Count", "type": "u32", "value": "numel(shapes.y0)" }, | |
| { "name": "y1Count", "type": "u32", "value": "numel(shapes.y1)" }, | |
| { "name": "y2Count", "type": "u32", "value": "numel(shapes.y2)" }, | |
| { "name": "y3Count", "type": "u32", "value": "numel(shapes.y3)" } | |
| ] | |
| } | |
| ], | |
| "dispatch": { | |
| "x": "min(ceilDiv((max(max(max(numel(shapes.y0), numel(shapes.y1)), numel(shapes.y2)), numel(shapes.y3))), (tunables.WORKGROUP_SIZE)), 65535)", | |
| "y": "ceilDiv(ceilDiv((max(max(max(numel(shapes.y0), numel(shapes.y1)), numel(shapes.y2)), numel(shapes.y3))), (tunables.WORKGROUP_SIZE)), 65535)", | |
| "z": 1 | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "id": "six_outputs", | |
| "priority": 40, | |
| "when": ["sixOutputContract"], | |
| "passes": [ | |
| { | |
| "id": "main", | |
| "name": "SplitToSequence6", | |
| "shader": "split-to-sequence.wgsl.jinja", | |
| "derive": { | |
| "inputShape": "shapes.input", | |
| "rank": "ranks.input", | |
| "axisSpec": "attrs.axis if attrs.axis >= 0 else attrs.axis + ranks.input", | |
| "squeeze": "ranks.y0 < ranks.input", | |
| "numOutputs": "6", | |
| "outShapes": ["shapes.y0", "shapes.y1", "shapes.y2", "shapes.y3", "shapes.y4", "shapes.y5"] | |
| }, | |
| "bindings": [ | |
| "input", | |
| "y0", | |
| "y1", | |
| "y2", | |
| "y3", | |
| "y4", | |
| "y5", | |
| { | |
| "name": "params", | |
| "struct": [ | |
| { "name": "y0Count", "type": "u32", "value": "numel(shapes.y0)" }, | |
| { "name": "y1Count", "type": "u32", "value": "numel(shapes.y1)" }, | |
| { "name": "y2Count", "type": "u32", "value": "numel(shapes.y2)" }, | |
| { "name": "y3Count", "type": "u32", "value": "numel(shapes.y3)" }, | |
| { "name": "y4Count", "type": "u32", "value": "numel(shapes.y4)" }, | |
| { "name": "y5Count", "type": "u32", "value": "numel(shapes.y5)" } | |
| ] | |
| } | |
| ], | |
| "dispatch": { | |
| "x": "min(ceilDiv((max(max(max(max(max(numel(shapes.y0), numel(shapes.y1)), numel(shapes.y2)), numel(shapes.y3)), numel(shapes.y4)), numel(shapes.y5))), (tunables.WORKGROUP_SIZE)), 65535)", | |
| "y": "ceilDiv(ceilDiv((max(max(max(max(max(numel(shapes.y0), numel(shapes.y1)), numel(shapes.y2)), numel(shapes.y3)), numel(shapes.y4)), numel(shapes.y5))), (tunables.WORKGROUP_SIZE)), 65535)", | |
| "z": 1 | |
| } | |
| } | |
| ] | |
| } | |
| ] | |
| } | |