Skip to content
This repository has been archived by the owner on Apr 29, 2024. It is now read-only.

Releases: zama-ai/concrete-numpy

v1.0.0-rc2

02 Mar 13:37
v1.0.0-rc2
Compare
Choose a tag to compare
v1.0.0-rc2 Pre-release
Pre-release

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

  • Bump compiler to v0.24.0-rc5 (a07e0a1)
  • Improve graph formatting with float bounds (7e4d2cb)
  • Bump numpy and scipy for python 3.8 and onwards (dd9fe31)
  • Raise error if tracers are tried to be converted to bool (8d89614)

v0.11.1

28 Feb 14:11
v0.11.1
Compare
Choose a tag to compare

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

24 Feb 11:39
v1.0.0-rc1
Compare
Choose a tag to compare
v1.0.0-rc1 Pre-release
Pre-release

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

v0.11.0

16 Feb 16:40
v0.11.0
Compare
Choose a tag to compare

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

31 Jan 10:17
v0.10.0
Compare
Choose a tag to compare

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

  • Add key-value database tutorial (2b897fb)
  • Improve wording and titles in readme (#64) (eb11f31)

v0.9.1

06 Jan 12:28
Compare
Choose a tag to compare

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

21 Dec 15:19
Compare
Choose a tag to compare

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

  • Document some of the new features, improve the parts of the old documentation (5a8fe7c)
  • Document show optimizer configuration option (02ec19c)
  • Language edits (1888dd7)
  • Import GitBook#53 No subject (c5e4361)
  • Update README.md (2f39536)

v0.8.0

03 Oct 09:08
Compare
Choose a tag to compare

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

  • Fix documentation of static indexing execution test module (710ee34)
  • Improve installation instructions (4178e82)
  • Remove tutorials badge from readme, fix link to contributing badge, use repo readme in pypi (318a171)
  • Last update from Gitbook (5bc0ff4)

v0.7.0

02 Sep 07:28
Compare
Choose a tag to compare

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

v0.6.0

31 Aug 13:49
Compare
Choose a tag to compare

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