{ "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))" } ] } } ] }