|
1 | 1 | # Block-Decomposed TurboQuant: a Lossy Extension Type with PDX Layout |
2 | 2 |
|
3 | | -**Authors:** @lwwmanning, @connortsui20 |
4 | | -**Status:** Proposal |
5 | | -**Date:** 2026-04-02 (rewritten 2026-05-12; citations corrected 2026-05-12) |
| 3 | +- Start Date: 2026-05-12 |
| 4 | +- Authors: @lwwmanning, @connortsui20 |
| 5 | +- RFC PR: [vortex-data/rfcs#60](https://github.com/vortex-data/rfcs/pull/60) |
6 | 6 |
|
7 | 7 | ## Summary |
8 | 8 |
|
@@ -35,17 +35,16 @@ decision below: |
35 | 35 | recompression by the default cascade compressor, and no "approximate" flag — |
36 | 36 | the encoding is lossy by definition. |
37 | 37 |
|
38 | | -This rewrite supersedes the original RFC 33 draft, which was written against an |
39 | | -earlier monolithic `TurboQuantArray` design that has since been replaced by the |
40 | | -extension-type model on `vortex-data/vortex` `develop` (PR #7829, merged |
41 | | -2026-05-07). It also incorporates a piece of prior art the original RFC missed: |
42 | | -the **EDEN paper** [15] ([arXiv:2108.08842], ICML 2022) and its predecessor |
43 | | -**DRIVE** [16] ([arXiv:2105.08339], NeurIPS 2021) predate TurboQuant [1] |
44 | | -([arXiv:2504.19874]). A recent note by the EDEN authors [14] |
45 | | -([arXiv:2604.18555], April 2026) demonstrates that TurboQuant is a suboptimal |
46 | | -special case of the same RHT + Lloyd-Max scalar quantizer family. We adopt |
47 | | -EDEN's contributions while keeping the codebase's TurboQuant branding; |
48 | | -see §4 "Naming." |
| 38 | +This RFC is anchored to the current state of the `vortex-data/vortex` |
| 39 | +`develop` branch — specifically the extension-type implementation in the |
| 40 | +standalone `vortex-turboquant` crate (PR #7829, merged 2026-05-07). The |
| 41 | +algorithm sits in a family that includes **EDEN** [15] ([arXiv:2108.08842], |
| 42 | +ICML 2022) and its predecessor **DRIVE** [16] ([arXiv:2105.08339], |
| 43 | +NeurIPS 2021); both predate TurboQuant [1] ([arXiv:2504.19874]). A recent |
| 44 | +note by the EDEN authors [14] ([arXiv:2604.18555], April 2026) shows that |
| 45 | +TurboQuant is a special case of EDEN with a suboptimal fixed scale `S = 1`. |
| 46 | +We adopt EDEN's contributions while keeping the codebase's TurboQuant |
| 47 | +branding; see §4 "Naming." |
49 | 48 |
|
50 | 49 | [arXiv:2108.08842]: https://arxiv.org/abs/2108.08842 |
51 | 50 | [arXiv:2105.08339]: https://arxiv.org/abs/2105.08339 |
@@ -210,7 +209,7 @@ correlation tests. |
210 | 209 |
|
211 | 210 | ### Relationship to EDEN and DRIVE |
212 | 211 |
|
213 | | -The original RFC 33 missed an important piece of prior art. **EDEN** [15] |
| 212 | +An important piece of prior art for this design family is **EDEN** [15] |
214 | 213 | (Vargaftik et al., ICML 2022; [arXiv:2108.08842]) and its predecessor |
215 | 214 | **DRIVE** [16] (NeurIPS 2021; [arXiv:2105.08339]) use the same building blocks |
216 | 215 | as TurboQuant — Randomized Hadamard Transform plus Lloyd–Max scalar |
@@ -1304,8 +1303,8 @@ with the column's metadata. |
1304 | 1303 | SORF at B dimensions (heuristic; real cost is dominated by memory |
1305 | 1304 | bandwidth and constant factors): `R · B · log₂(B)` butterflies + `R · B` |
1306 | 1305 | sign applications per block. The per-vector normalization multiplies |
1307 | | -(`B` per block) are omitted from these counts as in the original RFC 33; |
1308 | | -they amortize against memory bandwidth in practice. For Stage 1 with |
| 1306 | +(`B` per block) are omitted from these counts; they amortize against |
| 1307 | +memory bandwidth in practice. For Stage 1 with |
1309 | 1308 | padded_dim and 3 rounds: |
1310 | 1309 |
|
1311 | 1310 | | padded_dim | SORF FLOPs | k | Total per-vector FLOPs | |
@@ -2258,11 +2257,11 @@ work, not blockers on the design: |
2258 | 2257 | d < 128 by a new writer would be rejected by an old reader. Surface |
2259 | 2258 | this in the migration plan when the experiment lands. |
2260 | 2259 |
|
2261 | | -### Resolved during this rewrite |
| 2260 | +### Resolved during initial drafting |
2262 | 2261 |
|
2263 | | -The following questions were live during the first draft of the rewrite |
2264 | | -and have been resolved here. Recording the resolutions so future readers |
2265 | | -don't re-litigate. |
| 2262 | +The following questions were considered during the design and have been |
| 2263 | +resolved here. Recording the resolutions so future readers don't |
| 2264 | +re-litigate. |
2266 | 2265 |
|
2267 | 2266 | - **Norm storage shape uniformity (Stage 2)** — resolved in favor of |
2268 | 2267 | `Primitive<element_ptype>` when `num_blocks == 1` (matches Stage 1 |
|
0 commit comments