mirror of
https://github.com/luxfhe/torus.git
synced 2026-10-30 17:07:26 +00:00
Forked from upstream concrete (BSD-3-Clause-Clear, © 2024 ZAMA) at HEAD
ecb729bb. Modifications copyright © 2026 Lux Industries Inc.
Rebranding scope:
- Python module concrete → torus (across frontends/torus-python)
- Rust module concrete-* → torus-* (across frontends/torus-rust)
- MLIR dialect concretelang → toruslang (across compilers/torus-compiler)
- Compiler optimizer concrete-optimizer → torus-optimizer
- Backend concrete-cpu / concrete-cuda → torus-cpu / torus-cuda
- Wire protocol concrete-protocol → torus-protocol
- Parameter-curves concrete-security-curves-* → torus-security-curves-*
- Public symbols concretelib → toruslib, ConcreteLang → TorusLang
- URLs github.com/zama-ai/concrete → github.com/luxfhe/torus
- URLs docs.zama.ai/concrete → docs.luxfhe.com/torus
Legal compliance:
- LICENSE.txt retains original Copyright © 2024 ZAMA verbatim (§1-§2)
- LICENSE.txt adds modifications copyright © 2026 Lux Industries Inc.
- §3 endorsement clause: Torus is marketed exclusively as a Lux product;
no Zama name used in README, docs, or marketing
- NOTICE file provides factual attribution per legal best practice
(not endorsement; required by upstream BSD-3-Clause-Clear)
README + NOTICE rewritten from scratch with Lux brand:
- Quick-start in Python (torus.fhe)
- Architecture diagram showing the gen-1 vtbl integration path
(luxcpp/gpu → lux-private/gpu-kernels for CUDA/Metal/WebGPU)
- Scheme coverage table: TFHE (luxfi/fhe), CKKS/BGV/BFV (luxfi/lattice)
- Lux FHE family table: Torus / TorusVM / TorusEVM / TorusML / TorusNet
Known limitations (phase-2A scope):
- PyPI package torus-fhe not yet published; the torus Python module
is renamed structurally but pip-installable distribution is a
follow-up (Phase 2A.1)
- MLIR dialect rename is text-level; the compiler-internal LLVM
rebuild (concrete-compiler-internal-llvm-project submodule) is
structural and works; tablegen files renamed concrete→torus but the
generated .inc files in the source tree will regenerate at build
time
- backends/torus-cuda/implementation/ is an upstream submodule
pointer to the tfhe-rs source (not fetched in the staging clone);
the CUDA backend body is delivered out-of-tree
- ~100 test-fixture variable names like concrete_encoded_sample
retain "concrete" as a math term (vs symbolic); these are inside
tests/, not the public API; cleanup is a follow-up commit
- 295 Python `from concrete import ...` residuals in luxfhe/ml-sdk
consumer remain; that repo's import update is Phase 2B
This commit is the seed for the luxfhe/torus repo. Push as the first
commit to a fresh GitHub repo; do not re-import upstream Zama git
history.
147 lines
7.4 KiB
Plaintext
147 lines
7.4 KiB
Plaintext
security level: 192
|
|
target p_error: 6.3e-5
|
|
per precision and log norm2:
|
|
|
|
- 1: # bits
|
|
-ln2: k, N, n, br_l,br_b, ks_l,ks_b, cost, p_error
|
|
- 0 : 2, 10, 867, 1, 17, 3, 3, 81, 6.1e-5
|
|
- 1 : 2, 10, 868, 1, 17, 3, 3, 81, 6.3e-5
|
|
- 2 : 2, 10, 874, 1, 17, 3, 3, 82, 5.7e-5
|
|
- 3 : 2, 10, 909, 1, 17, 3, 3, 85, 6.2e-5
|
|
- 4 : 2, 10, 867, 2, 11, 3, 3, 117, 5.9e-5
|
|
- 5 : 2, 10, 867, 2, 11, 3, 3, 117, 6.0e-5
|
|
- 6 : 2, 10, 868, 2, 11, 3, 3, 117, 5.9e-5
|
|
- 7 : 2, 10, 871, 2, 11, 3, 3, 117, 6.1e-5
|
|
- 8 : 3, 10, 902, 1, 23, 3, 3, 119, 6.3e-5
|
|
- 9 : 3, 10, 940, 1, 23, 3, 4, 124, 6.3e-5
|
|
- 10: 2, 10, 833, 3, 8, 5, 2, 153, 5.5e-5
|
|
- 11: 2, 10, 909, 3, 8, 5, 2, 166, 6.3e-5
|
|
- 12: 3, 10, 894, 2, 15, 3, 3, 170, 6.0e-5
|
|
- 13: 3, 10, 894, 2, 15, 3, 3, 170, 6.2e-5
|
|
- 14: 3, 10, 895, 2, 15, 3, 3, 171, 6.3e-5
|
|
- 15: 3, 10, 900, 2, 15, 3, 3, 171, 6.3e-5
|
|
- 16: 3, 10, 857, 2, 15, 5, 2, 174, 6.0e-5
|
|
- 17: 3, 10, 842, 3, 12, 5, 2, 220, 5.5e-5
|
|
- 18: 3, 10, 843, 3, 12, 5, 2, 221, 5.5e-5
|
|
- 19: 3, 10, 847, 3, 12, 5, 2, 222, 6.0e-5
|
|
- 20: 3, 10, 875, 3, 12, 5, 2, 229, 5.9e-5
|
|
- 21: 3, 10, 846, 4, 9, 5, 2, 271, 5.5e-5
|
|
- 22: 3, 10, 863, 4, 9, 5, 2, 276, 6.0e-5
|
|
- 23: 3, 10, 852, 5, 8, 5, 2, 323, 5.5e-5
|
|
- 24: 3, 10, 928, 5, 8, 6, 2, 356, 6.3e-5
|
|
- 25: 3, 10, 857, 7, 6, 5, 2, 425, 5.6e-5
|
|
- 26: 3, 10, 879, 8, 5, 5, 2, 487, 6.2e-5
|
|
- 27: 3, 10, 869, 11, 4, 5, 2, 634, 6.3e-5
|
|
- 28: 3, 10, 911, 14, 3, 6, 2, 830, 6.3e-5
|
|
- 29: 3, 10, 868, 43, 1, 11, 1, 2292, 6.3e-5
|
|
# no solution starting from log norm2 = 30
|
|
|
|
- 2: # bits
|
|
-ln2: k, N, n, br_l,br_b, ks_l,ks_b, cost, p_error
|
|
- 0 : 2, 10, 961, 1, 17, 3, 4, 89, 5.5e-5
|
|
- 1 : 2, 10, 965, 1, 17, 3, 4, 90, 5.5e-5
|
|
- 2 : 2, 10, 943, 1, 17, 4, 3, 91, 6.2e-5
|
|
- 3 : 2, 10, 918, 2, 11, 4, 3, 127, 5.6e-5
|
|
- 4 : 2, 10, 918, 2, 11, 4, 3, 127, 5.8e-5
|
|
- 5 : 2, 10, 919, 2, 11, 4, 3, 127, 5.3e-5
|
|
- 6 : 2, 10, 921, 2, 11, 4, 3, 127, 5.8e-5
|
|
- 7 : 3, 10, 980, 1, 23, 3, 4, 128, 6.3e-5
|
|
- 8 : 3, 10, 1000, 1, 23, 3, 4, 131, 6.0e-5
|
|
- 9 : 2, 10, 927, 3, 8, 4, 3, 166, 6.3e-5
|
|
- 10: 3, 10, 934, 2, 15, 4, 3, 183, 5.8e-5
|
|
- 11: 3, 10, 934, 2, 15, 4, 3, 183, 5.8e-5
|
|
- 12: 3, 10, 934, 2, 15, 4, 3, 183, 6.0e-5
|
|
- 13: 3, 10, 935, 2, 15, 4, 3, 183, 5.6e-5
|
|
- 14: 3, 10, 937, 2, 15, 4, 3, 184, 6.3e-5
|
|
- 15: 3, 10, 950, 2, 15, 4, 3, 186, 6.3e-5
|
|
- 16: 3, 10, 934, 3, 12, 4, 3, 238, 6.2e-5
|
|
- 17: 3, 10, 935, 3, 12, 4, 3, 238, 6.3e-5
|
|
- 18: 3, 10, 940, 3, 12, 4, 3, 239, 5.9e-5
|
|
- 19: 3, 10, 969, 3, 12, 4, 3, 246, 6.1e-5
|
|
- 20: 3, 10, 938, 4, 9, 4, 3, 294, 6.3e-5
|
|
- 21: 3, 10, 921, 4, 9, 6, 2, 299, 5.8e-5
|
|
- 22: 3, 10, 909, 5, 8, 6, 2, 349, 6.3e-5
|
|
- 23: 3, 10, 912, 6, 7, 6, 2, 403, 5.6e-5
|
|
- 24: 3, 10, 914, 7, 6, 6, 2, 458, 6.2e-5
|
|
- 25: 3, 10, 937, 8, 5, 6, 2, 524, 6.0e-5
|
|
- 26: 3, 10, 927, 11, 4, 6, 2, 681, 6.1e-5
|
|
- 27: 3, 10, 947, 15, 3, 6, 2, 918, 6.3e-5
|
|
- 28: 3, 10, 915, 44, 1, 12, 1, 2474, 6.3e-5
|
|
# no solution starting from log norm2 = 29
|
|
|
|
- 3: # bits
|
|
-ln2: k, N, n, br_l,br_b, ks_l,ks_b, cost, p_error
|
|
- 0 : 2, 10, 987, 1, 17, 4, 3, 95, 5.7e-5
|
|
- 1 : 2, 10, 1021, 1, 17, 4, 3, 98, 6.3e-5
|
|
- 2 : 2, 10, 980, 2, 11, 4, 3, 135, 6.0e-5
|
|
- 3 : 2, 10, 980, 2, 11, 4, 3, 135, 6.2e-5
|
|
- 4 : 2, 10, 981, 2, 11, 4, 3, 135, 5.9e-5
|
|
- 5 : 2, 10, 984, 2, 11, 4, 3, 135, 6.2e-5
|
|
- 6 : 3, 10, 1005, 1, 23, 4, 3, 137, 5.6e-5
|
|
- 7 : 3, 10, 999, 1, 23, 6, 2, 148, 6.2e-5
|
|
- 8 : 2, 10, 994, 3, 8, 4, 3, 177, 5.7e-5
|
|
- 9 : 3, 10, 998, 2, 15, 4, 3, 195, 6.0e-5
|
|
- 10: 3, 10, 998, 2, 15, 4, 3, 195, 6.1e-5
|
|
- 11: 3, 10, 998, 2, 15, 4, 3, 195, 6.3e-5
|
|
- 12: 3, 10, 999, 2, 15, 4, 3, 195, 6.2e-5
|
|
- 13: 3, 10, 1003, 2, 15, 4, 3, 196, 6.0e-5
|
|
- 14: 3, 10, 1024, 2, 15, 4, 3, 200, 6.2e-5
|
|
- 15: 3, 10, 999, 3, 12, 4, 3, 253, 5.6e-5
|
|
- 16: 3, 10, 1000, 3, 12, 4, 3, 254, 6.0e-5
|
|
- 17: 3, 10, 1007, 3, 12, 4, 3, 255, 5.9e-5
|
|
- 18: 3, 10, 1010, 3, 12, 7, 2, 274, 6.1e-5
|
|
- 19: 3, 10, 1005, 4, 9, 4, 3, 314, 5.6e-5
|
|
- 20: 3, 10, 999, 4, 9, 6, 2, 324, 6.2e-5
|
|
- 21: 3, 10, 978, 5, 8, 6, 2, 374, 6.2e-5
|
|
- 22: 3, 10, 982, 6, 7, 6, 2, 434, 6.1e-5
|
|
- 23: 3, 10, 987, 7, 6, 6, 2, 493, 6.0e-5
|
|
- 24: 3, 10, 1019, 8, 5, 7, 2, 575, 6.1e-5
|
|
- 25: 3, 10, 1001, 11, 4, 7, 2, 741, 6.1e-5
|
|
- 26: 3, 10, 998, 21, 2, 7, 2, 1323, 6.0e-5
|
|
- 27: 3, 10, 993, 44, 1, 13, 1, 2690, 6.1e-5
|
|
# no solution starting from log norm2 = 28
|
|
|
|
- 4: # bits
|
|
-ln2: k, N, n, br_l,br_b, ks_l,ks_b, cost, p_error
|
|
- 0 : 2, 10, 1024, 2, 11, 14, 1, 181, 6.1e-5
|
|
- 1 : 2, 10, 1024, 2, 11, 14, 1, 181, 6.1e-5
|
|
- 2 : 1, 11, 1016, 2, 11, 6, 2, 190, 5.8e-5
|
|
- 3 : 1, 11, 1017, 2, 11, 6, 2, 190, 6.0e-5
|
|
- 4 : 1, 11, 1023, 2, 11, 6, 2, 191, 6.3e-5
|
|
- 5 : 1, 11, 1014, 2, 11, 13, 1, 218, 6.1e-5
|
|
- 6 : 1, 11, 1020, 3, 8, 6, 2, 247, 6.2e-5
|
|
- 7 : 1, 11, 1016, 3, 8, 7, 2, 250, 6.2e-5
|
|
- 8 : 1, 11, 1008, 4, 7, 7, 2, 303, 5.7e-5
|
|
- 9 : 1, 11, 1021, 4, 7, 13, 1, 331, 6.2e-5
|
|
- 10: 2, 11, 1019, 2, 15, 13, 1, 370, 5.7e-5
|
|
- 11: 2, 11, 1020, 2, 15, 13, 1, 370, 6.2e-5
|
|
- 12: 2, 11, 1022, 2, 15, 14, 1, 379, 5.6e-5
|
|
- 13: 2, 11, 1019, 3, 12, 13, 1, 459, 5.5e-5
|
|
- 14: 2, 11, 1019, 3, 12, 13, 1, 459, 6.3e-5
|
|
- 15: 2, 11, 1023, 3, 12, 13, 1, 461, 6.0e-5
|
|
- 16: 2, 11, 1019, 4, 9, 13, 1, 549, 5.9e-5
|
|
- 17: 2, 11, 1021, 4, 9, 13, 1, 550, 6.0e-5
|
|
- 18: 2, 11, 1020, 5, 8, 13, 1, 639, 6.1e-5
|
|
- 19: 2, 11, 1021, 5, 8, 14, 1, 648, 6.1e-5
|
|
- 20: 2, 11, 1023, 6, 7, 14, 1, 739, 5.7e-5
|
|
- 21: 2, 11, 1024, 7, 6, 14, 1, 830, 6.2e-5
|
|
- 22: 2, 11, 1022, 10, 4, 14, 1, 1098, 6.3e-5
|
|
- 23: 2, 11, 1020, 14, 3, 14, 1, 1454, 6.1e-5
|
|
- 24: 2, 11, 1022, 22, 2, 14, 1, 2175, 6.1e-5
|
|
# no solution starting from log norm2 = 25
|
|
|
|
- 5: # bits
|
|
# no solution at all
|
|
|
|
- 6: # bits
|
|
# no solution at all
|
|
|
|
- 7: # bits
|
|
# no solution at all
|
|
|
|
- 8: # bits
|
|
# no solution at all
|
|
|
|
- 9: # bits
|
|
# no solution at all
|