Kulisch Fixed-Point Complete Arithmetic
- Kulisch fixed-point complete arithmetic is a method that uses wide fixed-point registers to achieve exact accumulation with full FP64 accuracy in the FFT reconstruction phase.
- It reformulates Bailey decomposition reconstruction by leveraging byte-sliced integer arithmetic and carry propagation, thereby mitigating the FP64 pipeline bottleneck.
- The technique transfers critical reductions to high-throughput INT32 SIMT units, ensuring efficient 3-D FFT processing with error bounds limited to about 2 ulps.
Kulisch fixed-point complete arithmetic, in the formulation developed for the Ozaki-Bailey FFT on Blackwell-class GPUs, is a wide fixed-point exact-accumulation method used exclusively in the reconstruction stage of an emulated FP64 3-D FFT. Its role is not to accelerate FFTs in general, but to eliminate a specific reconstruction bottleneck that appears when an Ozaki Scheme II implementation of a Bailey six-step FFT is mapped onto hardware whose native FP64 vector throughput is too weak to sustain memory-roof execution. In that setting, Kulisch arithmetic becomes a “Kulisch escape route”: it reroutes the critical Phase B reduction away from the collapsed FP64 vector pipe and onto the INT32 SIMT pipeline while preserving exact accumulation and a single final rounding at readout (Matsuoka, 28 May 2026).
1. Conceptual definition and problem setting
In the relevant use case, the computational target is a full-FP64-equivalent 3-D FFT on a GPU such as NVIDIA’s B300. The motivation is architectural: B300 is described as having native FP64 vector throughput of only TFLOPS/GPU with HBM bandwidth of TB/s, whereas the native FP64 bandwidth-parity floor for FFT is
which evaluates to $12.5$ TFLOPS at $8$ TB/s. In the paper’s framing, B300 is therefore about below the native floor, so a native FP64 FFT cannot remain memory-bound (Matsuoka, 28 May 2026).
The recovery path is Ozaki Scheme II. In this framework, FP64 GEMM-like work is replaced by modular integer arithmetic over several small primes, executed on lower-precision fast hardware and reconstructed afterward. The summary equation is
with scaled integer inputs
The significance of Kulisch arithmetic emerges only after this modular decomposition has already been adopted: it is a reconstruction primitive within Ozaki-II, not a substitute for the overall emulation strategy.
The same source is explicit that the intended outcome is not strict bitwise exactness of the entire FFT pipeline, but full FP64 accuracy in the sense of exact accumulation followed by final-rounding effects bounded at the output. A recurring misconception is therefore that Kulisch arithmetic here replaces all floating-point computation. It does not. Rather, it isolates one reduction phase whose structure permits exact fixed-point accumulation and uses that structure to avoid the weak FP64 vector units.
2. Bailey decomposition and the origin of the reconstruction bottleneck
The FFT embedding is based on a Bailey six-step decomposition. For a length- 1-D FFT, the decomposition is transpose 0 length-1 column FFTs 2 twiddle multiplication 3 transpose 4 length-5 column FFTs 6 permutation. The implementation consequence is that the two small 1-D FFT stages can be expressed as dense GEMMs with DFT matrices, which makes them amenable to Ozaki/tensor-core acceleration. For 7, the natural factorization is 8 (Matsuoka, 28 May 2026).
This factorization creates the key difficulty. In the Tensor–Memory Equilibrium model, the emulated execution time is
9
where 0 is the FP64-equivalent work, 1 is memory traffic, 2 is low-precision tensor throughput, 3 is the compute expansion under emulation, 4 is the bandwidth multiplier, 5 is reconstruction latency per output, and 6 is the number of outputs reconstructed.
For the Bailey FFT, the small inner factor is 7, hence 8 for 9. With recommended 0 CRT moduli, one has 1, so 2. In the companion model, reconstruction latency 3 had amortized when 4; here it does not. The reconstruction term becomes dominant. Kulisch arithmetic becomes relevant precisely because the Bailey factorization places the FFT in a regime where the cost of reconstruction no longer disappears into the tensor-core work.
This suggests that the importance of Kulisch arithmetic is contingent rather than universal. The method is most compelling when the decomposition generates many outputs with small inner dimensions and the hardware asymmetry between weak FP64 and strong INT32 is sufficiently pronounced.
3. From recursive Garner to tensor-core Garner
The original reconstruction is recursive mixed-radix Garner: 5 with digits
6
This reconstruction costs 7 small-modulus integer work per output. The stated estimate is
8
which for 9 is about $12.5$0 INT32 ops per output. Over all Bailey outputs for a $12.5$1 FFT, the paper gives
$12.5$2
and with effective Barrett-reduced INT32 throughput of $12.5$3 TOPS on B300, the projected wall time is near $12.5$4 ms. This is identified as the first $12.5$5-roof bottleneck (Matsuoka, 28 May 2026).
To reduce that cost, the reconstruction is reformulated through the forward CRT identity
$12.5$6
The coefficients $12.5$7 are fixed for a given modulus set, so they can be byte-sliced. Let
$12.5$8
For $12.5$9, $8$0, and one writes
$8$1
so that
$8$2
This yields a two-phase decomposition. Phase A computes the $8$3 as small inner products on FP8/INT8 tensor cores. Phase B reduces
$8$4
to the final reconstructed value. Phase A is cheap; for a $8$5 FFT on B300 it is estimated at $8$6–$8$7 ms. However, without Kulisch arithmetic, Phase B remains a per-output FP64-weighted sum
$8$8
which moves the bottleneck onto the weak FP64 vector pipe. The paper estimates
$8$9
on B300. In other words, tensor-core Garner removes the 0 modular bottleneck but, absent Kulisch arithmetic, simply replaces it with an FP64 summation bottleneck.
4. Kulisch Phase B as complete arithmetic
The Kulisch reformulation observes that Phase B has an exact fixed-point structure: 1 Because 2, each term is an integer shifted to a known bit position. The accumulation can therefore be performed as an integer bit deposit plus carry propagation, with no floating-point operations in the inner loop (Matsuoka, 28 May 2026).
The dynamic-range estimate is
3
A 4-bit accumulator, implemented as 5INT32, is therefore stated to be sufficient with margin. The compile-time constants are
6
23
The stated average cost is about 4 INT32 operations per slice: one shift-left, one optional shift-right, one addcarry, and one add-with-carry into the next word. With 7, this gives
8
In the paper’s terminology, this is complete arithmetic in the Kulisch sense: the accumulation is exact and the only rounding occurs at the end. The argument is three-part. First, each term 9 is exactly representable as a bit pattern in the fixed-point accumulator. Second, the additions are integer additions and hence exact. Third, only the final integer-to-FP64 conversion introduces rounding. The paper then adds that the final conversion contributes error 0 ulp and the subsequent FP64 divide by 1 contributes another 2 ulp, for a total claimed output error of
3
A central conceptual distinction follows. Ordinary FP64 accumulation rounds at every add; Kulisch complete arithmetic aligns all terms in a wide fixed-point register and rounds only once at readout. In this setting, “complete arithmetic” therefore refers to exact reduction, not to elimination of all floating-point stages from the full FFT pipeline.
5. Performance model, parity floors, and hardware mapping
The Kulisch reformulation is designed specifically for the INT32 SIMT pipeline. That architectural placement is decisive: the weak resource on B300 is the FP64 vector pipe, whereas INT32 vector throughput remains high. The total 3-D FFT memory traffic is given as
4
so for 5,
6
At 7 TB/s, the memory roof is
8
The native operational intensity is
9
For 0, 1, so
2
The key parity floors are summarized below.
| Quantity | Expression | Value stated for 3, 4, 5 |
|---|---|---|
| Native FP64 floor | 6 | 7 TFLOPS at 8 TB/s |
| Naive Ozaki Phase-B FP64 floor | 9 | Derived for FP64 weighted Phase B |
| Kulisch INT32 sub-floor | 0 | 1 TOPS at 2 TB/s |
| Kulisch INT32 sub-floor with overlap | 3 | Factor-of-two relaxation |
| FP8 Phase-A floor | 4 | 5 PFLOPS at 6 TB/s |
The Kulisch sub-floor is obtained by equating total INT32 work 7 to the memory-roof time 8, yielding
9
At 00 TB/s, this becomes 01 TOPS. The paper states that B300 provides 02 TOPS INT32 vector throughput, exceeding the requirement by about 03, while its FP8 capability of 04 PFLOPS also exceeds the 05 PFLOPS Phase-A floor (Matsuoka, 28 May 2026).
The hardware interpretation is binary. A GPU reaches memory-roof FFT parity either by satisfying the native FP64 floor or, if it fails that condition, by satisfying both the FP8 Phase-A floor and the Kulisch INT32 sub-floor. The source names this second alternative the Ozaki-Bailey-Kulisch path.
The projected timing changes accordingly. For 06 FP64 3-D FFT on B300, the paper gives: memory roof 07 ms, native FP64 path 08 ms, recursive Garner Ozaki-Bailey 09 ms, tensor-core Garner plus naive FP64 sum 10 ms, and tensor-core Garner plus Kulisch Phase B projected at 11 ms. The Kulisch Phase B component itself is estimated as
12
or about 13–14 ms at 50–70% realistic INT32 efficiency.
6. Numerical guarantees, limitations, and broader significance
The strongest numerical claim is local to Phase B. The accumulation in the wide fixed-point register is exact; only the final integer-to-FP64 conversion and the final FP64 division by 15 round, producing a claimed total error of at most a couple of ulps. The paper characterizes this as “full fp64 accuracy,” “full fp64 precision,” and “FP64-equivalent” output, and describes it as “strictly better accuracy than naive fp64 sum.” At the same time, the source does not provide a full formal proof of bitwise equivalence to the exact-real result rounded once through all FFT stages (Matsuoka, 28 May 2026).
Several caveats delimit the claim. The wall-time result is projected rather than measured. No production library yet implements the Kulisch Phase B kernel. Cumulative twiddle roundoff at production sizes still requires empirical measurement. Ill-conditioned inputs requiring adaptive scaling are not analyzed in detail. The explicit pseudocode and range discussion are given for non-negative 16 slices, and the paper does not present a complete signed fixed-point derivation beyond that setting. A further misconception is therefore that the source provides a full signed fixed-point CRT reconstruction theory for every FFT case; it does not.
The implementation stance is also specific. No special Kulisch hardware is required. The method is presented as implementable entirely in software on standard GPU integer units using a thread-local 17INT32 accumulator, fixed compile-time shifts and word indices, add-with-carry idioms, and, where necessary, warp-level carry propagation. Register pressure is stated as feasible on Blackwell without spilling; 18 slices may stream from shared memory; and if multiple threads contribute to one output, their 160-bit accumulators can be combined by a 5-word warp.reduce.add, with roughly 25 ops/warp/output included in the 50–70% efficiency estimate.
The broader significance is programmatic but constrained. The paper generalizes the same pattern to reductions of the form
19
where 20 are small bounded integers and 21 are fixed positional weights, and derives the generalized sub-floor
22
It suggests potential relevance for Ozaki-II SpMV, ReproBLAS-like reductions, and some stencils. A plausible implication is that Kulisch complete arithmetic is being repositioned as a software primitive for accelerator-era mixed-precision emulation rather than as a requirement for specialized arithmetic hardware. Yet the fully developed use case remains narrow: the Phase B reconstruction primitive in Ozaki-Bailey FFT.
In that sense, the designation “Kulisch escape route” is exact. The method neither changes the FFT decomposition nor supersedes native FP64 where native FP64 already satisfies the bandwidth-parity condition. It is a software reformulation of a single bottlenecked reduction, chosen because the byte-sliced forward-CRT terms align naturally to fixed bit positions and because the surviving INT32 SIMT pipeline on B300 can absorb the work that the FP64 vector pipe cannot.