diff --git "a/build/webgpu/test.json" "b/build/webgpu/test.json" --- "a/build/webgpu/test.json" +++ "b/build/webgpu/test.json" @@ -3,6 +3,64 @@ "prompt_separate_two_layouts_input_blockColIndicesT": [0, 0, 1, 1, 2, 1, 2, 3, -1, 0, 0, 1, 0, 1, 2, 0, 2, 3] }, "cases": [ + { + "name": "prompt_separate_f32_tile8_occupancy_b4_s68_h32", + "provenance": { + "notes": "A 4-batch, 68-token sparse-attention prompt (not a multiple of the 64-token block size) with 32 query heads grouped 4:1 over 8 key/value heads, head width 128." + }, + "attrs": { "num_heads": 32, "kv_num_heads": 8, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [4, 68, 4096], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [4, 68, 1024], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [4, 68, 1024], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [4, 8, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [4, 8, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [4, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 3, 5, 7, 0, 1, 3, 5, 7, 0, 1, 3, 5, 7] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [4, 7], + "data": { + "kind": "values", + "values": [0, 0, 1, 0, 2, 1, 3, 0, 0, 1, 0, 2, 1, 3, 0, 0, 1, 0, 2, 1, 3, 0, 0, 1, 0, 2, 1, 3] + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [68] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [4], + "data": { "kind": "values", "values": [68, 68, 68, 68] } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [4, 68, 4096], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [4, 8, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [4, 8, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, { "name": "prompt_separate_two_layouts", "provenance": { @@ -786,7 +844,7 @@ { "name": "sgmat_prompt_packed_blk64", "provenance": { - "notes": "Packed [Q|K|V] prefill on the subgroup-matrix route; layout 0 crosses the triangular dense-count threshold so its column values are ignored, layout 1 keeps a gapped sparse row." + "notes": "Packed [Q|K|V] prefill checks that layout 0 ignores dense-row column values while layout 1 retains a gapped sparse row." }, "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 64 }, "inputs": { @@ -864,7 +922,7 @@ { "name": "sgmat_prompt_packed_rotary_interleaved_blk64", "provenance": { - "notes": "Packed [Q|K|V] prefill with full interleaved rotary at head_size 32, the narrowest head the subgroup-matrix route admits (a single reduction chunk)." + "notes": "A packed [Q|K|V] prefill with 2 query and 2 key/value heads at head width 32, full interleaved rotary embedding (rotary dimension equal to head width), and 64-token sparse blocks." }, "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 1 }, "inputs": { @@ -969,7 +1027,7 @@ { "name": "sgmat_chunked_two_mask_rows", "provenance": { - "notes": "Chunked prefill with per-batch histories of 100 and 68 tokens: each 64-query tile straddles two mask rows at different split points, the misaligned path a runtime past length forces." + "notes": "A chunked sparse-attention prefill with 2 batches: past lengths of 100 and 68 tokens (each not a multiple of the 64-token block size) precede a shared 64-token query chunk. 2 query and 2 key/value heads, head width 64." }, "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, "inputs": { @@ -1024,7 +1082,7 @@ { "name": "sgmat_empty_row_uniform_fallback", "provenance": { - "notes": "The second mask row selects no blocks, so all 64 of its queries carry zero probability mass and take the uniform average over causal history on the subgroup-matrix route." + "notes": "The second block row of the mask is empty, so its 64 queries follow ONNX Runtime's all-masked behavior and return the uniform average of the values in their causal history." }, "attrs": { "num_heads": 1, "kv_num_heads": 1, "sparse_block_size": 64 }, "inputs": { @@ -1605,6 +1663,6058 @@ "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } } + }, + { + "name": "value-partition-float32-d8-s1", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 1, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 1, 16], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 1, 16], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 64, 8], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 64, 8], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 1, 32], "tolerance": 0.00003, "relTolerance": 0.0003 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 64, 8], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 64, 8], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float32-d8-s5", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 5, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 5, 16], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 5, 16], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 64, 8], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 64, 8], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 5, 32], "tolerance": 0.00003, "relTolerance": 0.0003 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 64, 8], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 64, 8], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float32-d24-s1", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 1, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 1, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 1, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 64, 24], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 64, 24], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 1, 96], "tolerance": 0.00003, "relTolerance": 0.0003 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 64, 24], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 64, 24], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float32-d24-s5", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 5, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 5, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 5, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 64, 24], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 64, 24], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 5, 96], "tolerance": 0.00003, "relTolerance": 0.0003 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 64, 24], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 64, 24], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float32-d32-s1", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 1, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 1, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 1, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 64, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 64, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 1, 128], "tolerance": 0.00003, "relTolerance": 0.0003 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 64, 32], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 64, 32], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float32-d32-s5", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 5, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 5, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 5, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 64, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 64, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 5, 128], "tolerance": 0.00003, "relTolerance": 0.0003 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 64, 32], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 64, 32], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float32-d48-s1", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 1, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 1, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 1, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 64, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 64, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 1, 192], "tolerance": 0.00003, "relTolerance": 0.0003 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 64, 48], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 64, 48], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float32-d48-s5", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 5, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 5, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 5, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 64, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 64, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 5, 192], "tolerance": 0.00003, "relTolerance": 0.0003 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 64, 48], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 64, 48], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float32-d64-s1", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 1, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 1, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 1, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 64, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 64, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 1, 256], "tolerance": 0.00003, "relTolerance": 0.0003 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 64, 64], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 64, 64], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float32-d64-s5", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 5, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 5, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 5, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 64, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 64, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 5, 256], "tolerance": 0.00003, "relTolerance": 0.0003 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 64, 64], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 64, 64], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float32-d96-s1", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 1, 384], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 1, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 1, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 64, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 64, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 1, 384], "tolerance": 0.00003, "relTolerance": 0.0003 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 64, 96], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 64, 96], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float32-d96-s5", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 5, 384], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 5, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 5, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 64, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 64, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 5, 384], "tolerance": 0.00003, "relTolerance": 0.0003 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 64, 96], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 64, 96], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float32-d128-s1", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 1, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 1, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 1, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 64, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 64, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 1, 512], "tolerance": 0.00003, "relTolerance": 0.0003 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 64, 128], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 64, 128], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float32-d128-s5", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 5, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 5, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 5, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 64, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 64, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 5, 512], "tolerance": 0.00003, "relTolerance": 0.0003 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 64, 128], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 64, 128], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float32-d256-s1", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 1, 1024], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 1, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 1, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 64, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 64, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 1, 1024], "tolerance": 0.00003, "relTolerance": 0.0003 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 64, 256], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 64, 256], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float32-d256-s5", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 5, 1024], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 5, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 5, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 64, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 64, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 5, 1024], "tolerance": 0.00003, "relTolerance": 0.0003 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 64, 256], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 64, 256], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float32-d512-s1", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 1, 2048], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 1, 1024], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 1, 1024], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 64, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 64, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 1, 2048], "tolerance": 0.00003, "relTolerance": 0.0003 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 64, 512], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 64, 512], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float32-d512-s5", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 5, 2048], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 5, 1024], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 5, 1024], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 64, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 64, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 5, 2048], "tolerance": 0.00003, "relTolerance": 0.0003 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 64, 512], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 64, 512], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float32-d520-s1", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 1, 2080], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 1, 1040], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 1, 1040], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 64, 520], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 64, 520], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 1, 2080], "tolerance": 0.00003, "relTolerance": 0.0003 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 64, 520], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 64, 520], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float32-d520-s5", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 5, 2080], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 5, 1040], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 5, 1040], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 64, 520], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 64, 520], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 5, 2080], "tolerance": 0.00003, "relTolerance": 0.0003 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 64, 520], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 64, 520], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float16-d8-s1", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 1, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 1, 16], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 1, 16], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 64, 8], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 64, 8], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 1, 32], "tolerance": 0.003, "relTolerance": 0.01 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 64, 8], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 64, 8], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float16-d8-s5", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 5, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 5, 16], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 5, 16], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 64, 8], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 64, 8], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 5, 32], "tolerance": 0.003, "relTolerance": 0.01 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 64, 8], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 64, 8], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float16-d24-s1", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 1, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 1, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 1, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 64, 24], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 64, 24], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 1, 96], "tolerance": 0.003, "relTolerance": 0.01 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 64, 24], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 64, 24], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float16-d24-s5", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 5, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 5, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 5, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 64, 24], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 64, 24], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 5, 96], "tolerance": 0.003, "relTolerance": 0.01 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 64, 24], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 64, 24], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float16-d32-s1", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 1, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 1, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 1, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 64, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 64, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 1, 128], "tolerance": 0.003, "relTolerance": 0.01 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 64, 32], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 64, 32], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float16-d32-s5", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 5, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 5, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 5, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 64, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 64, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 5, 128], "tolerance": 0.003, "relTolerance": 0.01 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 64, 32], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 64, 32], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float16-d48-s1", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 1, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 1, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 1, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 64, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 64, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 1, 192], "tolerance": 0.003, "relTolerance": 0.01 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 64, 48], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 64, 48], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float16-d48-s5", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 5, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 5, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 5, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 64, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 64, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 5, 192], "tolerance": 0.003, "relTolerance": 0.01 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 64, 48], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 64, 48], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float16-d64-s1", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 1, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 1, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 1, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 64, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 64, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 1, 256], "tolerance": 0.003, "relTolerance": 0.01 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 64, 64], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 64, 64], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float16-d64-s5", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 5, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 5, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 5, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 64, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 64, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 5, 256], "tolerance": 0.003, "relTolerance": 0.01 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 64, 64], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 64, 64], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float16-d96-s1", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 1, 384], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 1, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 1, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 64, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 64, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 1, 384], "tolerance": 0.003, "relTolerance": 0.01 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 64, 96], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 64, 96], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float16-d96-s5", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 5, 384], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 5, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 5, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 64, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 64, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 5, 384], "tolerance": 0.003, "relTolerance": 0.01 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 64, 96], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 64, 96], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float16-d128-s1", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 1, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 1, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 1, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 64, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 64, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 1, 512], "tolerance": 0.003, "relTolerance": 0.01 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 64, 128], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 64, 128], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float16-d128-s5", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 5, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 5, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 5, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 64, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 64, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 5, 512], "tolerance": 0.003, "relTolerance": 0.01 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 64, 128], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 64, 128], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float16-d256-s1", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 1, 1024], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 1, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 1, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 64, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 64, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 1, 1024], "tolerance": 0.003, "relTolerance": 0.01 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 64, 256], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 64, 256], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float16-d256-s5", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 5, 1024], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 5, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 5, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 64, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 64, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 5, 1024], "tolerance": 0.003, "relTolerance": 0.01 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 64, 256], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 64, 256], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float16-d512-s1", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 1, 2048], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 1, 1024], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 1, 1024], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 64, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 64, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 1, 2048], "tolerance": 0.003, "relTolerance": 0.01 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 64, 512], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 64, 512], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float16-d512-s5", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 5, 2048], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 5, 1024], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 5, 1024], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 64, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 64, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 5, 2048], "tolerance": 0.003, "relTolerance": 0.01 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 64, 512], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 64, 512], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float16-d520-s1", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 1, 2080], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 1, 1040], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 1, 1040], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 64, 520], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 64, 520], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 1, 2080], "tolerance": 0.003, "relTolerance": 0.01 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 64, 520], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 64, 520], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-partition-float16-d520-s5", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 5, 2080], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 5, 1040], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 5, 1040], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 64, 520], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 64, 520], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 5, 2080], "tolerance": 0.003, "relTolerance": 0.01 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 64, 520], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 64, 520], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "value-owner-float32-d144-wg32-s1", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 1, 576], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 1, 288], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 1, 288], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 64, 144], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 64, 144], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 1, 576], "tolerance": 0.00003, "relTolerance": 0.0003 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 64, 144], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 64, 144], "tolerance": 0, "relTolerance": 0 } + }, + "tunables": { "WORKGROUP_SIZE": 32 } + }, + { + "name": "value-owner-float32-d144-wg32-s5", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 5, 576], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 5, 288], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 5, 288], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 64, 144], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 64, 144], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 5, 576], "tolerance": 0.00003, "relTolerance": 0.0003 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 64, 144], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 64, 144], "tolerance": 0, "relTolerance": 0 } + }, + "tunables": { "WORKGROUP_SIZE": 32 } + }, + { + "name": "value-owner-float16-d144-wg32-s1", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 1, 576], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 1, 288], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 1, 288], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 64, 144], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 64, 144], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 1, 576], "tolerance": 0.003, "relTolerance": 0.01 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 64, 144], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 64, 144], "tolerance": 0, "relTolerance": 0 } + }, + "tunables": { "WORKGROUP_SIZE": 32 } + }, + { + "name": "value-owner-float16-d144-wg32-s5", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 5, 576], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 5, 288], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 5, 288], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 64, 144], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 64, 144], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 5, 576], "tolerance": 0.003, "relTolerance": 0.01 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 64, 144], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 64, 144], "tolerance": 0, "relTolerance": 0 } + }, + "tunables": { "WORKGROUP_SIZE": 32 } + }, + { + "name": "value-staged-float32-d128-wg32-s1", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 1, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 1, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 1, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 64, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 64, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 1, 512], "tolerance": 0.00003, "relTolerance": 0.0003 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 64, 128], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 64, 128], "tolerance": 0, "relTolerance": 0 } + }, + "tunables": { "WORKGROUP_SIZE": 32 } + }, + { + "name": "value-staged-float32-d128-wg32-s5", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 5, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 5, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 5, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 64, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 64, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 5, 512], "tolerance": 0.00003, "relTolerance": 0.0003 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 64, 128], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 64, 128], "tolerance": 0, "relTolerance": 0 } + }, + "tunables": { "WORKGROUP_SIZE": 32 } + }, + { + "name": "value-staged-float16-d128-wg32-s1", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 1, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 1, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 1, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 64, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 64, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 1, 512], "tolerance": 0.003, "relTolerance": 0.01 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 64, 128], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 64, 128], "tolerance": 0, "relTolerance": 0 } + }, + "tunables": { "WORKGROUP_SIZE": 32 } + }, + { + "name": "value-staged-float16-d128-wg32-s5", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 16 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 5, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 5, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 5, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 64, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 64, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 8, 0, 1, 3, 6, 9] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 9], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/prompt_separate_two_layouts_input_blockColIndicesT" } + } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [41] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [41, 34] } } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 5, 512], "tolerance": 0.003, "relTolerance": 0.01 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 64, 128], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 64, 128], "tolerance": 0, "relTolerance": 0 } + }, + "tunables": { "WORKGROUP_SIZE": 32 } + }, + { + "name": "sgmat_online_score_shifts_d32", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 64, "scale": 0.25 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 128, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 2.0 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 128, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 2.0 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 128, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 2.0 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [256, 256] } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 128, 128], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 32], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 32], "tolerance": 0.00002, "relTolerance": 0.0002 } + }, + "provenance": { + "notes": "Explicit score scaling and larger Q/K magnitudes exercise online softmax rescaling across multiple key tiles, including both key-tile capacities and a partial output-fragment bank." + } + }, + { + "name": "sgmat_online_score_shifts_d64", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 64, "scale": 0.25 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 128, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 2.0 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 128, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 2.0 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 128, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 2.0 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [256, 256] } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 128, 256], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 64], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 64], "tolerance": 0.00002, "relTolerance": 0.0002 } + }, + "provenance": { + "notes": "Explicit score scaling and larger Q/K magnitudes exercise online softmax rescaling across multiple key tiles, including both key-tile capacities and a partial output-fragment bank." + } + }, + { + "name": "sgmat_online_score_shifts_d96", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 64, "scale": 0.25 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 128, 384], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 2.0 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 128, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 2.0 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 128, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 2.0 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [256, 256] } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 128, 384], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + }, + "provenance": { + "notes": "Explicit score scaling and larger Q/K magnitudes exercise online softmax rescaling across multiple key tiles, including both key-tile capacities and a partial output-fragment bank." + } + }, + { + "name": "sgmat_online_score_shifts_d128", + "attrs": { "num_heads": 4, "kv_num_heads": 2, "sparse_block_size": 64, "scale": 0.25 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 128, 512], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 2.0 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 128, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 2.0 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 128, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 2.0 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [256, 256] } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 128, 512], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 } + }, + "provenance": { + "notes": "Explicit score scaling and larger Q/K magnitudes exercise online softmax rescaling across multiple key tiles, including both key-tile capacities and a partial output-fragment bank." + } + }, + { + "name": "hybrid_tail_d96_s66_packed0_rotary0", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 66, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 66, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 66, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [166, 134] } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 66, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_tail_d96_s66_packed0_rotary1", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 0 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 66, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 66, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 66, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [166, 134] } + }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 66, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_tail_d96_s66_packed1_rotary0", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 66, 576], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [166, 134] } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 66, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_tail_d96_s66_packed1_rotary1", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 1 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 66, 576], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [166, 134] } + }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 66, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_tail_d96_s67_packed0_rotary0", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 67, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 67, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 67, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [167, 135] } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 67, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_tail_d96_s67_packed0_rotary1", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 0 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 67, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 67, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 67, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [167, 135] } + }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 67, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_tail_d96_s67_packed1_rotary0", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 67, 576], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [167, 135] } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 67, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_tail_d96_s67_packed1_rotary1", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 1 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 67, 576], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [167, 135] } + }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 67, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_tail_d96_s68_packed0_rotary0", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 68, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 68, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 68, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [168, 136] } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 68, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_tail_d96_s68_packed0_rotary1", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 0 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 68, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 68, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 68, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [168, 136] } + }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 68, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_tail_d96_s68_packed1_rotary0", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 68, 576], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [168, 136] } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 68, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_tail_d96_s68_packed1_rotary1", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 1 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 68, 576], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [168, 136] } + }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 68, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_tail_d128_s66_packed0_rotary0", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history. The wider head exercises device-limited tail partitions, and rotary remains partial-width." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 66, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 66, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 66, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [166, 134] } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 66, 256], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_tail_d128_s66_packed0_rotary1", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history. The wider head exercises device-limited tail partitions, and rotary remains partial-width." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 0 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 66, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 66, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 66, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [166, 134] } + }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 66, 256], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_tail_d128_s66_packed1_rotary0", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history. The wider head exercises device-limited tail partitions, and rotary remains partial-width." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 66, 768], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [166, 134] } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 66, 256], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_tail_d128_s66_packed1_rotary1", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history. The wider head exercises device-limited tail partitions, and rotary remains partial-width." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 1 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 66, 768], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [166, 134] } + }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 66, 256], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_tail_d128_s67_packed0_rotary0", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history. The wider head exercises device-limited tail partitions, and rotary remains partial-width." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 67, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 67, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 67, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [167, 135] } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 67, 256], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_tail_d128_s67_packed0_rotary1", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history. The wider head exercises device-limited tail partitions, and rotary remains partial-width." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 0 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 67, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 67, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 67, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [167, 135] } + }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 67, 256], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_tail_d128_s67_packed1_rotary0", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history. The wider head exercises device-limited tail partitions, and rotary remains partial-width." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 67, 768], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [167, 135] } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 67, 256], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_tail_d128_s67_packed1_rotary1", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history. The wider head exercises device-limited tail partitions, and rotary remains partial-width." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 1 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 67, 768], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [167, 135] } + }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 67, 256], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_tail_d128_s68_packed0_rotary0", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history. The wider head exercises device-limited tail partitions, and rotary remains partial-width." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 68, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 68, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 68, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [168, 136] } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 68, 256], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_tail_d128_s68_packed0_rotary1", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history. The wider head exercises device-limited tail partitions, and rotary remains partial-width." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 0 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 68, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 68, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 68, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [168, 136] } + }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 68, 256], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_tail_d128_s68_packed1_rotary0", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history. The wider head exercises device-limited tail partitions, and rotary remains partial-width." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 68, 768], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [168, 136] } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 68, 256], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_tail_d128_s68_packed1_rotary1", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history. The wider head exercises device-limited tail partitions, and rotary remains partial-width." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 1 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 68, 768], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [168, 136] } + }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 68, 256], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "terminal_query_tail_s65_packed0_rotary0", + "provenance": { + "notes": "Final live query ends at cache capacity. Inactive query lanes must not walk a nonexistent CSR row; nondense terminal row makes an unchecked CSR subtraction wrap." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 65, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 65, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 65, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 3], + "data": { "kind": "values", "values": [0, 1, 2, 0, 1, 2] } + }, + "blockColIndicesT": { "dtype": "int32", "shape": [2, 2], "data": { "kind": "values", "values": [0, 0, 0, 0] } }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [128] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [128, 128] } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 65, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 128, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 128, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "terminal_query_tail_s65_packed0_rotary1", + "provenance": { + "notes": "Final live query ends at cache capacity. Inactive query lanes must not walk a nonexistent CSR row; nondense terminal row makes an unchecked CSR subtraction wrap." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 0 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 65, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 65, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 65, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 3], + "data": { "kind": "values", "values": [0, 1, 2, 0, 1, 2] } + }, + "blockColIndicesT": { "dtype": "int32", "shape": [2, 2], "data": { "kind": "values", "values": [0, 0, 0, 0] } }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [128] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [128, 128] } + }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 65, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 128, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 128, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "terminal_query_tail_s65_packed1_rotary0", + "provenance": { + "notes": "Final live query ends at cache capacity. Inactive query lanes must not walk a nonexistent CSR row; nondense terminal row makes an unchecked CSR subtraction wrap." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 65, 576], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 3], + "data": { "kind": "values", "values": [0, 1, 2, 0, 1, 2] } + }, + "blockColIndicesT": { "dtype": "int32", "shape": [2, 2], "data": { "kind": "values", "values": [0, 0, 0, 0] } }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [128] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [128, 128] } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 65, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 128, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 128, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "terminal_query_tail_s65_packed1_rotary1", + "provenance": { + "notes": "Final live query ends at cache capacity. Inactive query lanes must not walk a nonexistent CSR row; nondense terminal row makes an unchecked CSR subtraction wrap." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 1 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 65, 576], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 3], + "data": { "kind": "values", "values": [0, 1, 2, 0, 1, 2] } + }, + "blockColIndicesT": { "dtype": "int32", "shape": [2, 2], "data": { "kind": "values", "values": [0, 0, 0, 0] } }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [128] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [128, 128] } + }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 65, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 128, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 128, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "terminal_query_tail_s66_packed0_rotary0", + "provenance": { + "notes": "Final live query ends at cache capacity. Inactive query lanes must not walk a nonexistent CSR row; nondense terminal row makes an unchecked CSR subtraction wrap." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 66, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 66, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 66, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 3], + "data": { "kind": "values", "values": [0, 1, 2, 0, 1, 2] } + }, + "blockColIndicesT": { "dtype": "int32", "shape": [2, 2], "data": { "kind": "values", "values": [0, 0, 0, 0] } }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [128] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [128, 128] } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 66, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 128, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 128, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "terminal_query_tail_s66_packed0_rotary1", + "provenance": { + "notes": "Final live query ends at cache capacity. Inactive query lanes must not walk a nonexistent CSR row; nondense terminal row makes an unchecked CSR subtraction wrap." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 0 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 66, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 66, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 66, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 3], + "data": { "kind": "values", "values": [0, 1, 2, 0, 1, 2] } + }, + "blockColIndicesT": { "dtype": "int32", "shape": [2, 2], "data": { "kind": "values", "values": [0, 0, 0, 0] } }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [128] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [128, 128] } + }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 66, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 128, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 128, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "terminal_query_tail_s66_packed1_rotary0", + "provenance": { + "notes": "Final live query ends at cache capacity. Inactive query lanes must not walk a nonexistent CSR row; nondense terminal row makes an unchecked CSR subtraction wrap." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 66, 576], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 3], + "data": { "kind": "values", "values": [0, 1, 2, 0, 1, 2] } + }, + "blockColIndicesT": { "dtype": "int32", "shape": [2, 2], "data": { "kind": "values", "values": [0, 0, 0, 0] } }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [128] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [128, 128] } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 66, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 128, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 128, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "terminal_query_tail_s66_packed1_rotary1", + "provenance": { + "notes": "Final live query ends at cache capacity. Inactive query lanes must not walk a nonexistent CSR row; nondense terminal row makes an unchecked CSR subtraction wrap." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 1 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 66, 576], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 3], + "data": { "kind": "values", "values": [0, 1, 2, 0, 1, 2] } + }, + "blockColIndicesT": { "dtype": "int32", "shape": [2, 2], "data": { "kind": "values", "values": [0, 0, 0, 0] } }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [128] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [128, 128] } + }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 66, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 128, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 128, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "terminal_query_tail_s67_packed0_rotary0", + "provenance": { + "notes": "Final live query ends at cache capacity. Inactive query lanes must not walk a nonexistent CSR row; nondense terminal row makes an unchecked CSR subtraction wrap." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 67, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 67, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 67, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 3], + "data": { "kind": "values", "values": [0, 1, 2, 0, 1, 2] } + }, + "blockColIndicesT": { "dtype": "int32", "shape": [2, 2], "data": { "kind": "values", "values": [0, 0, 0, 0] } }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [128] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [128, 128] } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 67, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 128, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 128, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "terminal_query_tail_s67_packed0_rotary1", + "provenance": { + "notes": "Final live query ends at cache capacity. Inactive query lanes must not walk a nonexistent CSR row; nondense terminal row makes an unchecked CSR subtraction wrap." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 0 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 67, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 67, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 67, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 3], + "data": { "kind": "values", "values": [0, 1, 2, 0, 1, 2] } + }, + "blockColIndicesT": { "dtype": "int32", "shape": [2, 2], "data": { "kind": "values", "values": [0, 0, 0, 0] } }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [128] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [128, 128] } + }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 67, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 128, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 128, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "terminal_query_tail_s67_packed1_rotary0", + "provenance": { + "notes": "Final live query ends at cache capacity. Inactive query lanes must not walk a nonexistent CSR row; nondense terminal row makes an unchecked CSR subtraction wrap." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 67, 576], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 3], + "data": { "kind": "values", "values": [0, 1, 2, 0, 1, 2] } + }, + "blockColIndicesT": { "dtype": "int32", "shape": [2, 2], "data": { "kind": "values", "values": [0, 0, 0, 0] } }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [128] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [128, 128] } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 67, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 128, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 128, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "terminal_query_tail_s67_packed1_rotary1", + "provenance": { + "notes": "Final live query ends at cache capacity. Inactive query lanes must not walk a nonexistent CSR row; nondense terminal row makes an unchecked CSR subtraction wrap." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 1 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 67, 576], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 3], + "data": { "kind": "values", "values": [0, 1, 2, 0, 1, 2] } + }, + "blockColIndicesT": { "dtype": "int32", "shape": [2, 2], "data": { "kind": "values", "values": [0, 0, 0, 0] } }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [128] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [128, 128] } + }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 67, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 128, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 128, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "terminal_f16_query_tail_s65_packed0_rotary0", + "provenance": { + "notes": "Final live query ends at cache capacity. Inactive query lanes must not walk a nonexistent CSR row; nondense terminal row makes an unchecked CSR subtraction wrap." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 65, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 65, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 65, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 3], + "data": { "kind": "values", "values": [0, 1, 2, 0, 1, 2] } + }, + "blockColIndicesT": { "dtype": "int32", "shape": [2, 2], "data": { "kind": "values", "values": [0, 0, 0, 0] } }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [128] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [128, 128] } + } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 65, 192], "tolerance": 0.0001, "relTolerance": 0.001 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 128, 96], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 128, 96], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "terminal_f16_query_tail_s65_packed0_rotary1", + "provenance": { + "notes": "Final live query ends at cache capacity. Inactive query lanes must not walk a nonexistent CSR row; nondense terminal row makes an unchecked CSR subtraction wrap." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 0 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 65, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 65, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 65, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 3], + "data": { "kind": "values", "values": [0, 1, 2, 0, 1, 2] } + }, + "blockColIndicesT": { "dtype": "int32", "shape": [2, 2], "data": { "kind": "values", "values": [0, 0, 0, 0] } }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [128] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [128, 128] } + }, + "cosCacheT": { + "dtype": "float16", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float16", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 65, 192], "tolerance": 0.0001, "relTolerance": 0.001 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 128, 96], "tolerance": 0.001, "relTolerance": 0.001 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 128, 96], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "terminal_f16_query_tail_s65_packed1_rotary0", + "provenance": { + "notes": "Final live query ends at cache capacity. Inactive query lanes must not walk a nonexistent CSR row; nondense terminal row makes an unchecked CSR subtraction wrap." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 65, 576], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 3], + "data": { "kind": "values", "values": [0, 1, 2, 0, 1, 2] } + }, + "blockColIndicesT": { "dtype": "int32", "shape": [2, 2], "data": { "kind": "values", "values": [0, 0, 0, 0] } }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [128] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [128, 128] } + } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 65, 192], "tolerance": 0.0001, "relTolerance": 0.001 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 128, 96], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 128, 96], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "terminal_f16_query_tail_s65_packed1_rotary1", + "provenance": { + "notes": "Final live query ends at cache capacity. Inactive query lanes must not walk a nonexistent CSR row; nondense terminal row makes an unchecked CSR subtraction wrap." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 1 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 65, 576], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 3], + "data": { "kind": "values", "values": [0, 1, 2, 0, 1, 2] } + }, + "blockColIndicesT": { "dtype": "int32", "shape": [2, 2], "data": { "kind": "values", "values": [0, 0, 0, 0] } }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [128] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [128, 128] } + }, + "cosCacheT": { + "dtype": "float16", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float16", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 65, 192], "tolerance": 0.0001, "relTolerance": 0.001 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 128, 96], "tolerance": 0.001, "relTolerance": 0.001 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 128, 96], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "terminal_f16_query_tail_s66_packed0_rotary0", + "provenance": { + "notes": "Final live query ends at cache capacity. Inactive query lanes must not walk a nonexistent CSR row; nondense terminal row makes an unchecked CSR subtraction wrap." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 66, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 66, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 66, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 3], + "data": { "kind": "values", "values": [0, 1, 2, 0, 1, 2] } + }, + "blockColIndicesT": { "dtype": "int32", "shape": [2, 2], "data": { "kind": "values", "values": [0, 0, 0, 0] } }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [128] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [128, 128] } + } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 66, 192], "tolerance": 0.0001, "relTolerance": 0.001 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 128, 96], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 128, 96], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "terminal_f16_query_tail_s66_packed0_rotary1", + "provenance": { + "notes": "Final live query ends at cache capacity. Inactive query lanes must not walk a nonexistent CSR row; nondense terminal row makes an unchecked CSR subtraction wrap." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 0 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 66, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 66, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 66, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 3], + "data": { "kind": "values", "values": [0, 1, 2, 0, 1, 2] } + }, + "blockColIndicesT": { "dtype": "int32", "shape": [2, 2], "data": { "kind": "values", "values": [0, 0, 0, 0] } }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [128] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [128, 128] } + }, + "cosCacheT": { + "dtype": "float16", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float16", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 66, 192], "tolerance": 0.0001, "relTolerance": 0.001 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 128, 96], "tolerance": 0.001, "relTolerance": 0.001 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 128, 96], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "terminal_f16_query_tail_s66_packed1_rotary0", + "provenance": { + "notes": "Final live query ends at cache capacity. Inactive query lanes must not walk a nonexistent CSR row; nondense terminal row makes an unchecked CSR subtraction wrap." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 66, 576], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 3], + "data": { "kind": "values", "values": [0, 1, 2, 0, 1, 2] } + }, + "blockColIndicesT": { "dtype": "int32", "shape": [2, 2], "data": { "kind": "values", "values": [0, 0, 0, 0] } }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [128] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [128, 128] } + } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 66, 192], "tolerance": 0.0001, "relTolerance": 0.001 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 128, 96], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 128, 96], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "terminal_f16_query_tail_s66_packed1_rotary1", + "provenance": { + "notes": "Final live query ends at cache capacity. Inactive query lanes must not walk a nonexistent CSR row; nondense terminal row makes an unchecked CSR subtraction wrap." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 1 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 66, 576], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 3], + "data": { "kind": "values", "values": [0, 1, 2, 0, 1, 2] } + }, + "blockColIndicesT": { "dtype": "int32", "shape": [2, 2], "data": { "kind": "values", "values": [0, 0, 0, 0] } }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [128] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [128, 128] } + }, + "cosCacheT": { + "dtype": "float16", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float16", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 66, 192], "tolerance": 0.0001, "relTolerance": 0.001 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 128, 96], "tolerance": 0.001, "relTolerance": 0.001 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 128, 96], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "terminal_f16_query_tail_s67_packed0_rotary0", + "provenance": { + "notes": "Final live query ends at cache capacity. Inactive query lanes must not walk a nonexistent CSR row; nondense terminal row makes an unchecked CSR subtraction wrap." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 67, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 67, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 67, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 3], + "data": { "kind": "values", "values": [0, 1, 2, 0, 1, 2] } + }, + "blockColIndicesT": { "dtype": "int32", "shape": [2, 2], "data": { "kind": "values", "values": [0, 0, 0, 0] } }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [128] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [128, 128] } + } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 67, 192], "tolerance": 0.0001, "relTolerance": 0.001 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 128, 96], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 128, 96], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "terminal_f16_query_tail_s67_packed0_rotary1", + "provenance": { + "notes": "Final live query ends at cache capacity. Inactive query lanes must not walk a nonexistent CSR row; nondense terminal row makes an unchecked CSR subtraction wrap." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 0 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 67, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float16", + "shape": [2, 67, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float16", + "shape": [2, 67, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 3], + "data": { "kind": "values", "values": [0, 1, 2, 0, 1, 2] } + }, + "blockColIndicesT": { "dtype": "int32", "shape": [2, 2], "data": { "kind": "values", "values": [0, 0, 0, 0] } }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [128] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [128, 128] } + }, + "cosCacheT": { + "dtype": "float16", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float16", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 67, 192], "tolerance": 0.0001, "relTolerance": 0.001 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 128, 96], "tolerance": 0.001, "relTolerance": 0.001 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 128, 96], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "terminal_f16_query_tail_s67_packed1_rotary0", + "provenance": { + "notes": "Final live query ends at cache capacity. Inactive query lanes must not walk a nonexistent CSR row; nondense terminal row makes an unchecked CSR subtraction wrap." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 67, 576], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 3], + "data": { "kind": "values", "values": [0, 1, 2, 0, 1, 2] } + }, + "blockColIndicesT": { "dtype": "int32", "shape": [2, 2], "data": { "kind": "values", "values": [0, 0, 0, 0] } }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [128] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [128, 128] } + } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 67, 192], "tolerance": 0.0001, "relTolerance": 0.001 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 128, 96], "tolerance": 0, "relTolerance": 0 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 128, 96], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "terminal_f16_query_tail_s67_packed1_rotary1", + "provenance": { + "notes": "Final live query ends at cache capacity. Inactive query lanes must not walk a nonexistent CSR row; nondense terminal row makes an unchecked CSR subtraction wrap." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 1 }, + "inputs": { + "queryT": { + "dtype": "float16", + "shape": [2, 67, 576], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float16", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float16", + "shape": [2, 2, 128, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 3], + "data": { "kind": "values", "values": [0, 1, 2, 0, 1, 2] } + }, + "blockColIndicesT": { "dtype": "int32", "shape": [2, 2], "data": { "kind": "values", "values": [0, 0, 0, 0] } }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [128] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [128, 128] } + }, + "cosCacheT": { + "dtype": "float16", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float16", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float16", "shape": [2, 67, 192], "tolerance": 0.0001, "relTolerance": 0.001 }, + "pastKeyT": { "dtype": "float16", "shape": [2, 2, 128, 96], "tolerance": 0.001, "relTolerance": 0.001 }, + "pastValueT": { "dtype": "float16", "shape": [2, 2, 128, 96], "tolerance": 0, "relTolerance": 0 } + } + }, + { + "name": "hybrid_tail_d128_s67_narrow_groups", + "provenance": { + "notes": "Exact portable query-tail lengths 2/3/4 after a matrix prefix, packed/rotary layouts, and nonaligned per-batch history. The wider head exercises device-limited tail partitions, and rotary remains partial-width." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 67, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 67, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 67, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [256] } }, + "keyTotalSequenceLengthsT": { + "dtype": "int32", + "shape": [2], + "data": { "kind": "values", "values": [167, 135] } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 67, 256], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 } + }, + "tunables": { "NARROW_MIN_WORKGROUPS": 1 } + }, + { + "name": "hybrid_prompt_d96_s65_packed0_rotary0", + "provenance": { + "notes": "Prompt-mode mixed matrix/portable execution covers tail lengths 1–4, non-power-of-two query streams, packed/rotary modes and both head bank widths." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 65, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 65, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 65, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [65] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [65, 65] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 65, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_prompt_d96_s66_packed0_rotary1", + "provenance": { + "notes": "Prompt-mode mixed matrix/portable execution covers tail lengths 1–4, non-power-of-two query streams, packed/rotary modes and both head bank widths." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 0 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 66, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 66, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 66, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [66] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [66, 66] } }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 66, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_prompt_d96_s67_packed1_rotary0", + "provenance": { + "notes": "Prompt-mode mixed matrix/portable execution covers tail lengths 1–4, non-power-of-two query streams, packed/rotary modes and both head bank widths." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 67, 576], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [67] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [67, 67] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 67, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_prompt_d96_s68_packed1_rotary1", + "provenance": { + "notes": "Prompt-mode mixed matrix/portable execution covers tail lengths 1–4, non-power-of-two query streams, packed/rotary modes and both head bank widths." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 1 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 68, 576], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 96], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [68] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [68, 68] } }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 68, 192], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 96], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_prompt_d128_s65_packed1_rotary1", + "provenance": { + "notes": "Prompt-mode mixed matrix/portable execution covers tail lengths 1–4, non-power-of-two query streams, packed/rotary modes and both head bank widths." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 1 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 65, 768], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [65] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [65, 65] } }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 65, 256], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_prompt_d128_s66_packed1_rotary0", + "provenance": { + "notes": "Prompt-mode mixed matrix/portable execution covers tail lengths 1–4, non-power-of-two query streams, packed/rotary modes and both head bank widths." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 66, 768], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [66] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [66, 66] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 66, 256], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_prompt_d128_s67_packed0_rotary1", + "provenance": { + "notes": "Prompt-mode mixed matrix/portable execution covers tail lengths 1–4, non-power-of-two query streams, packed/rotary modes and both head bank widths." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 0 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 67, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 67, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 67, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [67] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [67, 67] } }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 48], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 67, 256], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_prompt_d128_s68_packed0_rotary0", + "provenance": { + "notes": "Prompt-mode mixed matrix/portable execution covers tail lengths 1–4, non-power-of-two query streams, packed/rotary modes and both head bank widths." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 68, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "keyT": { + "dtype": "float32", + "shape": [2, 68, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.5 } + }, + "valueT": { + "dtype": "float32", + "shape": [2, 68, 256], + "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.23, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 128], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [68] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [68, 68] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 68, 256], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 128], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_prompt_d32_s65_packed1_rotary0", + "provenance": { + "notes": "Prompt-tail coverage for each smaller matrix head bank, packed QKV, odd query counts, and rotary preparation." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 65, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [65] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [65, 65] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 65, 64], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 32], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 32], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_prompt_d32_s65_packed1_rotary1", + "provenance": { + "notes": "Prompt-tail coverage for each smaller matrix head bank, packed QKV, odd query counts, and rotary preparation." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 1 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 65, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [65] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [65, 65] } }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 16], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 16], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 65, 64], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 32], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 32], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_prompt_d32_s67_packed1_rotary0", + "provenance": { + "notes": "Prompt-tail coverage for each smaller matrix head bank, packed QKV, odd query counts, and rotary preparation." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 67, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [67] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [67, 67] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 67, 64], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 32], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 32], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_prompt_d32_s67_packed1_rotary1", + "provenance": { + "notes": "Prompt-tail coverage for each smaller matrix head bank, packed QKV, odd query counts, and rotary preparation." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 1 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 67, 192], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [67] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [67, 67] } }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 16], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 16], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 67, 64], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 32], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 32], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_prompt_d64_s65_packed1_rotary0", + "provenance": { + "notes": "Prompt-tail coverage for each smaller matrix head bank, packed QKV, odd query counts, and rotary preparation." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 65, 384], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [65] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [65, 65] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 65, 128], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 64], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 64], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_prompt_d64_s65_packed1_rotary1", + "provenance": { + "notes": "Prompt-tail coverage for each smaller matrix head bank, packed QKV, odd query counts, and rotary preparation." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 1 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 65, 384], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [65] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [65, 65] } }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 65, 128], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 64], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 64], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_prompt_d64_s67_packed1_rotary0", + "provenance": { + "notes": "Prompt-tail coverage for each smaller matrix head bank, packed QKV, odd query counts, and rotary preparation." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 67, 384], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [67] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [67, 67] } } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 67, 128], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 64], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 64], "tolerance": 0.00002, "relTolerance": 0.0002 } + } + }, + { + "name": "hybrid_prompt_d64_s67_packed1_rotary1", + "provenance": { + "notes": "Prompt-tail coverage for each smaller matrix head bank, packed QKV, odd query counts, and rotary preparation." + }, + "attrs": { "num_heads": 2, "kv_num_heads": 2, "sparse_block_size": 64, "do_rotary": 1, "rotary_interleaved": 1 }, + "inputs": { + "queryT": { + "dtype": "float32", + "shape": [2, 67, 384], + "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.5 } + }, + "pastKeyT": { + "dtype": "float32", + "shape": [2, 2, 256, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 0.25 } + }, + "pastValueT": { + "dtype": "float32", + "shape": [2, 2, 256, 64], + "data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.013, "scale": 0.25 } + }, + "blockRowIndicesT": { + "dtype": "int32", + "shape": [2, 5], + "data": { "kind": "values", "values": [0, 1, 3, 5, 7, 0, 1, 2, 4, 5] } + }, + "blockColIndicesT": { + "dtype": "int32", + "shape": [2, 7], + "data": { "kind": "values", "values": [0, 0, 1, 0, 2, 1, 3, 0, 1, 0, 2, 3, 0, 0] } + }, + "totalSequenceLengthT": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [67] } }, + "keyTotalSequenceLengthsT": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [67, 67] } }, + "cosCacheT": { + "dtype": "float32", + "shape": [256, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.01, "cosStep": 0.013, "scale": 0.5 } + }, + "sinCacheT": { + "dtype": "float32", + "shape": [256, 32], + "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.013, "scale": 0.5 } + } + }, + "outputs": { + "outputT": { "dtype": "float32", "shape": [2, 67, 128], "tolerance": 0.0001, "relTolerance": 0.0005 }, + "pastKeyT": { "dtype": "float32", "shape": [2, 2, 256, 64], "tolerance": 0.00002, "relTolerance": 0.0002 }, + "pastValueT": { "dtype": "float32", "shape": [2, 2, 256, 64], "tolerance": 0.00002, "relTolerance": 0.0002 } + } } ] }