Repository navigation
Commit defb8fc
committed
Restrict fuse_attention to rank-4 SDPA graphs
Only fuse graphs that the Attention op can represent:
- Q, K and V must be rank 4 with static, matching batch and head dims.
- The default scale must come from a Shape covering all of Q and a Slice
that selects only the last dimension (start -1, end >= 4, axis 0/-1,
step 1). Previously a Shape end or an unchecked Slice end/step could
pick a different dimension and silently change the scale.
- An explicit scale must be a scalar, so a higher-rank constant cannot
promote Q or K^T and change the output rank.
Add negative tests for the shape-selection, scale-rank and batch
mismatch cases.
Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VPahbkPmWYWChRCBQX7osk
Signed-off-by: take-cheeze <takechi101010@gmail.com>1 parent 7550317 commit defb8fc
2 files changed
Lines changed: 93 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
107 | 107 | | |
108 | 108 | | |
109 | 109 | | |
110 | | - | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
111 | 114 | | |
112 | | - | |
113 | | - | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
114 | 119 | | |
115 | 120 | | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
116 | 134 | | |
117 | | - | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
118 | 160 | | |
119 | 161 | | |
120 | 162 | | |
| |||
215 | 257 | | |
216 | 258 | | |
217 | 259 | | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
218 | 268 | | |
219 | 269 | | |
220 | 270 | | |
| |||
223 | 273 | | |
224 | 274 | | |
225 | 275 | | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
226 | 284 | | |
227 | 285 | | |
228 | 286 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5105 | 5105 | | |
5106 | 5106 | | |
5107 | 5107 | | |
| 5108 | + | |
| 5109 | + | |
| 5110 | + | |
| 5111 | + | |
| 5112 | + | |
| 5113 | + | |
| 5114 | + | |
| 5115 | + | |
| 5116 | + | |
| 5117 | + | |
| 5118 | + | |
| 5119 | + | |
| 5120 | + | |
| 5121 | + | |
| 5122 | + | |
| 5123 | + | |
| 5124 | + | |
| 5125 | + | |
| 5126 | + | |
| 5127 | + | |
| 5128 | + | |
| 5129 | + | |
| 5130 | + | |
| 5131 | + | |
| 5132 | + | |
| 5133 | + | |
| 5134 | + | |
| 5135 | + | |
| 5136 | + | |
| 5137 | + | |
| 5138 | + | |
5108 | 5139 | | |
5109 | 5140 | | |
5110 | 5141 | | |
| |||
0 commit comments