52 Commits

Author SHA1 Message Date
Pedro Alves
37b3782ff5 chore(backend-gpu): add missing include in utils.cpp 2023-08-08 09:02:44 -03:00
Pedro Alves
b91a736cd6 fix(backend-gpu): minor fixes to the rust API 2023-07-26 10:43:43 -03:00
Pedro Alves
ae43e7ffe5 feat(backend-gpu): implement the multi-bit PBS 2023-07-11 12:25:18 -03:00
Pedro Alves
5b103acbd9 feat(backend-gpu): expose a rust API for concrete-cuda 2023-07-07 13:15:56 -03:00
Pedro Alves
a4ef7543a6 feat(backend-gpu): introduce a function to check for cooperative groups support 2023-06-27 08:48:39 -03:00
Agnes Leroy
3561b51329 bench(backend-gpu): add multi-gpu support in pbs benchmark
Remove amortized PBS bench & bench with copy as well, it is deprecated
2023-05-24 15:32:20 +02:00
Agnes Leroy
72ee8eb572 fix(backend-gpu): decrease opt values for N >= 2048 for new low lat pbs 2023-05-23 11:34:53 +02:00
Agnes Leroy
b174f81687 fix(backend-gpu): avoid warp branching in the PBS 2023-05-17 15:01:37 +02:00
Pedro Alves
43a58e1820 refactor(backend-gpu): replace the amortized PBS by the new low latency PBS in boolean gates. 2023-05-05 18:15:06 +02:00
Pedro Alves
336709a011 refactor(backend-gpu): replace the amortized PBS by the new low latency PBS in circuit bootstrap 2023-05-05 18:15:06 +02:00
Pedro Alves
dda65a4ac6 refactor(backend-gpu): implement an alternative to the low latency pbs 2023-05-05 18:15:06 +02:00
Beka Barbakadze
d57cbfd705 fix(backend-cuda): modify bit extract to work for batch lwe ciphertexts 2023-05-05 13:01:07 +02:00
Agnes Leroy
c67c246e02 fix(ci): revert "fix(ci): fix concrete-cuda ci" and fix ci properly
Install nightly Rust instead of stable
Build concrete-cpu with nightly cargo
2023-05-04 15:28:08 +02:00
Agnes Leroy
4a0c9bdf7d chore(backend-gpu): fix formatting 2023-04-28 16:51:45 -03:00
Agnes Leroy
1e8a5b0d14 fix(backend-gpu): fix cmux tree for tau > 1 2023-04-25 10:29:07 +02:00
Pedro Alves
ec5c2c93cd chore(backend-gpu): modifies the benchmark for the low latency pbs kernel to use the correct number of inputs 2023-04-24 20:52:15 +02:00
Pedro Alves
6d2bf674fe feat(backend-gpu): add a new column to the benchmark tool related to the throughput 2023-04-21 13:38:58 +02:00
Pedro Alves
681e3081e3 docs(backend-gpu): improve concrete-cuda docs regarding tests and benchmarks. 2023-04-18 08:47:44 -03:00
Pedro Alves
fa226e232f feat(backend-gpu): refactor the Wop-PBS implementation to support a wider set of parameters 2023-04-17 09:45:17 +02:00
youben11
3e0d959b12 chore(common): update repo name 2023-04-11 16:35:42 +02:00
Agnes Leroy
766df20232 chore(backend/gpu): add README file for concrete-cuda 2023-04-06 16:29:01 +02:00
Agnes Leroy
b3c1446816 bench(backend/gpu): change benchmark parameters to match tfhe-rs ones 2023-04-06 14:06:14 +02:00
Agnes Leroy
aa9147b5b7 bench(backend/gpu): reduce amount of inputs benchmarks in pbs 2023-04-03 17:49:33 +02:00
Pedro Alves
fb862e37e8 bench(backend/gpu): fixes a memory leakage and refactors the verification for the grid size of the low latency kernel 2023-04-03 17:49:33 +02:00
Agnes Leroy
74ded6c48b bench(backend|gpu): fix low latency pbs bench 2023-04-03 17:49:33 +02:00
Agnes Leroy
32bcda3a93 bench(backend/cuda): restrict the number of inputs for large poly sizes 2023-04-03 17:49:33 +02:00
Pedro Alves
c236dffdd8 chore(backend/cuda): reduces memory consumption in the bootstrap benchmark 2023-04-03 17:49:33 +02:00
Agnes Leroy
d9652b8936 bench(ci): fix concrete-cuda benchmarks 2023-04-03 17:49:33 +02:00
Beka Barbakadze
adf7adffa3 feat(backend/cuda): add tests for fft in concrete-cuda. fix shared memory mode choosing bug, when compute capability was lower than 8. 2023-03-30 11:12:08 +02:00
Pedro Alves
dab31433d9 fix(backend): fix ci after 08e8012
Google benchmark is built twice due to the new bench infrastructure for
concrete-cuda, this commit fixes it by introducing
CONCRETE_CUDA_BUILD_TESTS and CONCRETE_CUDA_BUILD_BENCHMARKS options to skip
unecessary builds.
2023-03-29 14:36:35 +02:00
Pedro Alves
08e8012061 bench(backend): add a benchmark tool for concrete-cuda 2023-03-28 10:19:57 +02:00
Agnes Leroy
573f4756fd fix(concrete_cuda): fix buffer size type in the scratches, int is not big enough 2023-03-22 15:55:15 +01:00
Quentin Bourgerie
8349d7824e chore(concrete-cpu): Move concrete-cpu implementation 2023-03-22 14:22:11 +01:00
Beka Barbakadze
b5839a3993 feat(concrete-cuda): Added classical pbs support for 2^14 polynomial size, added corresponding tests. 2023-03-20 13:10:31 +01:00
Agnes Leroy
791df21798 chore(gpu): avoid building concrete-cpu if the target already exists 2023-03-20 11:03:25 +01:00
Agnes Leroy
765f428f38 test(concrete_cuda): change cbs test to operate on vectors of inputs 2023-03-20 09:45:09 +01:00
Agnes Leroy
dff6532f2f chore(concrete_cuda): update cmake minimum version required and check cmake files formatting 2023-03-20 09:44:44 +01:00
Mayeul@Zama
1ed1f4321c fix(CI): linelint 2023-03-16 17:41:22 +01:00
Mayeul@Zama
45f5267f3d fix(CI): add newlines in end of files 2023-03-16 17:35:34 +01:00
Beka Barbakadze
9b4faaa66e feat(concrete-cuda): unroll while loop for cuda fft and ifft 2023-03-16 17:53:43 +04:00
Agnes Leroy
fbba02472f test(concrete_cuda): enhance the keyswitch test
It now tests execution on a vector of inputs. The noise is reduced so
the test is not as flaky as before.
2023-03-16 14:33:19 +01:00
Agnes Leroy
e0c52515bf fix(concrete_cuda): make sure r > 0 in the wop PBS
Sometimes the optimizer provides inconsistent parameter sets for the wop
PBS depending on how many inputs & bits to extract we're going to need
for a certain precision. This results in r < 0 and until now the
corresponding error in concrete-cuda was very hard to understand. This
commit fixes this behavior.

