- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
링크가 복사됨
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Hi Jyothi,
which OpenSSL version you are using, and what is the benchmark tool?
Thanks,
Chao
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
I just tested with the IPP OpenSSL sample code with IPP 6.1 update 3 sample. IPP patched OpenSSL is better than the original code. See attached for the performance result.
How are you linking with Intel IPP? If you are dynamically linking with IPP, please note some function are internally threaded. I set the following environment to avoid the threading problem ( or I can see some performance issue in the Hypterthreading system in my test).
> export KMP_AFFINITY=granularity=fine,compact,1,0
> export OMP_NUM_THREADS=1
Regards,
Chao
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Hi Chen Chen,
Have you noticed these two articles on AES benchmark?
http://software.intel.com/en-us/articles/boosting-openssl-aes-encryption-with-intel-ipp/
The first one includes some benchmark steps, and the second is one common issue.
Thanks,
Chao
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Hi,
It seems that I am reopening an old question, comparing once again OpenSSL with Intel IPP. I am interested in performance of RSA key pair generation comparing Intel IPP and OpenSSL. My tests show once again that OpenSSL version outperforms Intel IPP Crypto libraries. My testing methodology is defined as follows:
int runs = 10; int repetitions = 10; myInt64 values[repetitions]; measurement_init(); for (int i = 0; i < repetitions; ++i) { measurement_start(); for (int j = 0; j < runs; ++j) { status = ippsRSA_GenerateKeys( pSrcPublicExp, pModulus, pPublicExp, pPrivateExp, privateKey, scratchBuffer, nTrials, primeGen, ippsPRNGen, randomGen ); } measurement_stop(); meas_values = meas_values / runs; } measurement_finish(values); qsort(values, meas_i, sizeof(myInt64), cmpMyInt64); printf("%4d : %llu\n", bitsRSA, values[repetitions / 2]);
- Compile the code using icpc composer_xe_2015.0.077 on OS X Yosemite 10.10.5, running Intel(R) Core(TM) i7-3720Q CPU @ 2.60 GHz (Ivy Bridge). OpenSSL version is 1.0.2d (9 Jul 2015).
- Compile the code using icpc composer_xe_2015.0.090 on Debian 8.3, running Intel(R) Xeon(R) CPU E3-1285L v3 @ 3.10GHz. OpenSSL version is 1.1.0-pre4 (beta) 16 Mar 2016
- Compile the code using -O3 -xHost -no-multibyte-chars, and conisder single core implementation only.
- Use RDTSC as a timing infrastructure
- Run each of the RSA generation functions 10 times, and average the runtimes.
- Repeat each 10 runs for 10 times, and take the median runtime as the final measure.
Obtained results are available bellow:
More information detailing this short experiment is available here, and the timing code is available here.
How different is the Intel IPP version of RSA key generation algorithm (ippsRSA_GenerateKeys) compared to OpenSSL (RSA_generate_key)? Can we expect improvements in the newer versions of Intel IPP Cryptography libraries ?
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Allen,
Thanks for sharing the result. Here is feedback from the engineer expert:
Actually, RSA key generation was not considered as the processing function and it is not considered as the major functions that need to be optimized.
The main computation functions for the RSA is the RSA_Decrypt and RSA_Encrypt. Did you test them as well?
thanks,
Chao
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Chao,
My focus was the RSA key generation only, and I did not look into RSA_Encrypt / RSA_Decrypt functions. I acknowledge the fact that ippsRSA_GenerateKeys is not a processing function, however I had the impression that Intel IPP aims at optimizing all functions that are part of IPP.
Thanks for the explanation,
Alen
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Hi,
I'm exploring ways to integrate Intel Ipp cryptography optimizations in the Android BoringSSL Framework. (BoringSSL is a fork of OpenSSL).
I was looking for reference/results and found these two articles in this post. But both of these redirect to ipp crypto reference. (https://software.intel.com/en-us/ipp-crypto-reference-2019). If anyone has the below articles, can you please send it to me or post it here ?
http://software.intel.com/en-us/articles/boosting-openssl-aes-encryption.
http://software.intel.com/en-us/articles/performance-of-crypto-sample-fo.
Thanks in Advance.
