Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ipcl v2.0.0 #29

Merged
merged 401 commits into from
Dec 22, 2022
Merged

Ipcl v2.0.0 #29

merged 401 commits into from
Dec 22, 2022

Conversation

skmono
Copy link
Contributor

@skmono skmono commented Nov 16, 2022

No description provided.

justalittlenoob and others added 30 commits March 24, 2022 14:58
* Fix google test/benchmark pthread missiong issue

* Code clean: remove useless function declaration
Update multiple instance/device performance features
* Added IPCL_DEBUG_DISABLE_AVX512IFMA flag for benchmark purposes
* Revised benchmark inputs init values
* Moved avx512ifma detection to root CMakeLists
Update and fixes to multiple instances/devices enablement
* Rename file names and class names(remove paillier_ prefix) (#54)

* Rename file names(remove paillier_ prefix)

* Rename class names(remove the Paillier prefix)

* Renamed key_gen to keygen

Co-authored-by: Sejun Kim <sejun.kim@intel.com>

* Refactoring applied (#55)

* Initial QAT integration work with debug traces.

* Return output/results from HE_QAT_bnModExp.

* Fix correctness bug (partial fix: 8 out of 10/perf degradation).

* Change to latest updated he_qat  tag.

* [QAT] Fix data conversion for errors exposed by CtMultiplyZeroPtTest and CtMultiplyPtArrayTest.

* Update heqat.cmake to pull from latest development branch.

* Remove debug traces.

* Enable single input QAT ModExp interface.

* Fix data conversion in BigNumber::toBin.

* Add single input interface for QAT ModExp and usage of BigNumber::toBin().

* Pre-commit fix.

* Pre-commit and clang-format fixes.

* Clean out timing code.

* Updating instructions to compile with QAT support.

* Update README.md

* Minor updates
- Switched to git ssh for heqat repo
- Automatically disables IPCL_ENABLE_OMP if IPCL_ENABLE_QAT

Co-authored-by: Pengfei Zhao <pengfei.zhao@intel.com>
Co-authored-by: Sejun Kim <sejun.kim@intel.com>
* update qat branch (#59)

* Rename file names and class names(remove paillier_ prefix) (#54)

* Rename file names(remove paillier_ prefix)

* Rename class names(remove the Paillier prefix)

* Renamed key_gen to keygen

Co-authored-by: Sejun Kim <sejun.kim@intel.com>
(cherry picked from commit 338146f)

* Refactoring applied (#55)


(cherry picked from commit 0aac79e)

Co-authored-by: Sejun Kim <sejun.kim@intel.com>

* Initial QAT integration work with debug traces.

* Return output/results from HE_QAT_bnModExp.

* Fix correctness bug (partial fix: 8 out of 10/perf degradation).

* Change to latest updated he_qat  tag.

* [QAT] Fix data conversion for errors exposed by CtMultiplyZeroPtTest and CtMultiplyPtArrayTest.

* Update heqat.cmake to pull from latest development branch.

* Remove debug traces.

* Enable single input QAT ModExp interface.

* Fix data conversion in BigNumber::toBin.

* Add single input interface for QAT ModExp and usage of BigNumber::toBin().

* Pre-commit fix.

* Pre-commit and clang-format fixes.

* Clean out timing code.

* Updating instructions to compile with QAT support.

* Update README.md

* Minor updates
- Switched to git ssh for heqat repo
- Automatically disables IPCL_ENABLE_OMP if IPCL_ENABLE_QAT

Co-authored-by: Pengfei Zhao <pengfei.zhao@intel.com>
Co-authored-by: Sejun Kim <sejun.kim@intel.com>
This reverts commit a0ecd9b. - keep QAT clean of development for now
+ Add acquire buffer interface.
+ Add release buffer interface.
+ Add bnModExp multi-threaded interface.
+ Add function to complete the request pulling mechanism from outstanding buffers.
+ Use the new outstanding buffer type.
*Major updates:
- Add BaseText PlainText CipherText classes
- Rewrite encrypt/decrypt function with PlainText/CipherText
- Rewrite all unit tests with PlainText/CipherText
- Rewrite all benchmarks with PlainText/CipherText
- Remove old EncryptedNumber class and ops.hpp/cpp file
- Add support for encryption and decryption of arbitrary length vectors
- Add support for CT+CT CT+PT CT*PT of arbitrary length vector
- Add support for CT+scalar(CT/PT) and CT*scalar(PT)
- Enable OpenMP in ippModExp

* Minor updates and Bug fixes:
- Fix decryptRAW incorrect result issue when OMP is enabled
- Fix zero padding error when using ippMBModExp
- Extend all unit test and benchmark to support arbitrary length BigNumber vector
- Updated encrypt function, removed encryptMB/SB and replaced with raw_encrypt
- Removed ipcl:: namespace from BigNumber (easier work with QAT data exchange)
- Fixed non avx512ifma modexp error

Co-authored-by: Sejun Kim <sejun.kim@intel.com>
@skmono skmono temporarily deployed to intel_workflow November 16, 2022 17:39 Inactive
@skmono skmono temporarily deployed to intel_workflow November 16, 2022 17:39 Inactive
Added feature where if ```IPCL_DETECT_CPU_RUNTIME=ON```, the library will use built-in ```/proc/cpuinfo``` parser to acquire cpu details runtime, otherwise use info gathered during CMake configure time
* Added cpu_parser feature
* Added ```IPCL_THREAD_COUNT``` maximum number of threads checker when explicitly set
* Minor typo fixes
@skmono skmono temporarily deployed to intel_workflow November 18, 2022 06:57 Inactive
@skmono skmono temporarily deployed to intel_workflow November 18, 2022 06:58 Inactive
@skmono skmono temporarily deployed to intel_workflow November 18, 2022 06:58 Inactive
@skmono skmono temporarily deployed to intel_workflow November 18, 2022 18:51 Inactive
@skmono skmono temporarily deployed to intel_workflow November 18, 2022 18:52 Inactive
@skmono skmono temporarily deployed to intel_workflow November 18, 2022 18:52 Inactive
* Refactor CI/CD process
@skmono skmono temporarily deployed to intel_workflow November 18, 2022 23:55 Inactive
@skmono skmono temporarily deployed to intel_workflow November 18, 2022 23:55 Inactive
* Add feature to use pre-installed IPP-Crypto
* Add ext_cereal dependency to avoid occasional compile error
@skmono skmono temporarily deployed to intel_workflow November 20, 2022 20:28 Inactive
@skmono skmono temporarily deployed to intel_workflow November 21, 2022 06:47 Inactive
* Replace IPCL_IPPCRYPTO_PATH with CMAKE_PREFIX_PATH
- Looks for installed IPP-Crypto on system with default locations at ${HOME}/intel and /opt/intel/ipp-crypto
- Replace /opt/intel/ipp-crypto with /opt/intel
@skmono skmono temporarily deployed to intel_workflow November 22, 2022 03:05 Inactive
@skmono skmono temporarily deployed to intel_workflow November 22, 2022 03:58 Inactive
* Major updates
  - pubkey, privkey: Refactor pubkey & privkey with shared_ptr and remove pubkey from privkey
  - Ciphertext: Support shared_ptr public key
  - keypair: refactor KeyPair structure
  - Add serialization support for BigNumber and PublicKey (PrivateKey and CipherText WIP)
  - Add GNU version check for "deprecated-copy" flag - address #40

* Minor Updates
  - unittest, benchmark, examples: Updated with smart ptr version pk, sk and keypair
  - Updated example/README markdown to reflect changes to ipcl::KeyPair and its members.
  - Minor typo fixes

Signed-off-by: Zhao Pengfei <pengfei.zhao@intel.com>
Co-authored-by: skmono <sejun.kim@intel.com>
@skmono skmono temporarily deployed to intel_workflow November 30, 2022 01:40 Inactive
@skmono skmono marked this pull request as ready for review December 22, 2022 14:04
@skmono skmono temporarily deployed to intel_workflow December 22, 2022 14:10 — with GitHub Actions Inactive
@skmono skmono temporarily deployed to intel_workflow December 22, 2022 14:10 — with GitHub Actions Inactive
@skmono skmono merged commit 21ffdca into development Dec 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants