| { |
| "cases": [ |
| { |
| "name": "inner_broadcast_consecutive_row_groups", |
| "provenance": { |
| "source": "onnxruntime/contrib_ops/cuda/math/bias_softmax_impl.cu", |
| "notes": "Distinguishes flattened inner-broadcast row grouping from outer mode and right-aligned broadcasting." |
| }, |
| "attrs": { "axis": -1, "is_inner_broadcast": 1 }, |
| "inputs": { |
| "data": { "dtype": "float32", "shape": [2, 3, 2], "data": { "kind": "constant", "value": 0.0 } }, |
| "bias": { "dtype": "float32", "shape": [2, 2], "data": { "kind": "values", "values": [0.0, 2.0, 2.0, 0.0] } } |
| }, |
| "outputs": { |
| "output": { |
| "dtype": "float32", |
| "shape": [2, 3, 2], |
| "tolerance": 0.000001, |
| "relTolerance": 0.000001, |
| "data": { |
| "kind": "values", |
| "values": [0.119202922022, 0.880797077978, 0.119202922022, 0.880797077978, 0.119202922022, 0.880797077978, 0.880797077978, 0.119202922022, 0.880797077978, 0.119202922022, 0.880797077978, 0.119202922022] |
| } |
| } |
| } |
| }, |
| { |
| "name": "outer_broadcast_cycles_bias_rows", |
| "provenance": { |
| "source": "onnxruntime/contrib_ops/cuda/math/bias_softmax_impl.cu", |
| "notes": "Non-broadcastable data and bias shapes exercise cyclic outer-broadcast row selection." |
| }, |
| "attrs": { "axis": -1, "is_inner_broadcast": 0 }, |
| "inputs": { |
| "data": { "dtype": "float32", "shape": [2, 3, 2], "data": { "kind": "constant", "value": 0.0 } }, |
| "bias": { "dtype": "float32", "shape": [2, 2], "data": { "kind": "values", "values": [0.0, 2.0, 2.0, 0.0] } } |
| }, |
| "outputs": { |
| "output": { |
| "dtype": "float32", |
| "shape": [2, 3, 2], |
| "tolerance": 0.000001, |
| "relTolerance": 0.000001, |
| "data": { |
| "kind": "values", |
| "values": [0.119202922022, 0.880797077978, 0.880797077978, 0.119202922022, 0.119202922022, 0.880797077978, 0.880797077978, 0.119202922022, 0.119202922022, 0.880797077978, 0.880797077978, 0.119202922022] |
| } |
| } |
| } |
| }, |
| { |
| "name": "ort_inner_broadcast_full_suffix_softmax", |
| "provenance": { |
| "source": "onnxruntime/test/contrib_ops/bias_softmax_op_test.cc", |
| "test": "BiasSoftmaxTest.InnerBroadcastFullBiasBatch", |
| "notes": "Small deterministic suffix-softmax case." |
| }, |
| "attrs": { "axis": 1, "is_inner_broadcast": 1 }, |
| "inputs": { |
| "data": { "dtype": "float32", "shape": [1, 2, 2], "data": { "kind": "values", "values": [0.0, 0.0, 0.0, 0.0] } }, |
| "bias": { "dtype": "float32", "shape": [1, 2, 2], "data": { "kind": "values", "values": [0.0, 1.0, 2.0, 3.0] } } |
| }, |
| "outputs": { |
| "output": { |
| "dtype": "float32", |
| "shape": [1, 2, 2], |
| "tolerance": 0.000001, |
| "relTolerance": 0.000001, |
| "data": { "kind": "values", "values": [0.03205860328, 0.087144318742, 0.23688281809, 0.643914259888] } |
| } |
| } |
| }, |
| { |
| "name": "ort_inner_broadcast_empty_bias_batch", |
| "provenance": { |
| "source": "onnxruntime/test/contrib_ops/bias_softmax_op_test.cc", |
| "test": "BiasSoftmaxTest.InnerBroadcastEmptyBiasBatch", |
| "notes": "Compact deterministic projection where one bias batch broadcasts across two input batches." |
| }, |
| "attrs": { "axis": 1, "is_inner_broadcast": 1 }, |
| "inputs": { |
| "data": { |
| "dtype": "float32", |
| "shape": [2, 2, 2], |
| "data": { "kind": "values", "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] } |
| }, |
| "bias": { "dtype": "float32", "shape": [1, 2, 2], "data": { "kind": "values", "values": [0.0, 1.0, 2.0, 3.0] } } |
| }, |
| "outputs": { |
| "output": { |
| "dtype": "float32", |
| "shape": [2, 2, 2], |
| "tolerance": 0.000001, |
| "relTolerance": 0.000001, |
| "data": { |
| "kind": "values", |
| "values": [0.03205860328, 0.087144318742, 0.23688281809, 0.643914259888, 0.03205860328, 0.087144318742, 0.23688281809, 0.643914259888] |
| } |
| } |
| } |
| }, |
| { |
| "name": "ort_inner_broadcast_negative_axis", |
| "provenance": { |
| "source": "onnxruntime/test/contrib_ops/bias_softmax_op_test.cc", |
| "test": "BiasSoftmaxTest.InnerBroadcastNegativeAxis", |
| "notes": "Negative-axis inner-broadcast case." |
| }, |
| "attrs": { "axis": -2, "is_inner_broadcast": 1 }, |
| "inputs": { |
| "data": { |
| "dtype": "float32", |
| "shape": [2, 2, 2], |
| "data": { "kind": "values", "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] } |
| }, |
| "bias": { "dtype": "float32", "shape": [1, 2, 2], "data": { "kind": "values", "values": [0.0, 1.0, 2.0, 3.0] } } |
| }, |
| "outputs": { |
| "output": { |
| "dtype": "float32", |
| "shape": [2, 2, 2], |
| "tolerance": 0.000001, |
| "relTolerance": 0.000001, |
| "data": { |
| "kind": "values", |
| "values": [0.03205860328, 0.087144318742, 0.23688281809, 0.643914259888, 0.03205860328, 0.087144318742, 0.23688281809, 0.643914259888] |
| } |
| } |
| } |
| }, |
| { |
| "name": "ort_outer_broadcast_negative_axis", |
| "provenance": { |
| "source": "onnxruntime/test/contrib_ops/bias_softmax_op_test.cc", |
| "test": "BiasSoftmaxTest.OuterBroadcastNegativeAxis", |
| "notes": "Negative-axis outer-broadcast case." |
| }, |
| "attrs": { "axis": -1, "is_inner_broadcast": 0 }, |
| "inputs": { |
| "data": { |
| "dtype": "float32", |
| "shape": [2, 2, 3], |
| "data": { "kind": "values", "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] } |
| }, |
| "bias": { |
| "dtype": "float32", |
| "shape": [2, 3], |
| "data": { "kind": "values", "values": [0.0, 1.0, 2.0, 2.0, 1.0, 0.0] } |
| } |
| }, |
| "outputs": { |
| "output": { |
| "dtype": "float32", |
| "shape": [2, 2, 3], |
| "tolerance": 0.000001, |
| "relTolerance": 0.000001, |
| "data": { |
| "kind": "values", |
| "values": [0.09003057317, 0.244728471055, 0.665240955775, 0.665240955775, 0.244728471055, 0.09003057317, 0.09003057317, 0.244728471055, 0.665240955775, 0.665240955775, 0.244728471055, 0.09003057317] |
| } |
| } |
| } |
| }, |
| { |
| "name": "ort_outer_broadcast_full_bias_batch", |
| "provenance": { |
| "source": "onnxruntime/test/contrib_ops/bias_softmax_op_test.cc", |
| "test": "BiasSoftmaxTest.OuterBroadcastFullBiasBatch", |
| "notes": "Compact deterministic projection where every input batch has its own full bias row." |
| }, |
| "attrs": { "axis": -1, "is_inner_broadcast": 0 }, |
| "inputs": { |
| "data": { |
| "dtype": "float32", |
| "shape": [2, 2, 3], |
| "data": { "kind": "values", "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] } |
| }, |
| "bias": { |
| "dtype": "float32", |
| "shape": [2, 2, 3], |
| "data": { "kind": "values", "values": [0.0, 1.0, 2.0, 2.0, 1.0, 0.0, -1.0, 0.0, 1.0, 1.0, 0.0, -1.0] } |
| } |
| }, |
| "outputs": { |
| "output": { |
| "dtype": "float32", |
| "shape": [2, 2, 3], |
| "tolerance": 0.000001, |
| "relTolerance": 0.000001, |
| "data": { |
| "kind": "values", |
| "values": [0.09003057317, 0.244728471055, 0.665240955775, 0.665240955775, 0.244728471055, 0.09003057317, 0.09003057317, 0.244728471055, 0.665240955775, 0.665240955775, 0.244728471055, 0.09003057317] |
| } |
| } |
| } |
| }, |
| { |
| "name": "f32_large_gap_subnormal_tail_gpu_gap", |
| "skipGpu": { |
| "category": "permanent", |
| "reason": "Portable WGSL floating-point semantics do not guarantee preservation of subnormal values. The 87.5-point logit gap requires a positive subnormal probability tail, which may be flushed to zero." |
| }, |
| "provenance": { |
| "source": "onnxruntime/test/contrib_ops/bias_softmax_op_test.cc", |
| "test": "BiasSoftmaxTest.InnerBroadcastFullBiasBatch", |
| "notes": "An 87.5-point logit gap leaves a positive subnormal probability tail after suffix softmax over data+bias." |
| }, |
| "attrs": { "axis": 1, "is_inner_broadcast": 1 }, |
| "inputs": { |
| "data": { "dtype": "float32", "shape": [1, 2], "data": { "kind": "values", "values": [0.0, -87.5] } }, |
| "bias": { "dtype": "float32", "shape": [1, 2], "data": { "kind": "values", "values": [0.0, 0.0] } } |
| }, |
| "outputs": { |
| "output": { |
| "dtype": "float32", |
| "shape": [1, 2], |
| "tolerance": 2e-45, |
| "relTolerance": 0, |
| "data": { "kind": "values", "values": [1.0, 9.982351397596697e-39] } |
| } |
| } |
| }, |
| { |
| "name": "ort_outer_broadcast_empty_bias_batch", |
| "provenance": { |
| "source": "onnxruntime/test/contrib_ops/bias_softmax_op_test.cc", |
| "test": "BiasSoftmaxTest.OuterBroadcastEmptyBiasBatch", |
| "notes": "Compact deterministic projection where one outer-broadcast bias row is reused for every input batch." |
| }, |
| "attrs": { "axis": -1, "is_inner_broadcast": 0 }, |
| "inputs": { |
| "data": { |
| "dtype": "float32", |
| "shape": [2, 2, 3], |
| "data": { "kind": "values", "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] } |
| }, |
| "bias": { "dtype": "float32", "shape": [1, 3], "data": { "kind": "values", "values": [0.0, 1.0, 2.0] } } |
| }, |
| "outputs": { |
| "output": { |
| "dtype": "float32", |
| "shape": [2, 2, 3], |
| "tolerance": 0.000001, |
| "relTolerance": 0.000001, |
| "data": { |
| "kind": "values", |
| "values": [0.09003057317, 0.244728471055, 0.665240955775, 0.09003057317, 0.244728471055, 0.665240955775, 0.09003057317, 0.244728471055, 0.665240955775, 0.09003057317, 0.244728471055, 0.665240955775] |
| } |
| } |
| } |
| }, |
| { |
| "name": "empty_zero_dim", |
| "attrs": { "axis": 1, "is_inner_broadcast": 1 }, |
| "inputs": { |
| "data": { "dtype": "float32", "shape": [0, 2, 2], "data": { "kind": "values", "values": [] } }, |
| "bias": { "dtype": "float32", "shape": [0, 2, 2], "data": { "kind": "values", "values": [] } } |
| }, |
| "outputs": { "output": { "dtype": "float32", "shape": [0, 2, 2], "tolerance": 0 } } |
| }, |
| { |
| "name": "f16_default_axis_two_element_row", |
| "attrs": { "is_inner_broadcast": 1 }, |
| "inputs": { |
| "data": { "dtype": "float16", "shape": [1, 2], "data": { "kind": "values", "values": [0.0, 0.0] } }, |
| "bias": { "dtype": "float16", "shape": [1, 2], "data": { "kind": "values", "values": [0.0, 0.0] } } |
| }, |
| "outputs": { |
| "output": { |
| "dtype": "float16", |
| "shape": [1, 2], |
| "tolerance": 0, |
| "data": { "kind": "values", "values": [0.5, 0.5] } |
| } |
| } |
| }, |
| { |
| "name": "dispatch_cliff_rows_65537", |
| "provenance": { |
| "notes": "65,537 short rows cross the per-dimension workgroup limit. The packed route grid-strides over rows, while the generic route reconstructs row indices from a two-dimensional dispatch." |
| }, |
| "attrs": { "axis": 1, "is_inner_broadcast": 0 }, |
| "inputs": { |
| "data": { |
| "dtype": "float32", |
| "shape": [65537, 4], |
| "data": { "kind": "cycle", "values": [0.1, 0.2, 0.3, 0.4, 0.5] } |
| }, |
| "bias": { "dtype": "float32", "shape": [65537, 4], "data": { "kind": "constant", "value": 0.0 } } |
| }, |
| "outputs": { "output": { "dtype": "float32", "shape": [65537, 4], "tolerance": 0.0001 } } |
| }, |
| { |
| "name": "fully_masked_row_neg_inf_bias", |
| "provenance": { |
| "notes": "The additive bias is -Infinity across the entire suffix block. The expected result uses the package's all-zero convention for a fully masked row, preventing NaNs from propagating into attention." |
| }, |
| "attrs": { "axis": 1, "is_inner_broadcast": 0 }, |
| "inputs": { |
| "data": { "dtype": "float32", "shape": [1, 4], "data": { "kind": "values", "values": [0.0, 0.0, 0.0, 0.0] } }, |
| "bias": { |
| "dtype": "float32", |
| "shape": [1, 4], |
| "data": { "kind": "values", "values": ["-Infinity", "-Infinity", "-Infinity", "-Infinity"] } |
| } |
| }, |
| "outputs": { |
| "output": { |
| "dtype": "float32", |
| "shape": [1, 4], |
| "tolerance": 0.000001, |
| "data": { "kind": "values", "values": [0.0, 0.0, 0.0, 0.0] } |
| } |
| } |
| }, |
| { |
| "name": "attn_rows_axis3_row1_all_neg_inf_bias_2x8x4x64", |
| "provenance": { |
| "notes": "Data has shape [2, 8, 4, 64], and bias [1, 1, 4, 64] uses outer broadcasting. Bias query row 1 is -Infinity at every key, so 16 of the 64 softmax rows are fully masked and must be all zero; the other rows remain finite. This operator's zero-denominator rule differs from applying ONNX Softmax directly to data plus bias, which would produce NaN for the fully masked rows." |
| }, |
| "attrs": { "axis": 3, "is_inner_broadcast": 0 }, |
| "inputs": { |
| "data": { |
| "dtype": "float32", |
| "shape": [2, 8, 4, 64], |
| "data": { "kind": "fillFloat32", "scale": 0.5, "sinStep": 0.017, "cosStep": 0.031 } |
| }, |
| "bias": { |
| "dtype": "float32", |
| "shape": [1, 1, 4, 64], |
| "data": { |
| "kind": "values", |
| "values": [0.1, 0.1906, 0.2752, 0.3492, 0.4087, 0.4504, 0.4717, 0.4715, 0.4493, 0.4061, 0.3436, 0.265, 0.1738, 0.0744, -0.0283, -0.1293, -0.2239, -0.3075, -0.376, -0.4264, -0.4563, -0.4646, -0.4512, -0.417, -0.3642, -0.2957, -0.2155, -0.1278, -0.0373, 0.051, 0.1326, 0.2033, 0.2593, 0.2978, 0.3171, 0.3164, 0.2959, 0.2571, 0.2022, 0.1347, 0.0584, -0.0222, -0.1024, -0.1777, -0.2435, -0.296, -0.3319, -0.349, -0.3458, -0.3223, -0.2793, -0.2187, -0.1434, -0.0571, 0.0358, 0.1307, 0.2226, 0.3069, 0.379, 0.4352, 0.4725, 0.4887, 0.4829, 0.4552, "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", 0.4895, 0.458, 0.4063, 0.3372, 0.2542, 0.1614, 0.0636, -0.0343, -0.1275, -0.2114, -0.282, -0.3358, -0.3705, -0.3848, -0.3781, -0.3515, -0.3066, -0.2464, -0.1744, -0.0948, -0.0122, 0.0686, 0.1431, 0.207, 0.2566, 0.2892, 0.3028, 0.2966, 0.2708, 0.2266, 0.1664, 0.0935, 0.0118, -0.0744, -0.1602, -0.2409, -0.3121, -0.3695, -0.41, -0.4309, -0.4307, -0.4092, -0.3669, -0.3056, -0.2282, -0.1382, -0.0401, 0.0616, 0.1619, 0.2557, 0.3387, 0.4067, 0.4564, 0.4856, 0.4928, 0.4779, 0.4417, 0.3864, 0.3147, 0.2305, 0.1381, 0.0423, -0.052, -0.1401, 0.271, 0.1834, 0.0902, -0.0037, -0.0937, -0.175, -0.2436, -0.2963, -0.3304, -0.3445, -0.3382, -0.3123, -0.2685, -0.2096, -0.139, -0.061, 0.0199, 0.0989, 0.1716, 0.2336, 0.2813, 0.3118, 0.3232, 0.3144, 0.2858, 0.2386, 0.1751, 0.0984, 0.0126, -0.078, -0.1685, -0.2541, -0.3303, -0.3928, -0.4382, -0.4639, -0.4683, -0.4508, -0.4119, -0.3534, -0.278, -0.1892, -0.0912, 0.0112, 0.1131, 0.2095, 0.2959, 0.3681, 0.4226, 0.4571, 0.4701, 0.4612, 0.4311, 0.3818, 0.316, 0.2374, 0.1503, 0.0592, -0.0309, -0.1153, -0.1897, -0.2502, -0.2939, -0.3186] |
| } |
| } |
| }, |
| "outputs": { |
| "output": { "dtype": "float32", "shape": [2, 8, 4, 64], "tolerance": 0.000001, "relTolerance": 0.000001 } |
| } |
| }, |
| { |
| "name": "axis0_full_reduce_single_block", |
| "provenance": { |
| "notes": "With axis=0, one softmax block covers the whole tensor. The bias supplies one complete flattened row with shape [4,6]." |
| }, |
| "attrs": { "axis": 0, "is_inner_broadcast": 0 }, |
| "inputs": { |
| "data": { "dtype": "float32", "shape": [4, 6], "data": { "kind": "linspace", "start": -3.0, "end": 3.0 } }, |
| "bias": { |
| "dtype": "float32", |
| "shape": [4, 6], |
| "data": { |
| "kind": "values", |
| "values": [0.5, -0.5, 1.0, -1.0, 0.25, -0.25, 0.5, -0.5, 1.0, -1.0, 0.25, -0.25, 0.5, -0.5, 1.0, -1.0, 0.25, -0.25, 0.5, -0.5, 1.0, -1.0, 0.25, -0.25] |
| } |
| } |
| }, |
| "outputs": { "output": { "dtype": "float32", "shape": [4, 6], "tolerance": 0.000001, "relTolerance": 0.000001 } } |
| }, |
| { |
| "name": "bias_fold_skip_middle_dim_axis1", |
| "provenance": { |
| "notes": "Bias [1,3,4] broadcasts across the batch axis of data [2,3,4]. axis=1 reduces each 12-element suffix while the size-one bias axis is skipped during broadcast indexing." |
| }, |
| "attrs": { "axis": 1, "is_inner_broadcast": 0 }, |
| "inputs": { |
| "data": { "dtype": "float32", "shape": [2, 3, 4], "data": { "kind": "linspace", "start": -2.0, "end": 2.0 } }, |
| "bias": { "dtype": "float32", "shape": [1, 3, 4], "data": { "kind": "linspace", "start": -1.0, "end": 1.0 } } |
| }, |
| "outputs": { |
| "output": { "dtype": "float32", "shape": [2, 3, 4], "tolerance": 0.000001, "relTolerance": 0.000001 } |
| } |
| }, |
| { |
| "name": "many_two_element_rows_axis1", |
| "provenance": { |
| "notes": "Many two-element softmax rows exercise the scalar-row fallback and folded dispatch accounting used by `biassoftmax-f32-launchbound-262144x2-axis1`." |
| }, |
| "attrs": { "axis": 1, "is_inner_broadcast": 0 }, |
| "inputs": { |
| "data": { |
| "dtype": "float32", |
| "shape": [4096, 2], |
| "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.17, "cosStep": 0.31 } |
| }, |
| "bias": { "dtype": "float32", "shape": [1, 2], "data": { "kind": "values", "values": [0.125, -0.25] } } |
| }, |
| "outputs": { |
| "output": { "dtype": "float32", "shape": [4096, 2], "tolerance": 0.000001, "relTolerance": 0.000001 } |
| } |
| }, |
| { |
| "name": "longrow_split_inner_broadcast_axis1_4x65536_groups2", |
| "provenance": { |
| "notes": "A long split row with consecutive inner-broadcast groups checks that each group reads the correct bias row across the full reduction." |
| }, |
| "attrs": { "axis": 1, "is_inner_broadcast": 1 }, |
| "inputs": { |
| "data": { |
| "dtype": "float32", |
| "shape": [4, 65536], |
| "data": { "kind": "fillFloat32", "scale": 0.5, "sinStep": 0.0017, "cosStep": 0.0031 } |
| }, |
| "bias": { |
| "dtype": "float32", |
| "shape": [2, 65536], |
| "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.0011, "cosStep": 0.0023 } |
| } |
| }, |
| "outputs": { |
| "output": { "dtype": "float32", "shape": [4, 65536], "tolerance": 0.000001, "relTolerance": 0.00001 } |
| } |
| }, |
| { |
| "name": "longrow_split_f16_axis1_4x65536_groups2", |
| "provenance": { |
| "notes": "Exercises float16 storage on the split long-row path over 65536 elements. A -30-to-0 ramp concentrates probability mass so normal float16 outputs and underflowing tail zeros coexist, while the row statistics remain in float32 scratch." |
| }, |
| "attrs": { "axis": 1, "is_inner_broadcast": 1 }, |
| "inputs": { |
| "data": { "dtype": "float16", "shape": [4, 65536], "data": { "kind": "linspace", "start": -30.0, "end": 0.0 } }, |
| "bias": { "dtype": "float16", "shape": [2, 65536], "data": { "kind": "constant", "value": 0.0 } } |
| }, |
| "outputs": { "output": { "dtype": "float16", "shape": [4, 65536], "tolerance": 1e-7, "relTolerance": 0.01 } } |
| }, |
| { |
| "name": "attn_rows_axis2_4x64x256", |
| "provenance": { |
| "notes": "An attention-score layout with broadcast bias exercises many axis-2 softmax rows at a compact scale representative of `biassoftmax-f32-attn-32x512x512`." |
| }, |
| "attrs": { "axis": 2, "is_inner_broadcast": 0 }, |
| "inputs": { |
| "data": { |
| "dtype": "float32", |
| "shape": [4, 64, 256], |
| "data": { "kind": "fillFloat32", "scale": 0.5, "sinStep": 0.017, "cosStep": 0.031 } |
| }, |
| "bias": { |
| "dtype": "float32", |
| "shape": [1, 64, 256], |
| "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.011, "cosStep": 0.023 } |
| } |
| }, |
| "outputs": { |
| "output": { "dtype": "float32", "shape": [4, 64, 256], "tolerance": 0.000001, "relTolerance": 0.000001 } |
| } |
| }, |
| { |
| "name": "rank8_inner_broadcast_full_suffix_softmax", |
| "attrs": { "axis": 1, "is_inner_broadcast": 1 }, |
| "inputs": { |
| "data": { |
| "dtype": "float32", |
| "shape": [1, 2, 1, 2, 1, 2, 2, 2], |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.27 } |
| }, |
| "bias": { |
| "dtype": "float32", |
| "shape": [1, 2, 1, 2, 1, 2, 2, 2], |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.11 } |
| } |
| }, |
| "outputs": { "output": { "dtype": "float32", "shape": [1, 2, 1, 2, 1, 2, 2, 2], "tolerance": 0.000002 } } |
| } |
| ] |
| } |
|
|