Download build/webgpu/test.json from webgpu-kernels/com.microsoft.MRotaryEmbedding: direct link, hf CLI and curl.
- Browser
- Download file 53.1 kB
-
https://huggingface.co/kernels/webgpu-kernels/com.microsoft.MRotaryEmbedding/resolve/v1/build/webgpu/test.json
- Command line
-
hf download hf://webgpu-kernels/com.microsoft.MRotaryEmbedding@v1/build/webgpu/test.json
-
curl -L -o test.json https://huggingface.co/kernels/webgpu-kernels/com.microsoft.MRotaryEmbedding/resolve/v1/build/webgpu/test.json
53.1 kB
| { | |
| "fixtureArrays": { | |
| "ort_sectioned_rank3_input_x": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], | |
| "ort_sectioned_rank3_output_y": [0.6, 1.42, 2.34, 4.1, 5.87, 7.98, 6, 7.12, 8.34, 10.7, 13.49, 16.62, 11.9, 13.37, 14.94, 19.55, 23.51, 27.81, 17.6, 19.37, 21.24, 27.05, 32.03, 37.35], | |
| "ort_interleaved_rank4_output_y": [0.4, 1.05, 1.345, 2.46, 2.39, 4.21, 3.25, 4.925, 4.395, 6.995, 5.64, 9.405, 5.8, 7.65, 7.045, 10.08, 8.39, 12.85, 8.95, 12.425, 10.395, 15.515, 11.94, 18.945] | |
| }, | |
| "cases": [ | |
| { | |
| "name": "rank4_odd_head_even_partial_rotation", | |
| "provenance": { | |
| "source": "onnxruntime/contrib_ops/cuda/bert/mrotary_embedding_impl.cu", | |
| "notes": "The effective rotary dimension is even while the full head size is odd, leaving one unrotated tail element that must be copied unchanged." | |
| }, | |
| "attrs": { | |
| "num_heads": 1, | |
| "rotary_embedding_dim": 4, | |
| "mrope_layout": 0, | |
| "interleaved": 0, | |
| "mrope_section": [1, 1, 0] | |
| }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [1, 1, 2, 5], "data": { "kind": "linspace", "start": -1.25, "end": 1.5 } }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 1, 2], | |
| "data": { "kind": "values", "values": [0, 1, 1, 2, 2, 0] } | |
| }, | |
| "cos": { "dtype": "float32", "shape": [3, 2], "data": { "kind": "linspace", "start": 0.25, "end": 1.0 } }, | |
| "sin": { "dtype": "float32", "shape": [3, 2], "data": { "kind": "linspace", "start": -0.5, "end": 0.5 } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 2, 5], "tolerance": 0.00001 } } | |
| }, | |
| { | |
| "name": "ort_sectioned_rank3", | |
| "provenance": { | |
| "source": "onnxruntime/test/contrib_ops/mrotary_embedding_op_test.cc", | |
| "test": "ContribOpMRotaryEmbeddingTest.SectionedRank3", | |
| "notes": "Pinned from ORT. Sectioned layout over three one-column sections, so each cache column is fed by a different position stream (T=[0,1], H=[1,2], W=[2,3]) and a stream mix-up changes every output." | |
| }, | |
| "attrs": { | |
| "num_heads": 2, | |
| "rotary_embedding_dim": 6, | |
| "mrope_layout": 0, | |
| "interleaved": 0, | |
| "scale": 1, | |
| "mrope_section": [1, 1, 1] | |
| }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 2, 12], | |
| "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_sectioned_rank3_input_x" } } | |
| }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 1, 2], | |
| "data": { "kind": "values", "values": [0, 1, 1, 2, 2, 3] } | |
| }, | |
| "cos": { | |
| "dtype": "float32", | |
| "shape": [4, 3], | |
| "data": { "kind": "values", "values": [1.0, 1.01, 1.02, 1.1, 1.11, 1.12, 1.2, 1.21, 1.22, 1.3, 1.31, 1.32] } | |
| }, | |
| "sin": { | |
| "dtype": "float32", | |
| "shape": [4, 3], | |
| "data": { "kind": "values", "values": [0.1, 0.11, 0.12, 0.15, 0.16, 0.17, 0.2, 0.21, 0.22, 0.25, 0.26, 0.27] } | |
| } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float32", | |
| "shape": [1, 2, 12], | |
| "tolerance": 0.00001, | |
| "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_sectioned_rank3_output_y" } } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "ort_interleaved_rank4", | |
| "provenance": { | |
| "source": "onnxruntime/test/contrib_ops/mrotary_embedding_op_test.cc", | |
| "test": "ContribOpMRotaryEmbeddingTest.InterleavedRank4", | |
| "notes": "Pinned from ORT. Interleaved mrope_layout together with interleaved rotation pairing and a non-unit scale, so the two independent 'interleaved' knobs and the scale are exercised at once." | |
| }, | |
| "attrs": { | |
| "num_heads": 2, | |
| "rotary_embedding_dim": 6, | |
| "mrope_layout": 1, | |
| "interleaved": 1, | |
| "scale": 0.5, | |
| "mrope_section": [1, 1, 1] | |
| }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 2, 2, 6], | |
| "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_sectioned_rank3_input_x" } } | |
| }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 1, 2], | |
| "data": { "kind": "values", "values": [0, 1, 1, 2, 2, 3] } | |
| }, | |
| "cos": { | |
| "dtype": "float32", | |
| "shape": [4, 3], | |
| "data": { "kind": "values", "values": [1.0, 1.01, 1.02, 1.1, 1.11, 1.12, 1.2, 1.21, 1.22, 1.3, 1.31, 1.32] } | |
| }, | |
| "sin": { | |
| "dtype": "float32", | |
| "shape": [4, 3], | |
| "data": { "kind": "values", "values": [0.1, 0.11, 0.12, 0.15, 0.16, 0.17, 0.2, 0.21, 0.22, 0.25, 0.26, 0.27] } | |
| } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float32", | |
| "shape": [1, 2, 2, 6], | |
| "tolerance": 0.00001, | |
| "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_interleaved_rank4_output_y" } } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "rank3_layout1_interleaved0", | |
| "provenance": { | |
| "notes": "Interleaved mrope_layout with the split (non-interleaved) rotation pairing — the layout/pairing knobs are independent, and this is the combination neither pinned case covers." | |
| }, | |
| "attrs": { | |
| "num_heads": 4, | |
| "rotary_embedding_dim": 0, | |
| "mrope_layout": 1, | |
| "interleaved": 0, | |
| "scale": 1, | |
| "mrope_section": [2, 1, 1] | |
| }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [2, 3, 32], "data": { "kind": "linspace", "start": -2.0, "end": 2.0 } }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 2, 3], | |
| "data": { "kind": "values", "values": [0, 1, 2, 1, 2, 3, 2, 3, 4, 3, 4, 5, 4, 5, 6, 5, 6, 7] } | |
| }, | |
| "cos": { "dtype": "float32", "shape": [8, 4], "data": { "kind": "linspace", "start": -1.0, "end": 1.0 } }, | |
| "sin": { "dtype": "float32", "shape": [8, 4], "data": { "kind": "linspace", "start": 1.0, "end": -1.0 } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 32], "tolerance": 0.00001, "relTolerance": 0.00001 } } | |
| }, | |
| { | |
| "name": "rank4_layout0_partial_rotary_tail", | |
| "provenance": { | |
| "notes": "Sectioned layout with rotary_embedding_dim < head_size, so the lanes past the rotary window copy their tail values unchanged." | |
| }, | |
| "attrs": { | |
| "num_heads": 2, | |
| "rotary_embedding_dim": 8, | |
| "mrope_layout": 0, | |
| "interleaved": 0, | |
| "scale": 1, | |
| "mrope_section": [1, 2, 1] | |
| }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [1, 2, 4, 12], "data": { "kind": "linspace", "start": -2.0, "end": 2.0 } }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 1, 4], | |
| "data": { "kind": "values", "values": [0, 1, 2, 3, 1, 2, 3, 4, 2, 3, 4, 5] } | |
| }, | |
| "cos": { "dtype": "float32", "shape": [6, 4], "data": { "kind": "linspace", "start": -1.0, "end": 1.0 } }, | |
| "sin": { "dtype": "float32", "shape": [6, 4], "data": { "kind": "linspace", "start": 1.0, "end": -1.0 } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 2, 4, 12], "tolerance": 0.00001, "relTolerance": 0.00001 } } | |
| }, | |
| { | |
| "name": "rank3_text_only_streams_collapse", | |
| "provenance": { | |
| "notes": "Text-only tokens set T == H == W, which ORT documents as reducing M-RoPE to standard RoPE; the section split must then become unobservable." | |
| }, | |
| "attrs": { "num_heads": 2, "mrope_section": [2, 1, 1] }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [1, 4, 16], "data": { "kind": "linspace", "start": -2.0, "end": 2.0 } }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 1, 4], | |
| "data": { "kind": "values", "values": [0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3] } | |
| }, | |
| "cos": { "dtype": "float32", "shape": [8, 4], "data": { "kind": "linspace", "start": -1.0, "end": 1.0 } }, | |
| "sin": { "dtype": "float32", "shape": [8, 4], "data": { "kind": "linspace", "start": 1.0, "end": -1.0 } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 4, 16], "tolerance": 0.00001, "relTolerance": 0.00001 } } | |
| }, | |
| { | |
| "name": "f16_rank4_layout1_interleaved", | |
| "provenance": { | |
| "notes": "The interleaved layout uses float16 storage, including float16 rounding of the scaled cache intermediate before pairing." | |
| }, | |
| "attrs": { | |
| "rotary_embedding_dim": 0, | |
| "mrope_layout": 1, | |
| "interleaved": 1, | |
| "scale": 0.3, | |
| "mrope_section": [2, 2, 2] | |
| }, | |
| "inputs": { | |
| "x": { "dtype": "float16", "shape": [1, 2, 3, 12], "data": { "kind": "linspace", "start": -2.0, "end": 2.0 } }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 1, 3], | |
| "data": { "kind": "values", "values": [0, 1, 2, 1, 2, 3, 2, 3, 4] } | |
| }, | |
| "cos": { "dtype": "float16", "shape": [6, 6], "data": { "kind": "linspace", "start": -1.0, "end": 1.0 } }, | |
| "sin": { "dtype": "float16", "shape": [6, 6], "data": { "kind": "linspace", "start": 1.0, "end": -1.0 } } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 2, 3, 12], "tolerance": 0.01, "relTolerance": 0.01 } } | |
| }, | |
| { | |
| "name": "rank3_scale_half_sectioned", | |
| "provenance": { "notes": "Non-unit scale on the sectioned layout; scale multiplies both gathered cos and sin." }, | |
| "attrs": { | |
| "num_heads": 2, | |
| "rotary_embedding_dim": 0, | |
| "mrope_layout": 0, | |
| "interleaved": 0, | |
| "scale": 0.5, | |
| "mrope_section": [1, 1, 2] | |
| }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [2, 2, 16], "data": { "kind": "linspace", "start": -2.0, "end": 2.0 } }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 2, 2], | |
| "data": { "kind": "values", "values": [0, 1, 1, 2, 2, 3, 3, 4, 4, 0, 0, 1] } | |
| }, | |
| "cos": { "dtype": "float32", "shape": [5, 4], "data": { "kind": "linspace", "start": -1.0, "end": 1.0 } }, | |
| "sin": { "dtype": "float32", "shape": [5, 4], "data": { "kind": "linspace", "start": 1.0, "end": -1.0 } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 2, 16], "tolerance": 0.00001, "relTolerance": 0.00001 } } | |
| }, | |
| { | |
| "name": "vector_boundary_float32_rank3_d8_layout0_zero1", | |
| "attrs": { | |
| "num_heads": 3, | |
| "rotary_embedding_dim": 8, | |
| "interleaved": 0, | |
| "mrope_layout": 0, | |
| "mrope_section": [0, 3, 1], | |
| "scale": 0.3 | |
| }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 5, 24], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.113, "cosStep": 0.317, "scale": 3.0 } | |
| }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 2, 5], | |
| "data": { "kind": "cycle", "values": [0, 4, 2, 1, 3, 4, 0] } | |
| }, | |
| "cos": { | |
| "dtype": "float32", | |
| "shape": [5, 4], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.213, "cosStep": 0.437, "scale": 0.71 } | |
| }, | |
| "sin": { | |
| "dtype": "float32", | |
| "shape": [5, 4], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.619, "cosStep": 0.137, "scale": 0.83 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 5, 24], "tolerance": 0.00001, "relTolerance": 0.00001 } }, | |
| "provenance": { | |
| "notes": "Aligned vector pairs with a partial final workgroup, section-crossing cache columns, multiple batches, non-unit scale and both tensor ranks. Zero temporal section is covered at the smallest head width." | |
| } | |
| }, | |
| { | |
| "name": "vector_boundary_float32_rank3_d16_layout0_zero0", | |
| "attrs": { | |
| "num_heads": 3, | |
| "rotary_embedding_dim": 16, | |
| "interleaved": 0, | |
| "mrope_layout": 0, | |
| "mrope_section": [1, 2, 5], | |
| "scale": 0.3 | |
| }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 5, 48], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.113, "cosStep": 0.317, "scale": 3.0 } | |
| }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 2, 5], | |
| "data": { "kind": "cycle", "values": [0, 4, 2, 1, 3, 4, 0] } | |
| }, | |
| "cos": { | |
| "dtype": "float32", | |
| "shape": [5, 8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.213, "cosStep": 0.437, "scale": 0.71 } | |
| }, | |
| "sin": { | |
| "dtype": "float32", | |
| "shape": [5, 8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.619, "cosStep": 0.137, "scale": 0.83 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 5, 48], "tolerance": 0.00001, "relTolerance": 0.00001 } }, | |
| "provenance": { | |
| "notes": "Aligned vector pairs with a partial final workgroup, section-crossing cache columns, multiple batches, non-unit scale and both tensor ranks. Zero temporal section is covered at the smallest head width." | |
| } | |
| }, | |
| { | |
| "name": "vector_boundary_float32_rank3_d24_layout0_zero0", | |
| "attrs": { | |
| "num_heads": 3, | |
| "rotary_embedding_dim": 24, | |
| "interleaved": 0, | |
| "mrope_layout": 0, | |
| "mrope_section": [1, 2, 9], | |
| "scale": 0.3 | |
| }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 5, 72], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.113, "cosStep": 0.317, "scale": 3.0 } | |
| }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 2, 5], | |
| "data": { "kind": "cycle", "values": [0, 4, 2, 1, 3, 4, 0] } | |
| }, | |
| "cos": { | |
| "dtype": "float32", | |
| "shape": [5, 12], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.213, "cosStep": 0.437, "scale": 0.71 } | |
| }, | |
| "sin": { | |
| "dtype": "float32", | |
| "shape": [5, 12], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.619, "cosStep": 0.137, "scale": 0.83 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 5, 72], "tolerance": 0.00001, "relTolerance": 0.00001 } }, | |
| "provenance": { | |
| "notes": "Aligned vector pairs with a partial final workgroup, section-crossing cache columns, multiple batches, non-unit scale and both tensor ranks. Zero temporal section is covered at the smallest head width." | |
| } | |
| }, | |
| { | |
| "name": "vector_boundary_float32_rank4_d8_layout1_zero1", | |
| "attrs": { | |
| "num_heads": 3, | |
| "rotary_embedding_dim": 8, | |
| "interleaved": 0, | |
| "mrope_layout": 1, | |
| "mrope_section": [0, 3, 1], | |
| "scale": 0.3 | |
| }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 3, 5, 8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.113, "cosStep": 0.317, "scale": 3.0 } | |
| }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 2, 5], | |
| "data": { "kind": "cycle", "values": [0, 4, 2, 1, 3, 4, 0] } | |
| }, | |
| "cos": { | |
| "dtype": "float32", | |
| "shape": [5, 4], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.213, "cosStep": 0.437, "scale": 0.71 } | |
| }, | |
| "sin": { | |
| "dtype": "float32", | |
| "shape": [5, 4], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.619, "cosStep": 0.137, "scale": 0.83 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 5, 8], "tolerance": 0.00001, "relTolerance": 0.00001 } }, | |
| "provenance": { | |
| "notes": "Aligned vector pairs with a partial final workgroup, section-crossing cache columns, multiple batches, non-unit scale and both tensor ranks. Zero temporal section is covered at the smallest head width." | |
| } | |
| }, | |
| { | |
| "name": "vector_boundary_float32_rank4_d16_layout1_zero0", | |
| "attrs": { | |
| "num_heads": 3, | |
| "rotary_embedding_dim": 16, | |
| "interleaved": 0, | |
| "mrope_layout": 1, | |
| "mrope_section": [1, 2, 5], | |
| "scale": 0.3 | |
| }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 3, 5, 16], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.113, "cosStep": 0.317, "scale": 3.0 } | |
| }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 2, 5], | |
| "data": { "kind": "cycle", "values": [0, 4, 2, 1, 3, 4, 0] } | |
| }, | |
| "cos": { | |
| "dtype": "float32", | |
| "shape": [5, 8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.213, "cosStep": 0.437, "scale": 0.71 } | |
| }, | |
| "sin": { | |
| "dtype": "float32", | |
| "shape": [5, 8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.619, "cosStep": 0.137, "scale": 0.83 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 5, 16], "tolerance": 0.00001, "relTolerance": 0.00001 } }, | |
| "provenance": { | |
| "notes": "Aligned vector pairs with a partial final workgroup, section-crossing cache columns, multiple batches, non-unit scale and both tensor ranks. Zero temporal section is covered at the smallest head width." | |
| } | |
| }, | |
| { | |
| "name": "vector_boundary_float32_rank4_d24_layout1_zero0", | |
| "attrs": { | |
| "num_heads": 3, | |
| "rotary_embedding_dim": 24, | |
| "interleaved": 0, | |
| "mrope_layout": 1, | |
| "mrope_section": [1, 2, 9], | |
| "scale": 0.3 | |
| }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 3, 5, 24], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.113, "cosStep": 0.317, "scale": 3.0 } | |
| }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 2, 5], | |
| "data": { "kind": "cycle", "values": [0, 4, 2, 1, 3, 4, 0] } | |
| }, | |
| "cos": { | |
| "dtype": "float32", | |
| "shape": [5, 12], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.213, "cosStep": 0.437, "scale": 0.71 } | |
| }, | |
| "sin": { | |
| "dtype": "float32", | |
| "shape": [5, 12], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.619, "cosStep": 0.137, "scale": 0.83 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 5, 24], "tolerance": 0.00001, "relTolerance": 0.00001 } }, | |
| "provenance": { | |
| "notes": "Aligned vector pairs with a partial final workgroup, section-crossing cache columns, multiple batches, non-unit scale and both tensor ranks. Zero temporal section is covered at the smallest head width." | |
| } | |
| }, | |
| { | |
| "name": "vector_boundary_float16_rank3_d8_layout0_zero1", | |
| "attrs": { | |
| "num_heads": 3, | |
| "rotary_embedding_dim": 8, | |
| "interleaved": 0, | |
| "mrope_layout": 0, | |
| "mrope_section": [0, 3, 1], | |
| "scale": 0.3 | |
| }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 5, 24], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.113, "cosStep": 0.317, "scale": 3.0 } | |
| }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 2, 5], | |
| "data": { "kind": "cycle", "values": [0, 4, 2, 1, 3, 4, 0] } | |
| }, | |
| "cos": { | |
| "dtype": "float16", | |
| "shape": [5, 4], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.213, "cosStep": 0.437, "scale": 0.71 } | |
| }, | |
| "sin": { | |
| "dtype": "float16", | |
| "shape": [5, 4], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.619, "cosStep": 0.137, "scale": 0.83 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 5, 24], "tolerance": 0.01, "relTolerance": 0.01 } }, | |
| "provenance": { | |
| "notes": "Aligned vector pairs with a partial final workgroup, section-crossing cache columns, multiple batches, non-unit scale and both tensor ranks. Zero temporal section is covered at the smallest head width." | |
| } | |
| }, | |
| { | |
| "name": "vector_boundary_float16_rank3_d16_layout0_zero0", | |
| "attrs": { | |
| "num_heads": 3, | |
| "rotary_embedding_dim": 16, | |
| "interleaved": 0, | |
| "mrope_layout": 0, | |
| "mrope_section": [1, 2, 5], | |
| "scale": 0.3 | |
| }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 5, 48], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.113, "cosStep": 0.317, "scale": 3.0 } | |
| }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 2, 5], | |
| "data": { "kind": "cycle", "values": [0, 4, 2, 1, 3, 4, 0] } | |
| }, | |
| "cos": { | |
| "dtype": "float16", | |
| "shape": [5, 8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.213, "cosStep": 0.437, "scale": 0.71 } | |
| }, | |
| "sin": { | |
| "dtype": "float16", | |
| "shape": [5, 8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.619, "cosStep": 0.137, "scale": 0.83 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 5, 48], "tolerance": 0.01, "relTolerance": 0.01 } }, | |
| "provenance": { | |
| "notes": "Aligned vector pairs with a partial final workgroup, section-crossing cache columns, multiple batches, non-unit scale and both tensor ranks. Zero temporal section is covered at the smallest head width." | |
| } | |
| }, | |
| { | |
| "name": "vector_boundary_float16_rank3_d24_layout0_zero0", | |
| "attrs": { | |
| "num_heads": 3, | |
| "rotary_embedding_dim": 24, | |
| "interleaved": 0, | |
| "mrope_layout": 0, | |
| "mrope_section": [1, 2, 9], | |
| "scale": 0.3 | |
| }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 5, 72], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.113, "cosStep": 0.317, "scale": 3.0 } | |
| }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 2, 5], | |
| "data": { "kind": "cycle", "values": [0, 4, 2, 1, 3, 4, 0] } | |
| }, | |
| "cos": { | |
| "dtype": "float16", | |
| "shape": [5, 12], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.213, "cosStep": 0.437, "scale": 0.71 } | |
| }, | |
| "sin": { | |
| "dtype": "float16", | |
| "shape": [5, 12], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.619, "cosStep": 0.137, "scale": 0.83 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 5, 72], "tolerance": 0.01, "relTolerance": 0.01 } }, | |
| "provenance": { | |
| "notes": "Aligned vector pairs with a partial final workgroup, section-crossing cache columns, multiple batches, non-unit scale and both tensor ranks. Zero temporal section is covered at the smallest head width." | |
| } | |
| }, | |
| { | |
| "name": "vector_boundary_float16_rank4_d8_layout1_zero1", | |
| "attrs": { | |
| "num_heads": 3, | |
| "rotary_embedding_dim": 8, | |
| "interleaved": 0, | |
| "mrope_layout": 1, | |
| "mrope_section": [0, 3, 1], | |
| "scale": 0.3 | |
| }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 3, 5, 8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.113, "cosStep": 0.317, "scale": 3.0 } | |
| }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 2, 5], | |
| "data": { "kind": "cycle", "values": [0, 4, 2, 1, 3, 4, 0] } | |
| }, | |
| "cos": { | |
| "dtype": "float16", | |
| "shape": [5, 4], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.213, "cosStep": 0.437, "scale": 0.71 } | |
| }, | |
| "sin": { | |
| "dtype": "float16", | |
| "shape": [5, 4], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.619, "cosStep": 0.137, "scale": 0.83 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 3, 5, 8], "tolerance": 0.01, "relTolerance": 0.01 } }, | |
| "provenance": { | |
| "notes": "Aligned vector pairs with a partial final workgroup, section-crossing cache columns, multiple batches, non-unit scale and both tensor ranks. Zero temporal section is covered at the smallest head width." | |
| } | |
| }, | |
| { | |
| "name": "vector_boundary_float16_rank4_d16_layout1_zero0", | |
| "attrs": { | |
| "num_heads": 3, | |
| "rotary_embedding_dim": 16, | |
| "interleaved": 0, | |
| "mrope_layout": 1, | |
| "mrope_section": [1, 2, 5], | |
| "scale": 0.3 | |
| }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 3, 5, 16], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.113, "cosStep": 0.317, "scale": 3.0 } | |
| }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 2, 5], | |
| "data": { "kind": "cycle", "values": [0, 4, 2, 1, 3, 4, 0] } | |
| }, | |
| "cos": { | |
| "dtype": "float16", | |
| "shape": [5, 8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.213, "cosStep": 0.437, "scale": 0.71 } | |
| }, | |
| "sin": { | |
| "dtype": "float16", | |
| "shape": [5, 8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.619, "cosStep": 0.137, "scale": 0.83 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 3, 5, 16], "tolerance": 0.01, "relTolerance": 0.01 } }, | |
| "provenance": { | |
| "notes": "Aligned vector pairs with a partial final workgroup, section-crossing cache columns, multiple batches, non-unit scale and both tensor ranks. Zero temporal section is covered at the smallest head width." | |
| } | |
| }, | |
| { | |
| "name": "vector_boundary_float16_rank4_d24_layout1_zero0", | |
| "attrs": { | |
| "num_heads": 3, | |
| "rotary_embedding_dim": 24, | |
| "interleaved": 0, | |
| "mrope_layout": 1, | |
| "mrope_section": [1, 2, 9], | |
| "scale": 0.3 | |
| }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 3, 5, 24], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.113, "cosStep": 0.317, "scale": 3.0 } | |
| }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 2, 5], | |
| "data": { "kind": "cycle", "values": [0, 4, 2, 1, 3, 4, 0] } | |
| }, | |
| "cos": { | |
| "dtype": "float16", | |
| "shape": [5, 12], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.213, "cosStep": 0.437, "scale": 0.71 } | |
| }, | |
| "sin": { | |
| "dtype": "float16", | |
| "shape": [5, 12], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.619, "cosStep": 0.137, "scale": 0.83 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 3, 5, 24], "tolerance": 0.01, "relTolerance": 0.01 } }, | |
| "provenance": { | |
| "notes": "Aligned vector pairs with a partial final workgroup, section-crossing cache columns, multiple batches, non-unit scale and both tensor ranks. Zero temporal section is covered at the smallest head width." | |
| } | |
| }, | |
| { | |
| "name": "ort_partial_rotary_dim_copies_tail_rank3", | |
| "attrs": { | |
| "num_heads": 1, | |
| "rotary_embedding_dim": 6, | |
| "mrope_layout": 0, | |
| "interleaved": 0, | |
| "scale": 1, | |
| "mrope_section": [1, 1, 1] | |
| }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 8], | |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] } | |
| }, | |
| "positionIds": { "dtype": "int32", "shape": [3, 1, 1], "data": { "kind": "values", "values": [0, 0, 0] } }, | |
| "cos": { | |
| "dtype": "float32", | |
| "shape": [4, 3], | |
| "data": { "kind": "values", "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] } | |
| }, | |
| "sin": { | |
| "dtype": "float32", | |
| "shape": [4, 3], | |
| "data": { "kind": "values", "values": [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 8], "tolerance": 0.000001, "relTolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "ort_empty_rank3_input", | |
| "attrs": { "num_heads": 1, "mrope_layout": 0, "interleaved": 0, "mrope_section": [0, 0, 0] }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [1, 1, 0], "data": { "kind": "values", "values": [] } }, | |
| "positionIds": { "dtype": "int32", "shape": [3, 1, 1], "data": { "kind": "values", "values": [0, 0, 0] } }, | |
| "cos": { "dtype": "float32", "shape": [1, 0], "data": { "kind": "values", "values": [] } }, | |
| "sin": { "dtype": "float32", "shape": [1, 0], "data": { "kind": "values", "values": [] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 0], "tolerance": 0.000001, "relTolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "ort_empty_rank4_input", | |
| "attrs": { | |
| "num_heads": 2, | |
| "rotary_embedding_dim": 6, | |
| "mrope_layout": 0, | |
| "interleaved": 0, | |
| "mrope_section": [1, 1, 1] | |
| }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [1, 2, 0, 6], "data": { "kind": "values", "values": [] } }, | |
| "positionIds": { "dtype": "int32", "shape": [3, 1, 0], "data": { "kind": "values", "values": [] } }, | |
| "cos": { "dtype": "float32", "shape": [1, 3], "data": { "kind": "values", "values": [1.0, 1.0, 1.0] } }, | |
| "sin": { "dtype": "float32", "shape": [1, 3], "data": { "kind": "values", "values": [0.0, 0.0, 0.0] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 2, 0, 6], "tolerance": 0.000001, "relTolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "ort_sectioned_rank3_f16", | |
| "attrs": { | |
| "num_heads": 2, | |
| "rotary_embedding_dim": 6, | |
| "mrope_layout": 0, | |
| "interleaved": 0, | |
| "scale": 1, | |
| "mrope_section": [1, 1, 1] | |
| }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 2, 12], | |
| "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_sectioned_rank3_input_x" } } | |
| }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 1, 2], | |
| "data": { "kind": "values", "values": [0, 1, 1, 2, 2, 3] } | |
| }, | |
| "cos": { | |
| "dtype": "float16", | |
| "shape": [4, 3], | |
| "data": { "kind": "values", "values": [1.0, 1.01, 1.02, 1.1, 1.11, 1.12, 1.2, 1.21, 1.22, 1.3, 1.31, 1.32] } | |
| }, | |
| "sin": { | |
| "dtype": "float16", | |
| "shape": [4, 3], | |
| "data": { "kind": "values", "values": [0.1, 0.11, 0.12, 0.15, 0.16, 0.17, 0.2, 0.21, 0.22, 0.25, 0.26, 0.27] } | |
| } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float16", | |
| "shape": [1, 2, 12], | |
| "tolerance": 0.01, | |
| "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_sectioned_rank3_output_y" } }, | |
| "relTolerance": 0.01 | |
| } | |
| } | |
| }, | |
| { | |
| "name": "ort_interleaved_rank4_f16", | |
| "attrs": { | |
| "num_heads": 2, | |
| "rotary_embedding_dim": 6, | |
| "mrope_layout": 1, | |
| "interleaved": 1, | |
| "scale": 0.5, | |
| "mrope_section": [1, 1, 1] | |
| }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 2, 2, 6], | |
| "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_sectioned_rank3_input_x" } } | |
| }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 1, 2], | |
| "data": { "kind": "values", "values": [0, 1, 1, 2, 2, 3] } | |
| }, | |
| "cos": { | |
| "dtype": "float16", | |
| "shape": [4, 3], | |
| "data": { "kind": "values", "values": [1.0, 1.01, 1.02, 1.1, 1.11, 1.12, 1.2, 1.21, 1.22, 1.3, 1.31, 1.32] } | |
| }, | |
| "sin": { | |
| "dtype": "float16", | |
| "shape": [4, 3], | |
| "data": { "kind": "values", "values": [0.1, 0.11, 0.12, 0.15, 0.16, 0.17, 0.2, 0.21, 0.22, 0.25, 0.26, 0.27] } | |
| } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float16", | |
| "shape": [1, 2, 2, 6], | |
| "tolerance": 0.01, | |
| "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_interleaved_rank4_output_y" } }, | |
| "relTolerance": 0.01 | |
| } | |
| } | |
| }, | |
| { | |
| "name": "ort_oob_negative_stream0", | |
| "provenance": { | |
| "source": "onnxruntime/test/contrib_ops/mrotary_embedding_op_test.cc", | |
| "test": "PositionIdsOOBPassthroughAllStreams", | |
| "notes": "Each invalid stream copies only its own rotation pair. Values outside int32 are saturated by the host projection." | |
| }, | |
| "attrs": { "num_heads": 1, "rotary_embedding_dim": 6, "mrope_section": [1, 1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 6], | |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] } | |
| }, | |
| "positionIds": { "dtype": "int32", "shape": [3, 1, 1], "data": { "kind": "values", "values": [-1, 0, 0] } }, | |
| "cos": { "dtype": "float32", "shape": [2, 3], "data": { "kind": "constant", "value": 0.0 } }, | |
| "sin": { "dtype": "float32", "shape": [2, 3], "data": { "kind": "constant", "value": 1.0 } } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 6], | |
| "data": { "kind": "values", "values": [1.0, -5.0, -6.0, 4.0, 2.0, 3.0] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "ort_oob_upper_bound_stream0", | |
| "provenance": { | |
| "source": "onnxruntime/test/contrib_ops/mrotary_embedding_op_test.cc", | |
| "test": "PositionIdsOOBPassthroughAllStreams", | |
| "notes": "Each invalid stream copies only its own rotation pair. Values outside int32 are saturated by the host projection." | |
| }, | |
| "attrs": { "num_heads": 1, "rotary_embedding_dim": 6, "mrope_section": [1, 1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 6], | |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] } | |
| }, | |
| "positionIds": { "dtype": "int32", "shape": [3, 1, 1], "data": { "kind": "values", "values": [2, 0, 0] } }, | |
| "cos": { "dtype": "float32", "shape": [2, 3], "data": { "kind": "constant", "value": 0.0 } }, | |
| "sin": { "dtype": "float32", "shape": [2, 3], "data": { "kind": "constant", "value": 1.0 } } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 6], | |
| "data": { "kind": "values", "values": [1.0, -5.0, -6.0, 4.0, 2.0, 3.0] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "ort_oob_saturated_high_stream0", | |
| "provenance": { | |
| "source": "onnxruntime/test/contrib_ops/mrotary_embedding_op_test.cc", | |
| "test": "PositionIdsOOBPassthroughAllStreams", | |
| "notes": "Each invalid stream copies only its own rotation pair. Values outside int32 are saturated by the host projection." | |
| }, | |
| "attrs": { "num_heads": 1, "rotary_embedding_dim": 6, "mrope_section": [1, 1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 6], | |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] } | |
| }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 1, 1], | |
| "data": { "kind": "values", "values": [2147483647, 0, 0] } | |
| }, | |
| "cos": { "dtype": "float32", "shape": [2, 3], "data": { "kind": "constant", "value": 0.0 } }, | |
| "sin": { "dtype": "float32", "shape": [2, 3], "data": { "kind": "constant", "value": 1.0 } } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 6], | |
| "data": { "kind": "values", "values": [1.0, -5.0, -6.0, 4.0, 2.0, 3.0] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "ort_oob_saturated_low_stream0", | |
| "provenance": { | |
| "source": "onnxruntime/test/contrib_ops/mrotary_embedding_op_test.cc", | |
| "test": "PositionIdsOOBPassthroughAllStreams", | |
| "notes": "Each invalid stream copies only its own rotation pair. Values outside int32 are saturated by the host projection." | |
| }, | |
| "attrs": { "num_heads": 1, "rotary_embedding_dim": 6, "mrope_section": [1, 1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 6], | |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] } | |
| }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 1, 1], | |
| "data": { "kind": "values", "values": [-2147483648, 0, 0] } | |
| }, | |
| "cos": { "dtype": "float32", "shape": [2, 3], "data": { "kind": "constant", "value": 0.0 } }, | |
| "sin": { "dtype": "float32", "shape": [2, 3], "data": { "kind": "constant", "value": 1.0 } } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 6], | |
| "data": { "kind": "values", "values": [1.0, -5.0, -6.0, 4.0, 2.0, 3.0] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "ort_oob_negative_stream1", | |
| "provenance": { | |
| "source": "onnxruntime/test/contrib_ops/mrotary_embedding_op_test.cc", | |
| "test": "PositionIdsOOBPassthroughAllStreams", | |
| "notes": "Each invalid stream copies only its own rotation pair. Values outside int32 are saturated by the host projection." | |
| }, | |
| "attrs": { "num_heads": 1, "rotary_embedding_dim": 6, "mrope_section": [1, 1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 6], | |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] } | |
| }, | |
| "positionIds": { "dtype": "int32", "shape": [3, 1, 1], "data": { "kind": "values", "values": [0, -1, 0] } }, | |
| "cos": { "dtype": "float32", "shape": [2, 3], "data": { "kind": "constant", "value": 0.0 } }, | |
| "sin": { "dtype": "float32", "shape": [2, 3], "data": { "kind": "constant", "value": 1.0 } } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 6], | |
| "data": { "kind": "values", "values": [-4.0, 2.0, -6.0, 1.0, 5.0, 3.0] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "ort_oob_upper_bound_stream1", | |
| "provenance": { | |
| "source": "onnxruntime/test/contrib_ops/mrotary_embedding_op_test.cc", | |
| "test": "PositionIdsOOBPassthroughAllStreams", | |
| "notes": "Each invalid stream copies only its own rotation pair. Values outside int32 are saturated by the host projection." | |
| }, | |
| "attrs": { "num_heads": 1, "rotary_embedding_dim": 6, "mrope_section": [1, 1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 6], | |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] } | |
| }, | |
| "positionIds": { "dtype": "int32", "shape": [3, 1, 1], "data": { "kind": "values", "values": [0, 2, 0] } }, | |
| "cos": { "dtype": "float32", "shape": [2, 3], "data": { "kind": "constant", "value": 0.0 } }, | |
| "sin": { "dtype": "float32", "shape": [2, 3], "data": { "kind": "constant", "value": 1.0 } } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 6], | |
| "data": { "kind": "values", "values": [-4.0, 2.0, -6.0, 1.0, 5.0, 3.0] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "ort_oob_saturated_high_stream1", | |
| "provenance": { | |
| "source": "onnxruntime/test/contrib_ops/mrotary_embedding_op_test.cc", | |
| "test": "PositionIdsOOBPassthroughAllStreams", | |
| "notes": "Each invalid stream copies only its own rotation pair. Values outside int32 are saturated by the host projection." | |
| }, | |
| "attrs": { "num_heads": 1, "rotary_embedding_dim": 6, "mrope_section": [1, 1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 6], | |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] } | |
| }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 1, 1], | |
| "data": { "kind": "values", "values": [0, 2147483647, 0] } | |
| }, | |
| "cos": { "dtype": "float32", "shape": [2, 3], "data": { "kind": "constant", "value": 0.0 } }, | |
| "sin": { "dtype": "float32", "shape": [2, 3], "data": { "kind": "constant", "value": 1.0 } } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 6], | |
| "data": { "kind": "values", "values": [-4.0, 2.0, -6.0, 1.0, 5.0, 3.0] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "ort_oob_saturated_low_stream1", | |
| "provenance": { | |
| "source": "onnxruntime/test/contrib_ops/mrotary_embedding_op_test.cc", | |
| "test": "PositionIdsOOBPassthroughAllStreams", | |
| "notes": "Each invalid stream copies only its own rotation pair. Values outside int32 are saturated by the host projection." | |
| }, | |
| "attrs": { "num_heads": 1, "rotary_embedding_dim": 6, "mrope_section": [1, 1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 6], | |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] } | |
| }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 1, 1], | |
| "data": { "kind": "values", "values": [0, -2147483648, 0] } | |
| }, | |
| "cos": { "dtype": "float32", "shape": [2, 3], "data": { "kind": "constant", "value": 0.0 } }, | |
| "sin": { "dtype": "float32", "shape": [2, 3], "data": { "kind": "constant", "value": 1.0 } } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 6], | |
| "data": { "kind": "values", "values": [-4.0, 2.0, -6.0, 1.0, 5.0, 3.0] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "ort_oob_negative_stream2", | |
| "provenance": { | |
| "source": "onnxruntime/test/contrib_ops/mrotary_embedding_op_test.cc", | |
| "test": "PositionIdsOOBPassthroughAllStreams", | |
| "notes": "Each invalid stream copies only its own rotation pair. Values outside int32 are saturated by the host projection." | |
| }, | |
| "attrs": { "num_heads": 1, "rotary_embedding_dim": 6, "mrope_section": [1, 1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 6], | |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] } | |
| }, | |
| "positionIds": { "dtype": "int32", "shape": [3, 1, 1], "data": { "kind": "values", "values": [0, 0, -1] } }, | |
| "cos": { "dtype": "float32", "shape": [2, 3], "data": { "kind": "constant", "value": 0.0 } }, | |
| "sin": { "dtype": "float32", "shape": [2, 3], "data": { "kind": "constant", "value": 1.0 } } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 6], | |
| "data": { "kind": "values", "values": [-4.0, -5.0, 3.0, 1.0, 2.0, 6.0] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "ort_oob_upper_bound_stream2", | |
| "provenance": { | |
| "source": "onnxruntime/test/contrib_ops/mrotary_embedding_op_test.cc", | |
| "test": "PositionIdsOOBPassthroughAllStreams", | |
| "notes": "Each invalid stream copies only its own rotation pair. Values outside int32 are saturated by the host projection." | |
| }, | |
| "attrs": { "num_heads": 1, "rotary_embedding_dim": 6, "mrope_section": [1, 1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 6], | |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] } | |
| }, | |
| "positionIds": { "dtype": "int32", "shape": [3, 1, 1], "data": { "kind": "values", "values": [0, 0, 2] } }, | |
| "cos": { "dtype": "float32", "shape": [2, 3], "data": { "kind": "constant", "value": 0.0 } }, | |
| "sin": { "dtype": "float32", "shape": [2, 3], "data": { "kind": "constant", "value": 1.0 } } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 6], | |
| "data": { "kind": "values", "values": [-4.0, -5.0, 3.0, 1.0, 2.0, 6.0] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "ort_oob_saturated_high_stream2", | |
| "provenance": { | |
| "source": "onnxruntime/test/contrib_ops/mrotary_embedding_op_test.cc", | |
| "test": "PositionIdsOOBPassthroughAllStreams", | |
| "notes": "Each invalid stream copies only its own rotation pair. Values outside int32 are saturated by the host projection." | |
| }, | |
| "attrs": { "num_heads": 1, "rotary_embedding_dim": 6, "mrope_section": [1, 1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 6], | |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] } | |
| }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 1, 1], | |
| "data": { "kind": "values", "values": [0, 0, 2147483647] } | |
| }, | |
| "cos": { "dtype": "float32", "shape": [2, 3], "data": { "kind": "constant", "value": 0.0 } }, | |
| "sin": { "dtype": "float32", "shape": [2, 3], "data": { "kind": "constant", "value": 1.0 } } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 6], | |
| "data": { "kind": "values", "values": [-4.0, -5.0, 3.0, 1.0, 2.0, 6.0] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "ort_oob_saturated_low_stream2", | |
| "provenance": { | |
| "source": "onnxruntime/test/contrib_ops/mrotary_embedding_op_test.cc", | |
| "test": "PositionIdsOOBPassthroughAllStreams", | |
| "notes": "Each invalid stream copies only its own rotation pair. Values outside int32 are saturated by the host projection." | |
| }, | |
| "attrs": { "num_heads": 1, "rotary_embedding_dim": 6, "mrope_section": [1, 1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 6], | |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] } | |
| }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 1, 1], | |
| "data": { "kind": "values", "values": [0, 0, -2147483648] } | |
| }, | |
| "cos": { "dtype": "float32", "shape": [2, 3], "data": { "kind": "constant", "value": 0.0 } }, | |
| "sin": { "dtype": "float32", "shape": [2, 3], "data": { "kind": "constant", "value": 1.0 } } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 6], | |
| "data": { "kind": "values", "values": [-4.0, -5.0, 3.0, 1.0, 2.0, 6.0] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "oob_mixed_rank3_float32_interleaved0", | |
| "attrs": { "num_heads": 2, "mrope_section": [2, 1, 1], "mrope_layout": 0, "interleaved": 0 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [2, 2, 16], "data": { "kind": "linspace", "start": -2.0, "end": 2.0 } }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 2, 2], | |
| "data": { "kind": "values", "values": [-1, 0, 1, 2, 0, -1, 2, 1, 2, 1, 0, -1] } | |
| }, | |
| "cos": { "dtype": "float32", "shape": [2, 4], "data": { "kind": "linspace", "start": 0.1, "end": 0.8 } }, | |
| "sin": { "dtype": "float32", "shape": [2, 4], "data": { "kind": "linspace", "start": -0.8, "end": -0.1 } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 2, 16], "tolerance": 0.00001, "relTolerance": 0.00001 } } | |
| }, | |
| { | |
| "name": "oob_mixed_rank3_float32_interleaved1", | |
| "attrs": { "num_heads": 2, "mrope_section": [2, 1, 1], "mrope_layout": 1, "interleaved": 1 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [2, 2, 16], "data": { "kind": "linspace", "start": -2.0, "end": 2.0 } }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 2, 2], | |
| "data": { "kind": "values", "values": [-1, 0, 1, 2, 0, -1, 2, 1, 2, 1, 0, -1] } | |
| }, | |
| "cos": { "dtype": "float32", "shape": [2, 4], "data": { "kind": "linspace", "start": 0.1, "end": 0.8 } }, | |
| "sin": { "dtype": "float32", "shape": [2, 4], "data": { "kind": "linspace", "start": -0.8, "end": -0.1 } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 2, 16], "tolerance": 0.00001, "relTolerance": 0.00001 } } | |
| }, | |
| { | |
| "name": "oob_mixed_rank3_float16_interleaved0", | |
| "attrs": { "num_heads": 2, "mrope_section": [2, 1, 1], "mrope_layout": 0, "interleaved": 0 }, | |
| "inputs": { | |
| "x": { "dtype": "float16", "shape": [2, 2, 16], "data": { "kind": "linspace", "start": -2.0, "end": 2.0 } }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 2, 2], | |
| "data": { "kind": "values", "values": [-1, 0, 1, 2, 0, -1, 2, 1, 2, 1, 0, -1] } | |
| }, | |
| "cos": { "dtype": "float16", "shape": [2, 4], "data": { "kind": "linspace", "start": 0.1, "end": 0.8 } }, | |
| "sin": { "dtype": "float16", "shape": [2, 4], "data": { "kind": "linspace", "start": -0.8, "end": -0.1 } } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 2, 16], "tolerance": 0.002, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "oob_mixed_rank3_float16_interleaved1", | |
| "attrs": { "num_heads": 2, "mrope_section": [2, 1, 1], "mrope_layout": 1, "interleaved": 1 }, | |
| "inputs": { | |
| "x": { "dtype": "float16", "shape": [2, 2, 16], "data": { "kind": "linspace", "start": -2.0, "end": 2.0 } }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 2, 2], | |
| "data": { "kind": "values", "values": [-1, 0, 1, 2, 0, -1, 2, 1, 2, 1, 0, -1] } | |
| }, | |
| "cos": { "dtype": "float16", "shape": [2, 4], "data": { "kind": "linspace", "start": 0.1, "end": 0.8 } }, | |
| "sin": { "dtype": "float16", "shape": [2, 4], "data": { "kind": "linspace", "start": -0.8, "end": -0.1 } } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 2, 16], "tolerance": 0.002, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "oob_mixed_rank4_float32_interleaved0", | |
| "attrs": { "num_heads": 2, "mrope_section": [2, 1, 1], "mrope_layout": 0, "interleaved": 0 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [2, 2, 2, 8], "data": { "kind": "linspace", "start": -2.0, "end": 2.0 } }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 2, 2], | |
| "data": { "kind": "values", "values": [-1, 0, 1, 2, 0, -1, 2, 1, 2, 1, 0, -1] } | |
| }, | |
| "cos": { "dtype": "float32", "shape": [2, 4], "data": { "kind": "linspace", "start": 0.1, "end": 0.8 } }, | |
| "sin": { "dtype": "float32", "shape": [2, 4], "data": { "kind": "linspace", "start": -0.8, "end": -0.1 } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 2, 2, 8], "tolerance": 0.00001, "relTolerance": 0.00001 } } | |
| }, | |
| { | |
| "name": "oob_mixed_rank4_float32_interleaved1", | |
| "attrs": { "num_heads": 2, "mrope_section": [2, 1, 1], "mrope_layout": 1, "interleaved": 1 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [2, 2, 2, 8], "data": { "kind": "linspace", "start": -2.0, "end": 2.0 } }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 2, 2], | |
| "data": { "kind": "values", "values": [-1, 0, 1, 2, 0, -1, 2, 1, 2, 1, 0, -1] } | |
| }, | |
| "cos": { "dtype": "float32", "shape": [2, 4], "data": { "kind": "linspace", "start": 0.1, "end": 0.8 } }, | |
| "sin": { "dtype": "float32", "shape": [2, 4], "data": { "kind": "linspace", "start": -0.8, "end": -0.1 } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 2, 2, 8], "tolerance": 0.00001, "relTolerance": 0.00001 } } | |
| }, | |
| { | |
| "name": "oob_mixed_rank4_float16_interleaved0", | |
| "attrs": { "num_heads": 2, "mrope_section": [2, 1, 1], "mrope_layout": 0, "interleaved": 0 }, | |
| "inputs": { | |
| "x": { "dtype": "float16", "shape": [2, 2, 2, 8], "data": { "kind": "linspace", "start": -2.0, "end": 2.0 } }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 2, 2], | |
| "data": { "kind": "values", "values": [-1, 0, 1, 2, 0, -1, 2, 1, 2, 1, 0, -1] } | |
| }, | |
| "cos": { "dtype": "float16", "shape": [2, 4], "data": { "kind": "linspace", "start": 0.1, "end": 0.8 } }, | |
| "sin": { "dtype": "float16", "shape": [2, 4], "data": { "kind": "linspace", "start": -0.8, "end": -0.1 } } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 2, 2, 8], "tolerance": 0.002, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "oob_mixed_rank4_float16_interleaved1", | |
| "attrs": { "num_heads": 2, "mrope_section": [2, 1, 1], "mrope_layout": 1, "interleaved": 1 }, | |
| "inputs": { | |
| "x": { "dtype": "float16", "shape": [2, 2, 2, 8], "data": { "kind": "linspace", "start": -2.0, "end": 2.0 } }, | |
| "positionIds": { | |
| "dtype": "int32", | |
| "shape": [3, 2, 2], | |
| "data": { "kind": "values", "values": [-1, 0, 1, 2, 0, -1, 2, 1, 2, 1, 0, -1] } | |
| }, | |
| "cos": { "dtype": "float16", "shape": [2, 4], "data": { "kind": "linspace", "start": 0.1, "end": 0.8 } }, | |
| "sin": { "dtype": "float16", "shape": [2, 4], "data": { "kind": "linspace", "start": -0.8, "end": -0.1 } } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 2, 2, 8], "tolerance": 0.002, "relTolerance": 0.001 } } | |
| } | |
| ] | |
| } | |