Reg Speed test and Assembly code usage
Dennis Clarke
dclarke at blastwave.org
Thu Apr 4 15:43:34 UTC 2019
On 4/4/19 3:32 AM, ramakrushna mishra wrote:
> Hi,
>
> Could anyone please help me get the following information.
>
> -- How to verify that the openssl is using the assembly code ( when asm
> is enabled) instead of the c code for the algorithms ?
> -- I m observing a small degradation (2 % for 16 byte size) for des-ede3
> on openssl1.1.1 for Solaris. This might not be suggested to use the
> algorithm, but for learning purpose is there something that I can do to
> see if this can be improved.
You will see plenty of lost performance on Solaris. It is a very very
slow old platform. Also very little anyone can do to fix that.
For example here is a 15 year old Apple PowerMac :
hydra$ uname -a
FreeBSD hydra 13.0-CURRENT FreeBSD 13.0-CURRENT r344744 GENERIC powerpc
hydra$ /usr/bin/openssl version
OpenSSL 1.1.1b-freebsd 26 Feb 2019
hydra$ /usr/bin/openssl speed rsa4096
Doing 4096 bits private rsa's for 10s: 83 4096 bits private RSA's in 10.02s
Doing 4096 bits public rsa's for 10s: 5808 4096 bits public RSA's in 10.00s
OpenSSL 1.1.1b-freebsd 26 Feb 2019
built on: reproducible build, date unspecified
options:bn(64,64) rc4(int) des(int) aes(partial) idea(int) blowfish(ptr)
compiler: gcc
sign verify sign/s verify/s
rsa 4096 bits 0.120764s 0.001722s 8.3 580.8
hydra$
Here is a fairly new Oracle M3000 server :
s10sparc$ uname -a
SunOS corv 5.10 Generic_150400-64 sun4u sparc SUNW,SPARC-Enterprise
s10sparc$ /bin/sparcv9/openssl version
OpenSSL 1.0.2p 14 Aug 2018
s10sparc$ /bin/sparcv9/openssl speed rsa4096
Doing 4096 bit private rsa's for 10s: 86 4096 bit private RSA's in 10.06s
Doing 4096 bit public rsa's for 10s: 5896 4096 bit public RSA's in 10.00s
OpenSSL 1.0.2p 14 Aug 2018
built on: date not available
options:bn(64,32) md2(int) rc4(ptr,int) des(ptr,risc1,16,int)
aes(partial) blowfish(ptr)
compiler: information not available
sign verify sign/s verify/s
rsa 4096 bits 0.116977s 0.001696s 8.5 589.6
s10sparc$
An expensive Oracle Netra T4-1 is not much better.
s10sparc$ /usr/local/bin/openssl version
OpenSSL 1.1.1b 26 Feb 2019
s10sparc$ /usr/local/bin/openssl speed rsa4096
Doing 4096 bits private rsa's for 10s: 78 4096 bits private RSA's in 10.08s
Doing 4096 bits public rsa's for 10s: 8229 4096 bits public RSA's in 10.00s
OpenSSL 1.1.1b 26 Feb 2019
built on: Tue Mar 26 06:51:39 2019 UTC
options:bn(64,32) rc4(char) des(int) aes(partial) idea(int) blowfish(ptr)
compiler: /opt/developerstudio12.6/bin/cc -KPIC -m64 -Xa -g
-errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff
-xmemalign=8s -xnolibmil -xcode=pic32 -xregs=no%appl -xlibmieee -mc
-ftrap=%none -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xarch=sparc
-xdebugformat=dwarf -xstrconst -m64 -xarch=sparc -g -Xa -errfmt=error
-erroff=%none -errshort=full -xstrconst -xildoff -xmemalign=8s
-xnolibmil -xcode=pic32 -xregs=no%appl -xlibmieee -mc -ftrap=%none
-xbuiltin=%none -xunroll=1 -Qy -xdebugformat=dwarf -DFILIO_H -DB_ENDIAN
-DBN_DIV2W -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT
-DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM
-DAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -D_REENTRANT
-DNDEBUG -I/usr/local/include -D_POSIX_PTHREAD_SEMANTICS
-D_LARGEFILE64_SOURCE -D_TS_ERRNO
sign verify sign/s verify/s
rsa 4096 bits 0.129231s 0.001215s 7.7 822.9
s10sparc$
Also a dirt cheap machine built from spare parts :
fbsd_amd64$
fbsd_amd64$ uname -a
FreeBSD vesta 13.0-CURRENT FreeBSD 13.0-CURRENT r345173 GENERIC amd64
fbsd_amd64$ /usr/bin/openssl version
OpenSSL 1.1.1b-freebsd 26 Feb 2019
fbsd_amd64$ /usr/bin/openssl speed rsa4096
Doing 4096 bits private rsa's for 10s: 638 4096 bits private RSA's in 10.07s
Doing 4096 bits public rsa's for 10s: 43106 4096 bits public RSA's in 10.03s
OpenSSL 1.1.1b-freebsd 26 Feb 2019
built on: reproducible build, date unspecified
options:bn(64,64) rc4(8x,int) des(int) aes(partial) idea(int) blowfish(ptr)
compiler: clang
sign verify sign/s verify/s
rsa 4096 bits 0.015784s 0.000233s 63.4 4297.2
fbsd_amd64$
Don't go looking for performance on Solaris anymore. It isn't there.
Dennis
More information about the openssl-users
mailing list