|
Date: Sat, 7 Jul 2012 16:57:08 -0500
From: "jfoug" <jfoug@....net>
To: <john-dev@...ts.openwall.com>
Subject: MD5 timings (x96-32)
We may have some slight miss configuration within our x86-*.h arch headers.
Here are some timings (older core2)
x86-any build. (non-omp)
#define MD5_ASM 1
#define MD5_X2 0
#define MD5_IMM 1
Benchmarking: FreeBSD MD5 [32/32]... DONE
Raw: 6799 c/s real, 6808 c/s virtual
generic build
#define MD5_ASM 0
#define MD5_X2 1
#define MD5_IMM 1
Benchmarking: FreeBSD MD5 [32/32 X2]... DONE
Raw: 8245 c/s real, 8245 c/s virtual
That is about 18% faster for generic, using non-asm, X2 MD5.
Dynamic is also 5 to 15% faster for the generic build.
Now, this may not 'translate' properly for the x86-any make target, since
that build type usually is reserved only be for pre-MMX systems, and those
systems, the asm likely IS faster. However, it is NOT always the case.
Also, I think we should make changes in the x86-mmx.h and x86-sse.h, to have
these build types use MD5_X2 and not asm. The MD5crpt (and MD5aCrypt) would
be using non-asm here. The CPU would likely be 'new enough' that the X2 is
faster. The dynamic DOES use MD5_Body, and will honor X2 if it is built
that way. This will certainly speed up dynamic on the formats which have to
switch to non-SSE, or which are full time non-SSE.
We might even be able to do it with 1 include file (x86-mmx.h and x86-zny.h
and x86-sse.h), if more build targets are made. That way the user (savvy
user) would be able to pick and choose his build target. Right now we force
any non-OMP build to use the asm.
This was what was giving me the 6-13% slowdown for some of the dynamic
format, in the sse2 build, vs the generic build. It does not show up as a
difference (to the negative), for md5Crypt, due to that format using SSE
instructions. But it certainly shows up big time when the x86-any target is
compared on this system, to the generic.
Jim.
Content of type "text/html" skipped
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.