Releases: zama-ai/concrete-numpy
v1.0.0-rc2
Summary
This patch release brings newer versions of numpy and scipy for Python 3.8 and later. Concrete Compiler is also updated with a fix on 16-bit table lookups.
Links
Docker Image: zamafhe/concrete-numpy:v1.0.0-rc2
PyPI Package: https://pypi.org/project/concrete-numpy/1.0.0-rc2
v1.0.0-rc2
Feature
v0.11.1
Summary
This patch release brings newer versions of numpy and scipy for Python 3.8 and later. Concrete Compiler is also updated with a fix on 16-bit table lookups.
Links
Docker Image: zamafhe/concrete-numpy:v0.11.1
PyPI Package: https://pypi.org/project/concrete-numpy/0.11.1
v1.0.0-rc1
Summary
First release candidate for v1.0.0 of Concrete Numpy, comes with errors on branching attempts instead of unexpected behavior and removed virtual
option. Every circuit has simulate
functionality now, regardless of virtual option.
Links
Docker Image: zamafhe/concrete-numpy:v1.0.0-rc1
PyPI Package: https://pypi.org/project/concrete-numpy/1.0.0-rc1
v1.0.0-rc1
Feature
- Raise error if tracers are tried to be converted to bool (
8d89614
)
Refactor
- Remove virtual option (
3bbb0c2
)
v0.11.0
Summary
The new version of Concrete Numpy comes with comparison and bitwise operations between encrypted integers, more accurate error simulation for virtual circuits, a more refined interface for virtual circuits and simulation.
Links
Docker Image: zamafhe/concrete-numpy:v0.11.0
PyPI Package: https://pypi.org/project/concrete-numpy/0.11.0
v0.11.0
Feature
- Overhaul virtual circuits (
d595e9e
) - Improve accuracy of p_error simulation in virtual circuits (
6567613
) - Implement bitwise and comparison operators (
e126a11
)
Fix
- Mlir conversion of np.integer slices during indexing and assignment (
840c0eb
)
Documentation
- Fix a typo in rounded table lookup tutorial (
96f9c54
)
v0.10.0
Summary
Concrete Numpy v0.10.0 comes with the latest version of Concrete Compiler, support for np.squeeze
operator, and an advanced Key-Value Database Tutorial, and a few quality of life improvements!
Links
Docker Image: zamafhe/concrete-numpy:v0.10.0
PyPI Package: https://pypi.org/project/concrete-numpy/0.10.0
v0.10.0
Feature
- Bump compiler to v0.23.4 (
2e7e527
) - Bump torch to v1.13.1 (
9976299
) - Add support for np.squeeze (
8564930
) - Allow unused arguments to be present to simplify development (
0c47085
)
Fix
- Use less confusing defaults for p error configurations (
0c4dbe7
) - Update outdated documentation of sanitize signed inputs helper (
9cb8e30
)
Documentation
v0.9.1
Summary
Concrete Numpy v0.9.1 comes with the latest version of Concrete Compiler.
Links
Docker Image: zamafhe/concrete-numpy:v0.9.1
PyPI Package: https://pypi.org/project/concrete-numpy/0.9.1
v0.9.1
Feature
- Bump compiler to v0.23.2 (
3cb80b7
)
v0.9.0
Summary
The new version of Concrete NumPy comes with improved performance, 16-bit integer support, a new compilation API, and lot's of other improvements!
Links
Docker Image: zamafhe/concrete-numpy:v0.9.0
PyPI Package: https://pypi.org/project/concrete-numpy/0.9.0
v0.9.0
Feature
- Add error probability properties to circuits (
b842bb6
) - Make p_error simulation in virtual circuits faster and a bit more realistic (
39958cf
) - Make both p error and global p error optional (
1472c8f
) - Bump compiler to v0.23.1 (
df8d34a
) - Allow fine-grained control on verbosity settings (
a25ba9b
) - Support up to 16-bit signed integers with table lookups (
23337e9
) - Bump compiler to v0.22.1 (
6376c8e
) - Consider p_error in virtual circuits (
702375f
) - Introduce tag extension, create integer range getter for graphs, allow filtering in integer bit width getter (
25b9a59
) - Create auto adjust rounders configuration option (
2b84def
) - Introduce auto rounders (
ccd3f9a
) - Introduce round bit pattern extension for virtual circuits (
c552a95
) - Introduce maxpool extension for virtual circuits (
cb9cbb0
) - Support multiplication between two encrypted values in virtual circuits (
3de24a8
) - Improve fusing related error messages (
f0014dc
) - Support axes kwarg for np.transpose (
a262408
) - Bump compiler to v0.21.0 (
821c61e
) - Add support for np.expand_dims (
d6ba763
) - Introduce 'global_p_error' configuration (
ea34aeb
) - Support up to 16-bit table lookups (
21a0923
) - Bump compiler to 0.20.0 (
191150b
) - Introduce circuit decorator to directly define circuits (
66c707c
)
Fix
- Allow explicitly setting axis to None in np.sum (
416ca69
) - Use proper dtype for bias during convolution (
58689d5
) - Correctly transfer sign information in direct definition (
0827cb9
) - Use builtin math instead of numpy for log2 and ceil to avoid overflow issues (
bac9792
) - Use pads arg for torch evaluation (
5f07a72
) - Adhere to ONNX spec of kernel_shape (
7901d88
)
Documentation
v0.8.0
Summary
The new version of Concrete NumPy comes with improved performance, support for more python versions, and lot's of new operations!
Links
Docker Image: zamafhe/concrete-numpy:v0.8.0
PyPI Package: https://pypi.org/project/concrete-numpy/0.8.0
v0.8.0
Feature
- Add various properties about the circuit (
593abc6
) - Bump compiler to v0.19.0 (
f37175e
) - Support python 3.10 (
0cfceaa
) - Allow saving servers via MLIR (
0528228
) - Support unsigned levelled operations on large bit-widths (
7415dd0
) - Bump compiler to v0.17.0 (
514780f
) - Support assignments to tensors (
ef7e0d7
) - Allow broadcast_to operation on scalars (
48014ed
) - Support python 3.7 (
ecb70e2
) - Support grouped conv2D (
0aadb4a
) - Support all kinds of subtraction operations (
039a632
) - Support passing plain arrays to encrypt (
09dde30
) - Detect invalid values during bounds measurement (
d50b2c1
) - Add support for np.broadcast_to (
e398a4f
) - Cache constant operations during MLIR conversion (
a608912
) - Create array extension (
078512d
) - Add option to print optimizer output (
83f18e2
)
Fix
- Perform keygen if necessary before decrypting to avoid manual keygens (
ba3ea5f
) - Resolve integration issues with the new compiler (
6c6e657
) - Reduce number of retries to 1 for tlu tests (
a0f167a
)
Documentation
v0.7.0
Summary
The new version of Concrete NumPy, comes with support for signed inputs, support for more numpy functions, rewrite of the doc, and a few bug fixes.
Links
Docker Image: zamafhe/concrete-numpy:v0.7.0
PyPI: https://pypi.org/project/concrete-numpy/0.7.0
v0.7.0
Feature
- Support signed inputs (
a6b09dd
) - Add support for np.ndarray.round() method (
11819fc
) - Add encrypted zeros and ones functions (
57aae5a
) - Raise proper error if function being compiled returns something unsupported (
59cacc3
) - Allow multiple graphs with the same name in debug artifacts (
53e5dda
) - Improve messages of parameter status and inputset related errors (
68e9ada
)
Fix
- Allow generator inputsets again (
5a06576
) - Don't draw large graphs in artifacts (
0a85731
) - Make artifacts truly optional to improve performance for large graphs (
1cc5b57
) - Don't allow signed clear inputs as tlu cannot be applied to them, add more signed input tests (
1e86c3b
) - Properly determine lca during fusing (
ce1712c
)
Documentation
- Re-write documentation (
35e46ac
)
v0.6.0
Summary
The new version of Concrete NumPy comes with the rewrite of the entire code base for easier maintenance and development. Some breaking changes are introduced to the API along the process. Please refer to the documentation at https://docs.zama.ai/concrete-numpy/ to learn about the new API.
Here are some of the highlights of this release:
- Re-write the entire project from scratch to improve architecture and reduce technical debt
- Move the docs to GitBook instead of Sphinx
- Introduce virtual lib for simulation without compilation
- Perform library compilation instead of JIT compilation by default
- Create client-server architecture for deployment
- Allow configuration of PBS error probability
- Improve fusing logic for certain operations (e.g.,
np.where
) - Provide
cnp.univariate
extension to allow wrapping arbitrary deterministic univariate functions to a table lookup easily - Support
np.sum
- Support
np.concatenate
- Support
np.transpose
- Support
np.ones_like
- Support
np.zeros_like
- Support
np.around
Links
Docker Image: zamafhe/concrete-numpy:v0.6.0
PyPI: https://pypi.org/project/concrete-numpy/0.6.0