Is it worth it? The break-even explorer
Residue width, baud, wavelengths, multiply/add cost and placement against the precomputed sweep, with the Amdahl ceiling.
| FPGA butterfly units matched by the optical core | not computed (widths 8–55 bits; 14/56/112 GBd × 1/4 λ) |
|---|---|
| Amdahl bound for removing the 8 adds of a butterfly | 1.4× |
| Equal-area speed-up, w=17, recombine 0 add/plane | 1.167× |
| Equal-area speed-up, w=17, recombine 0.25 add/plane | 0.6829× |
| Equal-area speed-up, w=32, recombine 0 add/plane | 1.167× |
| Equal-area speed-up, w=32, recombine 0.25 add/plane | 0.5× |
What this stage does
This chapter asks the question plainly: when would sending NTTs through the module make an FHE bootstrap faster than an FPGA alone? The levers are the residue width (narrower primes mean fewer bit planes per butterfly but more limbs), the baud rate, the number of wavelengths, how expensive a modular multiply is relative to an add on the FPGA (r), and whether the NTTs go to the module entirely or are split with the FPGA.
How it’s modelled
Two experiments answer it. At the kernel level (experiment 7), a radix-4 butterfly on the FPGA costs (3 + 1)·r + 8 add-equivalents; the optical core removes the 8 adds but needs w symbol slots per butterfly and a shift-and-add recombination of w bit planes on the FPGA, at 0.25 adds illustrative per plane and output. At the bootstrap level (experiment 9) the recorded OpenFHE kernels are mapped onto FPGA, HBM, module and port for each design point. The explorer reads those precomputed results; it does not run either model.
Data table
| width (bits) | 14GBd x1 | 56GBd x1 | 112GBd x1 | 112GBd x4 | FPGA k=1 | FPGA k=16 |
|---|---|---|---|---|---|---|
| 8 | 1.698 × 10⁹ | 6.79 × 10⁹ | 1.358 × 10¹⁰ | 5.432 × 10¹⁰ | 4 × 10⁸ | 6.4 × 10⁹ |
| 16 | 8.488 × 10⁸ | 3.395 × 10⁹ | 6.79 × 10⁹ | 2.716 × 10¹⁰ | 4 × 10⁸ | 6.4 × 10⁹ |
| 17 | 7.988 × 10⁸ | 3.195 × 10⁹ | 6.391 × 10⁹ | 2.556 × 10¹⁰ | 4 × 10⁸ | 6.4 × 10⁹ |
| 24 | 5.658 × 10⁸ | 2.263 × 10⁹ | 4.527 × 10⁹ | 1.811 × 10¹⁰ | 4 × 10⁸ | 6.4 × 10⁹ |
| 32 | 4.244 × 10⁸ | 1.698 × 10⁹ | 3.395 × 10⁹ | 1.358 × 10¹⁰ | 4 × 10⁸ | 6.4 × 10⁹ |
| 40 | 3.395 × 10⁸ | 1.358 × 10⁹ | 2.716 × 10⁹ | 1.086 × 10¹⁰ | 4 × 10⁸ | 6.4 × 10⁹ |
| 48 | 2.829 × 10⁸ | 1.132 × 10⁹ | 2.263 × 10⁹ | 9.053 × 10⁹ | 4 × 10⁸ | 6.4 × 10⁹ |
| 55 | 2.469 × 10⁸ | 9.876 × 10⁸ | 1.975 × 10⁹ | 7.901 × 10⁹ | 4 × 10⁸ | 6.4 × 10⁹ |
Data table
| r = mul/add cost | Amdahl bound (8 adds removed) | w=17, recombine 0 | w=17, recombine 0.25 | w=32, recombine 0 | w=32, recombine 0.25 |
|---|---|---|---|---|---|
| 3 | 1.667 | 1.25 | 0.6061 | 1.25 | 0.4167 |
| 4 | 1.5 | 1.2 | 0.6486 | 1.2 | 0.4615 |
| 5 | 1.4 | 1.167 | 0.6829 | 1.167 | 0.5 |
| 6 | 1.333 | 1.143 | 0.7111 | 1.143 | 0.5333 |
| 7 | 1.286 | 1.125 | 0.7347 | 1.125 | 0.5625 |
| 8 | 1.25 | 1.111 | 0.7547 | 1.111 | 0.5882 |
| 9 | 1.222 | 1.1 | 0.7719 | 1.1 | 0.6111 |
| 10 | 1.2 | 1.091 | 0.7869 | 1.091 | 0.6316 |
What we found
At the paper’s operating point the module does not pay. One wavelength at 14 GBd matches about 1.997 FPGA butterfly units on 17-bit operands. Removing the adds can give at most 1.667× (r = 3) to 1.2× (r = 10) per butterfly, and with recombination at its default cost the equal-area hybrid reaches 0.6829× of one butterfly unit; kernel break-even needs recombination at or below 0.05882 add/plane.
On a real bootstrap, below break-even everywhere the port allows. The best swept point with the module behind its QSFP56 port reaches 0.06774× (sparse16) and 0.09602× (full14), with the return port binding. Raising the baud does not help: the width sweep is identical at every baud because the port is already full.
What would have to change. All of these at once: much higher baud × wavelengths (the crossing appears at 112 GBd × 8 λ), narrow residues (28 bits), near-free recombination, a cheap FPGA multiply relative to an add (r = 3), and a port about 34.76 times wider. Then the speed-up is 1.098× (sparse16) and 1.064× (full14), against Amdahl ceilings of 1.858× and 1.402×: barely past break-even, because NTTs are only part of the bootstrap.
Energy points the same way: charging the module’s static power (9.7 W paper) to its throughput gives 35,779 pJ per transform against 56 pJ on the FPGA.
Data table
| width (bits) | hybrid 14 GBd, k=1 | hybrid 112 GBd x4, no recombine cost | FPGA only |
|---|---|---|---|
| 8 | 27,870 | 314.9 | 56 |
| 16 | 34,900 | 581.8 | 56 |
| 17 | 35,780 | 615.1 | 56 |
| 24 | 41,930 | 848.7 | 56 |
| 32 | 48,970 | 1,116 | 56 |
| 40 | 56,000 | 1,382 | 56 |
| 48 | 63,030 | 1,649 | 56 |
| 55 | 69,180 | 1,883 | 56 |
What would need measured data
The break-even conditions rest on illustrative FPGA costs: the multiply/add ratio, the recombination cost per plane, the logic per butterfly unit and the energy per add. They also assume the module sustains its symbol rate behind a port with framing at 0.97 illustrative. Measured FPGA resource and power figures for the post-processing, the module’s sustained throughput through a real port, and its power split would move the numbers. A complete sweep over all five levers would need the simulator re-run and re-vendored; the explorer only shows the slices that were computed.