> I
> modified the 'Configure' script to allow the compilation of a 32bit
> version of openssl *with* the assembly routines.

What does it mean? Configure supports 32-bit builds *with* assembly as
it is. To build 32-bit version on 64-bit Linux, run './Configure
linux-elf -m32'.

> The results for this
> version are on various Intel CPUs
> 
> Core2 E6550 (Conroe):  22 - 32 % speed up
> Xeon E5440 (Harpertown): 24 - 33% speed up
> Xeon X5660 (Westmere-EP): 19 - 27% speed up
> i5-560M (Arrandale): 18 - 23 % speed up

What are the ranges? If we assume that largest coefficient is for
largest block size, then these are too high. What is the base line
exactly? Is it possible that you compare to compiler-generated code?

> Note that for the i5-560M the unpatched 64bit version still outperforms
> the patched 32bit version....
> 
> How can the sha256 patch be applied to the 64bit code base?

You have to realize that there is limit for performance. I'm not
actually asserting that it's reached in SHA256 case, but there is no
doubt that 64-bit code is [much] closer to it. This means that you can't
expect comparable improvement coefficients (for integer-only code).

On side note. You mentioned that you tested 1.0.0. It should be noted
that 1.0.1 has updated sha512-x86_64 module that performs ~15% better on
Nehalem [and Atom], nominally better on other Intel CPUs. There also is
simple way to boost performance specifically on Sandy Bridge. There also
is pending submission from Intel that features SIMD operation for X[]
calculations...

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [email protected]

Reply via email to