Repository navigation
Commit 40a71ad
committed
masking-ops: G8 review round -- carving, feature bits, tail, sixth backend
Five review findings on #317, each verified in the tree before fixing, plus
two facts the verification turned up that change the gate.
- "each tier byte" was wrong about the unit. `RailSpec::v3_facet`
(src/hpc/clam_v3.rs) walks six sequential (u8:u8) levels at key offsets
4..16 with stride 2, so a tier is TWO bytes, one per axis. The u64 operand
at 8..16 is 4 tiers x 2 bytes = 8 bytes = 16 nibbles. States the carving,
operand width and pair-versus-axis grouping up front, as both reviewers
asked.
- vpshufb at zmm width needs AVX-512BW, not AVX-512CD. The entry gated the
whole sequence on CD alone. Now names both bits and says a CD-without-BW
target needs a different byte reversal.
- "no padding and no tail descent" was a claim about the OPERAND stated as
though it covered the population. Eight u64 tails tile a zmm, but a row
count not divisible by eight still leaves a column remainder, as the
slice-level U64x8 ops handle with pad_tail. No multiple-of-eight input
contract is stated or intended; an implementation keeps a remainder path
and tests non-multiple-of-eight lengths.
- The falsifier said six realizations while the list named five. The sixth is
the nightly core::simd arm (src/simd_nightly/), now named.
- MD040: the depth fence had no language.
Two findings from reading clam_v3.rs that the reviews did not reach, and that
matter more than any of the above:
- RailSpec carries TWO carvings and its doc records a measurement between
them. The interleaved X:Y pair reading (v3_facet, 6 levels, stride 2) fits
only 44.25% of paths on the medcare bake; the contiguous per-axis slab
(RailSpec::slab, 12 levels, stride 1) fits 99.62% in twelve levels. That
inverts G8's gate: on the slab carving a contiguous u64 IS one axis, the
mixed-axis caveat evaporates, and a plain lzcnt(bswap) is exactly right; on
the pair carving it is only a mixed-axis tiebreaker. So the consumer gate
must name the CARVING as well as the call site, and the measured split says
the slab is the likelier target. Do not build against the pair reading
because it happens to be the zero-fallback default.
- Levels grow by STACKING, not widening: a class needing more than six levels
chains a second register, explicitly contemplated as the edge lane at
16..32, running depth 0..=12 over two registers. So a G8 column op over a
stacked pair is two chained operands, never one wider one, which is also
why no u128 variant is proposed.
Docs only. Still named, not built.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HScwwezRdMxFfTs3WLG19d1 parent ab5f347 commit 40a71ad
1 file changed
Lines changed: 46 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
202 | 202 | | |
203 | 203 | | |
204 | 204 | | |
205 | | - | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
206 | 212 | | |
207 | 213 | | |
208 | 214 | | |
| |||
233 | 239 | | |
234 | 240 | | |
235 | 241 | | |
236 | | - | |
| 242 | + | |
237 | 243 | | |
238 | 244 | | |
239 | 245 | | |
240 | 246 | | |
241 | | - | |
242 | | - | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
243 | 252 | | |
244 | 253 | | |
245 | 254 | | |
246 | | - | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
247 | 262 | | |
248 | 263 | | |
249 | 264 | | |
250 | 265 | | |
251 | | - | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
252 | 269 | | |
253 | 270 | | |
254 | 271 | | |
| |||
283 | 300 | | |
284 | 301 | | |
285 | 302 | | |
286 | | - | |
287 | | - | |
288 | | - | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
289 | 326 | | |
290 | 327 | | |
291 | 328 | | |
| |||
0 commit comments