Concrete Numpy Versions Save

Concrete-Numpy: A library to turn programs into their homomorphic equivalent.

v1.0.0-rc2

1 year ago

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.

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

1 year ago

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.

Docker Image: zamafhe/concrete-numpy:v0.11.1 PyPI Package: https://pypi.org/project/concrete-numpy/0.11.1

v1.0.0-rc1

1 year ago

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.

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

1 year ago

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.

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

1 year ago

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!

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

1 year ago

Summary

Concrete Numpy v0.9.1 comes with the latest version of Concrete Compiler.

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

1 year ago

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!

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

1 year ago

Summary

The new version of Concrete NumPy comes with improved performance, support for more python versions, and lot's of new operations!

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

1 year ago

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.

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

1 year ago

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

Docker Image: zamafhe/concrete-numpy:v0.6.0 PyPI: https://pypi.org/project/concrete-numpy/0.6.0