Baptiste Roux
9ee8259002
feat(hpu): Add Hpu backend implementation
...
This backend abstract communication with Hpu Fpga hardware.
It define it's proper entities to prevent circular dependencies with
tfhe-rs.
Object lifetime is handle through Arc<Mutex<T>> wrapper, and enforce
that all objects currently alive in Hpu Hw are also kept valid on the
host side.
It contains the second version of HPU instruction set (HIS_V2.0):
* DOp have following properties:
+ Template as first class citizen
+ Support of Immediate template
+ Direct parser and conversion between Asm/Hex
+ Replace deku (and it's associated endianess limitation) by
+ bitfield_struct and manual parsing
* IOp have following properties:
+ Support various number of Destination
+ Support various number of Sources
+ Support various number of Immediat values
+ Support of multiple bitwidth (Not implemented yet in the Fpga
firmware)
Details could be view in `backends/tfhe-hpu-backend/Readme.md`
2025-05-16 16:30:23 +02:00
David Testé
67ec4a28c1
chore(bench): move benchmarks to their own crate
...
This is done to speed-up compilation duration by avoiding
recompiling tfhe each time a modification is made in a benchmark
file.
2025-05-09 13:46:27 +02:00
Arthur Meyre
d197a2aa73
chore: TFHE-rs 1.2.0
...
- update parameters deduped for classic and multi bit
2025-05-08 09:30:36 +02:00
Arthur Meyre
9be9a5d2f4
feat(shortint): add CompressedAtomicPatternServerKey
2025-05-07 09:50:16 +02:00
Nicolas Sarlin
c6a493954b
feat(shortint): insert the AP inside the ServerKey
2025-05-06 14:48:07 +02:00
David Testé
dc67ca721d
chore: update toolchain to 2025-04-28
2025-04-29 17:36:08 +02:00
Agnes Leroy
7d2a296d4d
chore(gpu): reduce testing time after parameter update
2025-03-21 15:43:37 +01:00
Arthur Meyre
11cbffb3f2
chore(ci): fix size benchmark
...
- don't expand, we have tests for that, the server key would be required
with the "new" parameters we are interested in
2025-03-21 14:37:34 +01:00
Arthur Meyre
dc9afe1146
chore: bump to 1.1 and add V1_1 parameters
...
- add aliases for tests to avoid having to upgrade too many locations
2025-03-20 17:47:18 +01:00
Arthur Meyre
b0d7bb9f95
chore: pre-generate keyswitching keys for shortint tests
...
- we run in a cross process race condition which fucks up the key file
- no rust crate seems to help and linux locks are just a fucking mess
- also avoid truncating file when we are going to write to it, get a lock
first
2025-03-07 13:27:35 +01:00
Arthur Meyre
cb7d77f59a
feat: add 2^-128 parameters
2025-02-18 13:19:28 +01:00
David Testé
7ee49387fe
chore(ci): deduplicate parameters set to send to lattice estimator
...
From SageMath point of view some tfhe-rs parameters set are
equivalent. We deduplicate those by storing their name in the tag
field. Grouping them that way we decrease analysis time
dramatically.
2025-02-13 17:10:45 +01:00
Mayeul@Zama
f74f3903e0
chore: fix new clippy lints
2025-02-07 14:56:49 +01:00
Agnes Leroy
cea871fc6b
chore(gpu): update multi-bit parameters
2025-01-16 10:23:04 +01:00
Nicolas Sarlin
a7bf1cdb43
chore(shortint): update keyswitch 1_1 to 2_2 parameters
2025-01-07 12:02:09 +01:00
Nicolas Sarlin
b6d1b5ffff
chore(shortint): update multibit gaussian parameters
2025-01-07 12:02:09 +01:00
Nicolas Sarlin
8ee1bdd9a9
chore(shortint): update classic gaussian param
2025-01-07 12:02:09 +01:00
Nicolas Sarlin
58801cf7a5
chore(shortint): update gaussian compact pk parameters
2025-01-07 12:02:09 +01:00
Nicolas Sarlin
8a795c79ac
chore(shortint): rename wopbs params to LEGACY_
2025-01-07 12:02:09 +01:00
Nicolas Sarlin
fc642c6f26
chore(zk)!: update parameters for zk v2
2024-12-16 16:00:15 +01:00
Nicolas Sarlin
381aeb572f
chore(all): remove the dependency to lazy_static
2024-12-16 11:24:20 +01:00
Arthur Meyre
3a99ee9718
chore: remove aliases for gaussian parameters for compact PK
...
- we are TUniform by default so no more aliases for gaussian parameters
2024-12-16 09:50:12 +01:00
David Testé
8b460072d3
chore(ci): check more parameters set on lattice estimator
2024-12-09 16:19:50 +01:00
Mayeul@Zama
8680e1de0a
refactor(strings): move fhe_strings from examples to strings module
2024-11-06 14:44:09 +01:00
Arthur Meyre
f497bf09a3
chore(ci): fix wasm bench parameter names
2024-10-25 16:52:22 +02:00
Mayeul@Zama
fdbe0404c1
refactor(fhe_strings): CharIter is a Vec, cleanups
2024-10-25 16:16:37 +02:00
Mayeul@Zama
1262106652
chore(fhe_strings): remove some par_bridge
2024-10-25 16:16:37 +02:00
Mayeul@Zama
d74372657e
refactor(fhe_strings): add is_empty method to FheString
2024-10-25 16:16:37 +02:00
Mayeul@Zama
27e34a835c
refactor(fhe_strings): add len function
2024-10-25 16:16:37 +02:00
Mayeul@Zama
aebc2619b2
refactor(fhe_strings): add padded param to from_uint
2024-10-25 16:16:37 +02:00
Mayeul@Zama
5056e06380
chore(fhe_strings): add encryption-decryption test
2024-10-25 16:16:37 +02:00
Mayeul@Zama
b90b20f31e
chore(fhe_strings): remove EncryptOutput
2024-10-25 16:16:37 +02:00
Mayeul@Zama
2369d02025
chore(fhe_strings): remove TrivialEncryptOutput
2024-10-25 16:16:37 +02:00
Agnes Leroy
92523d236c
chore(all): add TUniform params for GPU, make TUniform params default
...
- also remove some aliases for parameters
- stop using aliases for parameters in shortint and integer
- update test filtering
2024-10-25 14:54:16 +02:00
David Testé
9d511347f5
chore(bench): add packing keyswtich benchmarks
2024-10-24 18:10:58 +02:00
Mayeul@Zama
0dec4482b5
fix(fhe_strings): fix size error
2024-10-24 13:46:20 +02:00
Arthur Meyre
876cde1f6a
chore(doc): add make command to print parameters used in doc benchmarks
2024-10-03 13:53:52 +02:00
David Testé
212af17538
style(global): fix typos
2024-10-03 11:47:00 +02:00
David Testé
2b25b20aeb
chore(ci): fix wasm benchmark results parsing for object sizes
2024-10-03 09:17:55 +02:00
tmontaigu
45effa41d5
refactor!: gate wops behind "experimental" feature
...
This puts the WOPBS features of shortint and integer
modules behind the "experimental" feature.
Due to the versioning feature, the structs definitions
are not gated behind the "experimental" feature, however
they are only pub(crate) in that case.
2024-09-27 15:00:18 +02:00
David Testé
ea3ec8cbdd
chore(ci): write gpu parameters to file
...
This is done so that lattice estimator can check security of these
ones.
2024-09-26 09:02:06 +02:00
Arthur Meyre
43d91f512f
chore(ci): use python as webdriver for wasm test and benchmarks
...
Swtich from Jest and Puppeteer to Python with Selenium. It relies
on browser and webdriver binaries from browser fabricators.
For now the Python script only supports Chrome browser.
2024-09-25 09:11:13 +02:00
David Testé
488c942a3a
refactor(shortint): move parameters set to their own directory
...
This is done to ease automatic parameters updates.
2024-09-11 13:54:23 +02:00
Mayeul@Zama
38b5759e88
chore(all): fix new lints
2024-09-09 11:57:45 +02:00
Mayeul@Zama
8748d1cc22
chore(hlapi): remove Wop
2024-07-26 12:03:13 +02:00
David Testé
42609987a1
chore(examples): measure more shortint key sizes
2024-07-19 13:41:29 +02:00
Arthur Meyre
9242b2a725
feat(high_level_api): add casting primitives for compact public key
2024-06-20 13:24:27 +02:00
David Testé
369d6df350
chore(ci): gather more parameters pk for curve security checks
2024-06-20 08:35:37 +02:00
David Testé
6be983db34
chore(bench): refactor core_crypto benchmarks to use TUniform
2024-06-19 10:51:03 +02:00
Arthur Meyre
75e2be2ca2
chore(bench): update zk wasm benchmarks
...
- add a parameter set for wasm to benchmark relevant ZK timings
- update benchmarking code to be more flexible
2024-06-19 10:51:03 +02:00