poulpyFully homomorphic encryption
GitHub ↗Get started →
Menu

Benchmarks

Latency by scheme
and backend.

Compare measured performance across schemes, operations, and hardware backends. Each run names the hardware it was measured on; inspect its parameters, precision, and execution settings.

Fastest run767 msNEON / Rayon · 18 threads · Apple M5 Pro
Parameter setN = 216Restored levels: 16 at scale 2³⁵
Configurations095 backend families
Sampling20 runsAfter 3 warm-up bootstraps
CKKS bootstrapping · S2C-first

Latency by backend

Reproduce it ↗Lower is better ↓

Median bootstrap latency · AMD Ryzen 9 9950X and Apple M5 Pro · hardware shown per run

Preset n16_d35_k720_p19_s2cParameters
Ring dimension N
65,536 (2¹⁶)
Complex values per bootstrap
32,768 (2¹⁵)
Secret Hamming weights
Dense 1,024 · Sparse 32
Max. ciphertext modulus
1,382 bits
Max. modulus including keys
Dense 1,680 · Sparse 120 bits
01Portable1 thread · Ryzen 9 9950X
35 s
02AVX2 / FMA1 thread · Ryzen 9 9950X
12.3 s
03AVX-5121 thread · Ryzen 9 9950X
9.63 s
04NEON1 thread · Apple M5 Pro
5.66 s
05AVX-512 / IFMA1 thread · Ryzen 9 9950X
4.29 s
06AVX2 / FMA / Rayon16 threads · Ryzen 9 9950X
2.96 s
07AVX-512 / Rayon16 threads · Ryzen 9 9950X
2.78 s
08AVX-512 / IFMA / Rayon16 threads · Ryzen 9 9950X
1.66 s
09NEON / Rayon18 threads · Apple M5 Pro
767 ms
GPUIn development

Results pending

08.76 s17.5 s26.3 s35 s

Select a backend row to inspect its hardware, configuration and precision. Speedup is relative to the single-thread portable backend for the same pipeline on the same hardware.

BackendHardwareTransformMedianSpreadSpeedupVersion

Reading the results

Compare the configuration, too.

Compare the same pipeline and preset, and account for the hardware and thread count: the runs were not all measured on the same host, and each row names its own. Each configuration has 20 measured iterations after three warm-ups. Timings include bootstrapping and return to application scale 2³⁵; setup, key generation, encryption and decryption are excluded.

Latency is the median; spread is median absolute deviation divided by median. Speedup compares each configuration with the single-thread portable backend for the same pipeline on the same hardware; it is not given where that backend was not measured on that host. These results were measured with Poulpy v0.9.0.

The GPU backend is in development, and Binary FHE results are not yet available. Pending results are excluded from rankings and configuration counts.