Arthur Meyre
212dc36382
feat: emit loguru warning with reason for subgraph not fusing
...
- catches cases with more than one variable input
- catches cases where the shapes are not the same in intermediate nodes
refs #645
2021-10-28 14:36:12 +02:00
Umut
eedbe0606b
feat(tracing): implement tracing of matmul
2021-10-27 17:11:19 +03:00
Arthur Meyre
ecfde7b233
refactor(debugging): accept several highlights per node when printing
...
refs #645
2021-10-26 17:19:33 +02:00
Benoit Chevallier-Mames
9459675cfb
feat: manage signed constants
...
closes #688
closes #612
2021-10-26 10:06:15 +02:00
Arthur Meyre
624143106f
refactor(compilation): remove unnecessary check in compile.py
...
refs #645
2021-10-25 17:02:43 +02:00
Umut
65af96253b
feat(tracing): implement tracing of constant indexing
2021-10-25 13:14:29 +03:00
Umut
be453394fb
fix(compilation): raise the appropriate error for intermediate signed integers
2021-10-20 17:15:52 +03:00
Benoit Chevallier-Mames
7bf2f09615
feat: remove support for np.invert
...
remove support for np.invert and propose to the user to use bitwise_xor instead, because of impossibilities with float fusing
closes #658
2021-10-19 10:40:23 +02:00
Arthur Meyre
384026364e
test: create default_compilation_configuration fixture
...
- update test code and use it where appropriate
- remove duplicate tests that lacked correctness verification
2021-10-19 08:51:35 +02:00
Arthur Meyre
82688206f7
refactor(mlir): generate tables before converting nodes to MLIR
...
- MLIRConverter becomes an abstract base class
- pass the needed informations in an extra dict to MLIR converters
- NPMLIRConverter handles the specifics of numpy tables generation
2021-10-18 18:39:27 +02:00
Arthur Meyre
bc2ae7be47
chore: disable pylint line too long in test_compile where necessary
...
- fix pylint targets for non package dirs
2021-10-15 16:02:20 +02:00
Arthur Meyre
93e39e58f7
fix(representation): handle failure in UnivariateFunction get_table
...
- if only some values are problematic, flood fill the resulting table with
other valid values
- if no valid value was generated an AssertionError will be thrown
2021-10-15 14:17:11 +02:00
Umut
4c9c49ecd2
feat(debugging): provide a way for highlighting nodes with custom messages during printing
2021-10-15 13:06:36 +03:00
Arthur Meyre
95c48a419c
refactor(tracing): preparatory work for tensor table generation
...
- removed underlying_type_constructor from BaseDataType as it was scalar
specific and put it in values
- update inputset_eval to keep a sample of intermediate node values
- allows to get the proper value constructor to be used in
UnivariateFunction get_table and have tensors as inputs
2021-10-14 10:53:21 +02:00
Benoit Chevallier-Mames
67a9bf12ca
test: make that the tested function has integer inputs
...
functions that we compile are supposed to have integer inputs and outputs
2021-10-13 15:09:36 +02:00
Benoit Chevallier-Mames
6e79c0baf5
test(ci): more random inputs
...
more random-looking inputs in subtest_fuse_float_binary_operations_correctness and
subtest_fuse_float_unary_operations_correctness
closes #547
2021-10-13 15:09:36 +02:00
Arthur Meyre
a4da3b8210
feat(tracing): add output_idx information in edges
...
- renamed output_index to output_idx in BaseTracer
- update tracing and fusing code to manage output_idx correctly
- update OPGraph evaluate and update_values_with_bounds to manage
output_idx
- update tests checking graph validity to have output_idx set properly
- the support of actual multi-output nodes is in #81
2021-10-13 11:14:31 +02:00
Arthur Meyre
00916bcfdb
refactor: rename ArbitraryFunction to UnivariateFunction
...
- the naming has always been confusing and recent changes to the code make
this rename necessary for things to be clearer
2021-10-11 11:36:35 +02:00
Arthur Meyre
44016cc80c
feat: manage float fusing for tensors
...
- add op_attributes on ArbitraryFunction
- this works if all constants are smaller than the input tensor
- otherwise it requires more advanced code and a concatenate operator which
currently does not exist
2021-10-11 10:42:20 +02:00
Arthur Meyre
fb9cc79128
chore: make sure xfail test cases are strict
2021-10-11 10:42:20 +02:00
Benoit Chevallier-Mames
e8114cc470
feat: add management of boolean binary operators with a const scalar
...
refs #126
refs #529
2021-10-08 15:31:04 +02:00
Umut
6affa54473
feat(configuration): add option to treat warnings as errors
2021-10-07 18:40:33 +03:00
Benoit Chevallier-Mames
2da3895f1a
feat: add more bivariate operations
...
which are supported if one of the operands is a constant
refs #126
2021-10-07 16:14:07 +02:00
Umut
5fce0d2920
feat(compilation): implement MLIR conversion of constant arrays
2021-10-07 16:17:48 +03:00
Benoit Chevallier-Mames
56e0ed4a11
feat: manage binary op where one input is constant
...
feat #126
2021-10-06 17:53:52 +02:00
Umut
83ea485fe1
feat(tracing): enable implicit broadcasting for binary operations
2021-10-06 10:33:12 +03:00
Umut
003bad581a
feat(fhe_circuit): create FHECircuit class to combine operation graph and compiler engine
2021-10-04 12:23:37 +03:00
Arthur Meyre
a9d44f4758
feat(float_fusing): restrict to scalars before supporting tensors
2021-09-30 10:57:00 +02:00
Umut
c47dac833b
refactor: replace scalars with () shaped tensors, disable python list support in inputset
2021-09-29 17:55:58 +03:00
Umut
36d732b0ae
refactor: rename 'data_type' field of 'BaseValue' to 'dtype'
2021-09-29 11:51:08 +03:00
Umut
0061e01d62
feat: implement checking coherence between inputset and parameters
2021-09-24 13:49:54 +02:00
Arthur Meyre
eaf8cfb933
tests: add function for ArbitraryFunction arbitrary_func equivalence
...
- this is not perfect but pretty close to the best we can do
2021-09-23 16:57:12 +02:00
Umut
e4a06116ec
fix: inputset of test_mlir_converter for dot operation
2021-09-23 16:31:52 +03:00
Arthur Meyre
86052fa43d
chore(tools): update command line for isort to follow the 100 line length
2021-09-23 14:00:07 +02:00
Umut
441c4f9e7d
feat: check inputset size
2021-09-20 17:05:22 +03:00
Arthur Meyre
381c81b76c
refacto: remove iter usage for passing a dataset
...
- it is still supported but not required and more confusing
2021-09-15 20:07:21 +02:00
youben11
bd8dca11d5
fix(TLU): extend TLU to 2 ** bit_width elements
2021-09-14 17:57:52 +01:00
Benoit Chevallier-Mames
8522e58280
refacto: rename 'dataset' into a clear 'inputset'
...
closes #340
2021-09-14 17:31:55 +02:00
Benoit Chevallier-Mames
e78086eefa
feat: let's have a customizable assert
...
closes #245
2021-09-10 17:52:09 +02:00
Arthur Meyre
959328e0f5
chore: rename hdk to concrete first pass
2021-09-06 18:43:49 +02:00
youben11
31c1787af2
feat(mlir): conversion of dot node into MLIR
2021-09-03 08:57:07 +01:00
youben11
f686ca535a
feat(mlir): convert TensorValue inputs to MLIR
...
factorized the input type conversion of scalar values
2021-09-03 08:57:07 +01:00
Benoit Chevallier-Mames
cfe48cca15
test: add correctness tests for all supported ufunc's
...
closes #263
2021-09-02 16:00:33 +02:00
Arthur Meyre
bf2585ba0a
refacto: rename hnumpy to numpy as requested for the package imports
2021-09-02 12:20:01 +02:00
Umut
1e8debfb57
refactor: rename ClearValue/EncryptedValue to ClearScalar/EncryptedScalar
2021-09-01 15:33:19 +03:00
Umut
1fa049d914
feat: dump compilation artifacts automatically on compilation failures
2021-08-31 18:40:40 +03:00
Umut
02fbbfeaf7
test(drawing): crate test for saving the drawing
2021-08-31 18:40:40 +03:00
youben11
784158741e
feat(mlir): TLU conversion
2021-08-31 09:04:24 +01:00
Arthur Meyre
dbda93639b
dev(ir): add get_table function to ArbitraryFunction node
2021-08-31 09:04:24 +01:00
Arthur Meyre
1b489b281c
refactor: move is_equivalent to conftest.py for tests
2021-08-26 14:15:30 +02:00