- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I wrote a small MD5 test program as below:
-----------------------------
#include
#define BUFSIZE 1024*16
static unsigned char buf[BUFSIZE];
int main(int argc, char **argv)
{
IppsMD5State ctx;
unsigned char digest[MD5_DIGEST_LENGTH];
int data_size = 16*1024;
int i, num_iterations = 1000000;
if (argc > 1) {
data_size = atoi(argv[1]);
num_iterations = atoi(argv[2]);
}
ippsMD5Init(&ctx);
for (i = 0; i < num_iterations; i++) {
ippsMD5Update(buf, data_size, &ctx);
}
ippsMD5Final(digest, &ctx);
}
-------------------------------
However, when I compiled it, I got the error below:
# make
gcc -I/opt/intel/ipp/5.1/em64t/include md5test.c
md5test.c: In function `main':
md5test.c:10: error: storage size of 'ctx' isn't known
make: *** [md5_speed_test] Error 1
I searched all the header files under /opt/intel/ipp/5.1/em64t/include,
and I saw ippcp.h has:
typedef struct _cpMD5 IppsMD5State;
but 'struct _cpMD5' is not defined anywhere. Did I miss something?
Thanks,
Chi-Chang Lin
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
This is a reply to myself :-)
After reading the doc more carefully, I found that I need to use
ippsMD5GetSize(&ctx_size)
to get the context size and malloc one.
thanks,
Chi-Chang Lin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Chi-Chang
yes, sometimes documentation can help:)
Please let us know your feeling regarding IPP functionality and performance. What do you find useful, what do you think is missed? What you want to be improved?
Regards,
Vladimir
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Vladimir,
I compared the MD5 in IPP with that in OpenSSL 0.9.8e, and I found that OpenSSL 0.9.8e has 3% advantage on a Woodcrest box. The OpenSSL MD5 implementation was from
http://etud.epita.fr/~bevand_m/papers/md5-amd64.html
Do you have more insight on this?
thanks,
Chi-Chang
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Chi-Chang,
What version of IPP do you use? How do you link IPP into your application, statically or dynamically? What was operation system and hardware platform you run test on? Do you get stable results? Usually, when you measure performance, results can fluctuate a bit, especially in multitasking environment, so accuracy of measurement is important.
Regards,
Vladimir
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I used IPP 5.1
The test program was linked dynamically as this:
gcc -I/opt/intel/ipp/5.1/em64t/include md5_test.c -o md5_test -L/opt/intel/ipp/5.1/em64t/sharedlib -l ippcpem64t -l ippcoreem64t -l guide -l pthread
The OS was RHEL with kernel 2.6.18. Hw platform was Dell PowerEdge 2950 with Woodcrest core.
This was a single-tjhreaded test program (as in my first post; differnt APIs were used for OpenSSL and for IPP). Results were stable and consistent.
thanks,
Chi-Chang
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Chi-Chang,
our experts were able to reproduce the issue, we working on it, thanks for reporting.
Regards,
Vladimir
![](/skins/images/872293744008A34B36F8ABF94A46CC66/responsive_peak/images/icon_anonymous_message.png)
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page