ai.onnx.Loop / build /webgpu /manifest.json
Xenova's picture
Xenova HF Staff
sync 91d990483a17
5e1310a verified
Raw
History Blame
1.86 kB
{
"domain": "ai.onnx",
"name": "Loop",
"conformance": "internal-lowering",
"sinceVersion": 25,
"inputs": {
"m": { "onnx": "M", "dtype": "I" },
"cond": { "dtype": "B" },
"v_initial": { "dtype": "T", "rank": 1 },
"step": { "dtype": "T", "rank": 1 }
},
"outputs": {
"v_final": { "dtype": "T", "rank": 1, "shape": "shapes.v_initial" },
"scan_output": { "dtype": "T", "rank": 2 }
},
"typeConstraints": { "T": ["float32"], "I": ["uint32"], "B": ["uint32", "bool"] },
"variants": [
{
"id": "lowered_add_step",
"when": ["ranks.m <= 1", "numel(shapes.m) == 1", "ranks.cond <= 1", "numel(shapes.cond) == 1", "ranks.v_initial == 1", "ranks.step == 1", "ranks.v_final == 1", "ranks.scan_output == 2", "dim(shapes.step, 0) == dim(shapes.v_initial, 0)", "dim(shapes.v_final, 0) == dim(shapes.v_initial, 0)", "dim(shapes.scan_output, 1) == dim(shapes.v_initial, 0)"],
"derive": { "dimBlocks": "ceil(dim(shapes.v_initial, 0) / 256)" },
"passes": [
{
"id": "main",
"name": "Loop",
"shader": "loop-add-step.wgsl.jinja",
"bindings": [
{ "arg": "m", "elementType": "u32", "length": 1 },
{ "arg": "cond", "elementType": "u32", "length": 1 },
{ "arg": "v_initial", "elementType": "f32" },
{ "arg": "step", "elementType": "f32" },
{ "arg": "v_final", "elementType": "f32" },
{ "arg": "scan_output", "elementType": "f32" },
{
"name": "params",
"struct": [
{ "name": "dim", "type": "u32", "value": "dim(shapes.v_initial, 0)" },
{ "name": "scanSteps", "type": "u32", "value": "dim(shapes.scan_output, 0)" }
]
}
],
"dispatch": { "x": "dimBlocks" }
}
]
}
]
}