Commit Graph

46 Commits

Author SHA1 Message Date
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
Umut
8b2efb8869 test(execution): add table lookup correctness tests 2021-10-15 16:16:32 +03: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
Benoit Chevallier-Mames
1c8c623951 test: deal with probabilistic nature of correctness tests
closes #656
refs #551
2021-10-15 13:10:15 +02:00
Arthur Meyre
a811b588c6 test: fix ldexp correctness test by changing the input type 2021-10-15 12:54:44 +02:00
Umut
73769b917e feat(compilation): provide the reason for MLIR incompatibility 2021-10-15 13:06:36 +03:00
Benoit Chevallier-Mames
12465f86ac test: check correctness of ufunc's
for the moment:
- it has no hard check of correctness for now
- some functions are not managed

ref #551
2021-10-14 19:54:31 +02: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
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
fc9fc992c8 fix(tracing): do not process already visited tracers
- some topologies triggered a bug where a tracer was visited several times
- this created duplicate edges which caused problems later in the code
- simply skip already visited tracers
- add a check to see that all edges are indeed unique
2021-10-12 15:09:58 +02:00
Benoit Chevallier-Mames
dedbde93d0 feat: get_printable_graph is more precise
get_printable_graph prints the constant if the ArbitraryFunction has a baked constant
closes #584
2021-10-12 11:43:49 +02:00
Benoit Chevallier-Mames
e8b8869ae8 feat: write %2 = Add(%0, %1) instead of %2 = Add(0, 1)
refs #601
2021-10-11 14:34:49 +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
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
Arthur Meyre
4a77d0515a feat(tracing): add test for extra args passed to ufuncs
- add comment to explain why sanitizing all args is safe for ufuncs
2021-10-07 12:01:44 +02: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
ceb23f93d5 feat(tracing): implement and test tracing of basic operations for tensors 2021-10-05 15:25:53 +03:00
Benoit Chevallier-Mames
42d5b66b69 fix: better test. 2021-09-30 10:47:27 +02:00
Benoit Chevallier-Mames
3d6baf4101 fix: fix the type 2021-09-30 10:47:27 +02:00
Benoit Chevallier-Mames
7ea39fb77d fix: clear comments 2021-09-30 10:47:27 +02:00
Benoit Chevallier-Mames
ab7cf24285 fix: pylint. 2021-09-30 10:47:27 +02:00
Benoit Chevallier-Mames
2351730cee feat: adding management of numpy.absolute
refs #126
2021-09-30 10:47:27 +02:00
Benoit Chevallier-Mames
0a758ed672 test: change a bit the way we test
to prepare modifications for more ufunc
refs #126
2021-09-30 10:47:27 +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
77690fed84 fix: generalize error message for unsupported functions 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
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
Benoit Chevallier-Mames
0a6ebf3b19 workaround: make compilation work if table output is small
this workaround will be removed once it is managed by the compiler.
closes #279
refs #412
2021-09-17 18:47:43 +02:00
Benoit Chevallier-Mames
6a83b01e92 fix: check widths are supported by concrete-lib
and if not, explain to the user
refs #139
2021-09-17 12:32:37 +02:00
Benoit Chevallier-Mames
15aeb35529 fix: dot tests were using a single-element inputset
closes #372
2021-09-17 09:37:00 +02: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
Benoit Chevallier-Mames
8522e58280 refacto: rename 'dataset' into a clear 'inputset'
closes #340
2021-09-14 17:31:55 +02:00
youben11
845558d3a5 test: dot compilation and execution 2021-09-10 13:45:22 +01:00
Arthur Meyre
6fe809aece dev: add code to have the proper data type when getting an AF table
- update BaseDataType to store the underlying type constructor e.g. int
- add helper functions to get the type constructor for constant data
- update operator graph to fill the type constructor during bounds update
- add loguru as logger
- use type constructor in ArbitraryFunction.get_table, log an info if the
type_constructor of the input was None and default to int
2021-09-09 11:16:49 +02:00
Arthur Meyre
959328e0f5 chore: rename hdk to concrete first pass 2021-09-06 18:43:49 +02:00
Benoit Chevallier-Mames
150d33ba48 feat: make get_printable_graph give correct info for np.dot
closes #204
2021-09-06 11:57:45 +02:00
youben11
0fde0ae836 fix(tests): wasn't expecting bits to be update to max 2021-09-03 08:57:07 +01:00
Arthur Meyre
9ffe9b667a refacto: fix missed renaming after bad merge 2021-09-02 14:27:19 +02:00
Arthur Meyre
bf2585ba0a refacto: rename hnumpy to numpy as requested for the package imports 2021-09-02 12:20:01 +02:00