What a vector digest is and is not
A vector_sha256 binds the set. It is what stops a published tolerance from silently coming to refer to a different set of vectors than the one it was measured against — the §15.3 defect the whole set_manifest_sha256 requirement exists to close.
It is not the conformance test, and this measurement shows why. Holding the checkpoint, the toolchain, the device and the images fixed, and changing only how the forward pass was scheduled:
| change | digests still matching (of 10) | worst cosine |
|---|---|---|
| siglip2 · siglip · clip | ||
| a fresh process, same pins | 10 · 10 · 10 | 1.0 |
all ten images in one embed_images() call (CPU batches of 8 + 2) | 3 · 4 · 3 | ≥ 0.9999999 |
torch.set_num_threads(4) instead of 1 | 0 · 0 · 6 | ≥ 0.9999999 |
The vectors are the same vectors — the disagreements are last-place bits that survive the binary16 cast — but the digests are not the same digests. Two consequences, both deliberate:
- The published construction is pinned to what a reader can reproduce. Threads are set to 1 rather than left at whatever the measuring machine had, and each image is embedded in a call of its own so that reproducing item 7 requires item 7 and nothing else. A digest that only reproduces when nine other images are in the same batch is not a digest anyone can check.
- Conformance is the declared cosine tolerance, not digest equality. Draft §8.2 sets the float floor at ≥ 0.99 and says descriptors SHOULD declare ≥ 0.999; the largest scheduling difference above is a cosine deficit of about 6 × 10⁻⁸, four to five orders of magnitude inside either bar. A specification that asked for bit-exact vectors would be asking for something no two BLAS builds deliver, which is precisely the distinction between this and the decoder corpus next door: CPNP-1 is integer-exact and
standards/decoder-corpus/1/really does demand every digest exactly (errata E12), while a forward pass in floating point does not and must not.
Bit-exact reproduction of these digests therefore requires the pinned toolchain and the same CPU kernel dispatch. Cross-architecture bit-exactness has not been measured and is not claimed.
