ai.onnx.Cast / build /webgpu /bench.json
Xenova's picture
Xenova HF Staff
sync 6fdf6301e2bb
ab68eb1 verified
Raw History Blame
6.38 kB
{
"tunableSpace": { "WORKGROUP_SIZE": [64, 128, 256] },
"cases": [
{
"name": "cast-f32-u32-1m",
"preset": "smoke",
"vars": { "inputDtype": "float32", "outputDtype": "uint32", "count": 1048576 },
"attrs": { "to": 12 },
"inputs": {
"x": { "shape": [1048576], "dtype": "float32", "dist": "uniform", "seed": 103, "scale": 32, "signed": false }
},
"outputs": { "y": { "shape": [1048576], "dtype": "uint32" } },
"bench": {
"primary": true,
"metrics": [
{ "type": "bandwidth", "value": "args.count * (dtypeBytes(args.inputDtype) + dtypeBytes(args.outputDtype))" }
]
}
},
{
"name": "cast-f32-u32-1m-plus3",
"preset": "smoke",
"vars": { "inputDtype": "float32", "outputDtype": "uint32", "count": 1048579 },
"attrs": { "to": 12 },
"inputs": {
"x": { "shape": [1048579], "dtype": "float32", "dist": "uniform", "seed": 104, "scale": 32, "signed": false }
},
"outputs": { "y": { "shape": [1048579], "dtype": "uint32" } },
"bench": {
"metrics": [
{ "type": "bandwidth", "value": "args.count * (dtypeBytes(args.inputDtype) + dtypeBytes(args.outputDtype))" }
]
}
},
{
"name": "cast-f32-u32-16m",
"preset": "smoke",
"vars": { "inputDtype": "float32", "outputDtype": "uint32", "count": 16777216 },
"attrs": { "to": 12 },
"inputs": {
"x": { "shape": [16777216], "dtype": "float32", "dist": "uniform", "seed": 108, "scale": 32, "signed": false }
},
"outputs": { "y": { "shape": [16777216], "dtype": "uint32" } },
"bench": {
"metrics": [
{ "type": "bandwidth", "value": "args.count * (dtypeBytes(args.inputDtype) + dtypeBytes(args.outputDtype))" }
]
}
},
{
"name": "cast-f32-f16-1m",
"preset": "smoke",
"vars": { "inputDtype": "float32", "outputDtype": "float16", "count": 1048576 },
"attrs": { "to": 10 },
"inputs": { "x": { "shape": [1048576], "dtype": "float32", "dist": "normal", "seed": 105 } },
"outputs": { "y": { "shape": [1048576], "dtype": "float16" } },
"bench": {
"metrics": [
{ "type": "bandwidth", "value": "args.count * (dtypeBytes(args.inputDtype) + dtypeBytes(args.outputDtype))" }
]
}
},
{
"name": "cast-f16-f32-1m",
"preset": "smoke",
"vars": { "inputDtype": "float16", "outputDtype": "float32", "count": 1048576 },
"attrs": { "to": 1 },
"inputs": { "x": { "shape": [1048576], "dtype": "float16", "dist": "normal", "seed": 106 } },
"outputs": { "y": { "shape": [1048576], "dtype": "float32" } },
"bench": {
"metrics": [
{ "type": "bandwidth", "value": "args.count * (dtypeBytes(args.inputDtype) + dtypeBytes(args.outputDtype))" }
]
}
},
{
"name": "cast-i8-f32-1m-plus3",
"preset": "smoke",
"vars": { "inputDtype": "int8", "outputDtype": "float32", "count": 1048579 },
"attrs": { "to": 1 },
"inputs": {
"x": { "shape": [1048579], "dtype": "int8", "dist": "uniform", "seed": 107, "min": -128, "max": 128 }
},
"outputs": { "y": { "shape": [1048579], "dtype": "float32" } },
"bench": {
"metrics": [
{ "type": "bandwidth", "value": "args.count * (dtypeBytes(args.inputDtype) + dtypeBytes(args.outputDtype))" }
]
}
},
{
"name": "cast-i32-bool-4m-scalar-pathology",
"preset": "smoke",
"provenance": {
"notes": "An aligned 4,194,304-element cast from int32 to bool. The paired float32-to-int32 case uses the same tensor extent."
},
"vars": { "inputDtype": "int32", "outputDtype": "bool", "count": 4194304 },
"attrs": { "to": 9 },
"inputs": { "x": { "shape": [4194304], "dtype": "int32", "dist": "uniform", "seed": 109, "min": -3, "max": 4 } },
"outputs": { "y": { "shape": [4194304], "dtype": "bool" } },
"bench": {
"metrics": [
{ "type": "bandwidth", "value": "args.count * (dtypeBytes(args.inputDtype) + dtypeBytes(args.outputDtype))" }
]
}
},
{
"name": "cast-f32-i32-4m-control",
"preset": "smoke",
"provenance": {
"notes": "Same 8 bytes per element as cast-i32-bool-4m-scalar-pathology (f32 in, 4-byte int32 out) on the aligned same_layout_vec4 route."
},
"vars": { "inputDtype": "float32", "outputDtype": "int32", "count": 4194304 },
"attrs": { "to": 6 },
"inputs": { "x": { "shape": [4194304], "dtype": "float32", "dist": "normal", "seed": 110, "scale": 32 } },
"outputs": { "y": { "shape": [4194304], "dtype": "int32" } },
"bench": {
"metrics": [
{ "type": "bandwidth", "value": "args.count * (dtypeBytes(args.inputDtype) + dtypeBytes(args.outputDtype))" }
]
}
},
{
"name": "cast-f32-f16-4194305-vec4-tail-pathology",
"preset": "smoke",
"provenance": {
"notes": "One element past a 4,194,304-element aligned cast leaves a one-element tail; the paired 4,194,304-element case checks the aligned boundary."
},
"vars": { "inputDtype": "float32", "outputDtype": "float16", "count": 4194305 },
"attrs": { "to": 10 },
"inputs": { "x": { "shape": [4194305], "dtype": "float32", "dist": "normal", "seed": 113 } },
"outputs": { "y": { "shape": [4194305], "dtype": "float16" } },
"bench": {
"metrics": [
{ "type": "bandwidth", "value": "args.count * (dtypeBytes(args.inputDtype) + dtypeBytes(args.outputDtype))" }
]
}
},
{
"name": "cast-f32-f16-4194304-control",
"preset": "smoke",
"provenance": {
"notes": "An aligned four-million-element input measures the vec4-only float32-to-float16 path without a scalar tail."
},
"vars": { "inputDtype": "float32", "outputDtype": "float16", "count": 4194304 },
"attrs": { "to": 10 },
"inputs": { "x": { "shape": [4194304], "dtype": "float32", "dist": "normal", "seed": 114 } },
"outputs": { "y": { "shape": [4194304], "dtype": "float16" } },
"bench": {
"metrics": [
{ "type": "bandwidth", "value": "args.count * (dtypeBytes(args.inputDtype) + dtypeBytes(args.outputDtype))" }
]
}
}
]
}