Also, when introducing the support for k > 1 we forgot to update the
checks on the low lat PBS. This commit also fixes them.
2023-03-16 14:00:28 +01:00
Agnes Leroy
6efe5f3a3b fix(concrete_cuda): fix cleartext mult and enhance linalg tests 2023-03-16 14:00:06 +01:00
Agnes Leroy
629e22aaac chore(concrete_cuda): fix tests, reduce test time
- Update concrete-cuda with latest commits in concrete-core
- Add C++ tests based on google test
- Run the tests in the CI with Cuda 11.8 and Cuda 11.1
- Test for many PBS/KS parameters
- Repetitions & samples are set for each parameter set in the PBS test
2023-03-16 09:30:27 +01:00
Agnes Leroy
4d82d177ab fix(concrete_cuda): add latest fixes on the tests by Pedro 2023-03-16 09:30:27 +01:00
Agnes Leroy
9d9d32da84 test(concrete_cuda): test more PBS parameters 2023-03-16 09:30:27 +01:00
Agnes Leroy
39800f2d8a test(concrete_cuda): add C++ tests to concrete-cuda 2023-03-16 09:30:27 +01:00
Agnes Leroy
7d7780bd23 fix(concrete_cuda): fix multi gpu behavior 2023-03-16 09:30:27 +01:00
Pedro Alves
5cb4e5ff4e chore(concrete_cuda): Add checks to validate inputs passed to the scratch functions 2023-03-16 09:30:27 +01:00
Mayeul@Zama
570ad78442 cleanup: remove concrete-core references 2023-03-15 10:55:13 +01:00