<div dir="ltr"><div class="m_2807092552910165809gmail-body m_2807092552910165809gmail-undoreset" id="m_2807092552910165809gmail-yui_3_16_0_ym19_1_1486116436224_222798" style="display:table;width:1188px;box-sizing:border-box;padding-top:12px;padding-left:0px;color:rgb(0,0,0);font-family:"helvetica neue","segoe ui",helvetica,arial,"lucida grande",sans-serif;font-size:13px"><div class="m_2807092552910165809email-wrapped" id="m_2807092552910165809gmail-yui_3_16_0_ym19_1_1486116436224_222797" style="display:table-cell;width:auto;word-wrap:break-word;word-break:break-word"><div id="m_2807092552910165809gmail-yiv9242732826"><div id="m_2807092552910165809gmail-yui_3_16_0_ym19_1_1486116436224_222796"><div id="m_2807092552910165809gmail-yui_3_16_0_ym19_1_1486116436224_222795" style="font-family:helveticaneue,"helvetica neue",helvetica,arial,"lucida grande",sans-serif;font-size:10px"><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_20998"><span style="font-family:helveticaneue,"helvetica neue",helvetica,arial,"lucida grande",sans-serif">  Is big number montogomery multiplication as optimized as it can be for ARM64 as compared to X86-64 from the latest openssl github ?</span><br></div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_20998">  We are not seeing vmull ( or pmull/pmull2) instructions in <a href="http://armv8-mont.pl" target="_blank">armv8-mont.pl</a>.      </div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_20998">  </div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_20998">   On an ARM cortex-A72 (1GHz)  and E5-2620 (2.1 Ghz)  we are seeing an order of 10 difference in RSA signing perf for 2048 bit keys.</div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_20998"><br></div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_20998"><br></div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_20998">  Ran</div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_20998"><br></div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_20998">          openssl speed rsa2048</div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_20998"><br></div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_20998"><br></div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_20998"><div id="m_2807092552910165809gmail-yui_3_16_0_ym19_1_1486116436224_224711"><span id="m_2807092552910165809gmail-yui_3_16_0_ym19_1_1486116436224_224710">Here are the openssl speed numbers.</span></div><div id="m_2807092552910165809gmail-yui_3_16_0_ym19_1_1486116436224_222789"><br clear="none"></div><div id="m_2807092552910165809gmail-yui_3_16_0_ym19_1_1486116436224_224718"><span id="m_2807092552910165809gmail-yui_3_16_0_ym19_1_1486116436224_224717"><b>x86-64</b></span></div><div id="m_2807092552910165809gmail-yui_3_16_0_ym19_1_1486116436224_224709"><br clear="none"></div><div id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_24474"><span id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_24475">[root@nuosrv2 openssl]# ./apps/openssl speed rsa2048 </span></div><div id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_24476"><span id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_24477">Doing 2048 bit private rsa's for 10s: 13134 2048 bit private RSA's in 9.97s</span></div><div id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_24478"><span id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_24479">Doing 2048 bit public rsa's for 10s: 379019 2048 bit public RSA's in 9.98s</span></div><div id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_24480"><span id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_24481">OpenSSL 1.1.1-dev  xx XXX xxxx</span></div><div id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_24482"><span id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_24483">built on: reproducible build, date unspecified</span></div><div id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_24484"><span id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_24485">options:bn(64,64) rc4(16x,int) des(int) aes(partial) idea(int) blowfish(ptr) </span></div><div id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_24486"><span id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_24487">compiler: gcc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/usr/local/<wbr>ssl\"" -DENGINESDIR="\"/usr/local/<wbr>lib64/engines-1.1\""  -Wa,--noexecstack</span></div><div id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_24488"><span id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_24489">                  sign    verify    sign/s verify/s</span></div><div></div><div dir="ltr" id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_24490"><span id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_24491"><b>rsa 2048 bits 0.000759s 0.000026s   1317.4  37977.9</b></span></div><div dir="ltr" id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_24490"><br clear="none"></div><div dir="ltr" id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_24490"><br clear="none"></div><div dir="ltr" id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_24490"><b>arm64:</b></div><div dir="ltr" id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_24490"><br clear="none"></div><div id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_26424"><span id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_26425">[root@juno openssl]# ./apps/openssl speed rsa2048</span></div><div id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_26426"><span id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_26427">Doing 2048 bit private rsa's for 10s: 1319 2048 bit private RSA's in 9.92s</span></div><div id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_26428"><span id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_26429">Doing 2048 bit public rsa's for 10s: 49209 2048 bit public RSA's in 9.93s</span></div><div id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_26430"><span id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_26431">OpenSSL 1.1.1-dev  xx XXX xxxx</span></div><div id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_26432"><span id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_26433">built on: reproducible build, date unspecified</span></div><div id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_26434"><span id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_26435">options:bn(64,64) rc4(char) des(int) aes(partial) idea(int) blowfish(ptr) </span></div><div id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_26436"><span id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_26437">compiler: gcc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DVPAES_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/usr/local/<wbr>ssl\"" -DENGINESDIR="\"/usr/local/<wbr>lib/engines-1.1\""  -Wa,--noexecstack</span></div><div id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_26438"><span id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_26439">                  sign    verify    sign/s verify/s</span></div><div dir="ltr" id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_24490"></div><div dir="ltr" id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_26440"><span id="m_2807092552910165809gmail-yiv3156397569yui_3_16_0_ym19_1_1486076254258_26441"><b>rsa 2048 bits 0.007521s 0.000202s    133.0   4955.6</b></span></div><div><span><br></span></div><div><span><br></span></div></div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_20998"><br></div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_20998">   <b id="m_2807092552910165809gmail-yui_3_16_0_ym19_1_1486116436224_222804"> ARM64 heavy hitters</b></div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_20998"><br></div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_20998"> <span id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21230" style="font-family:menlo;font-size:11px"> </span></div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_20998"><span style="font-family:menlo;font-size:11px"><br></span></div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21293"><span id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21294">    69.70%  openssl        libcrypto.so.1.1         [.] __bn_sqr8x_mont</span></div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21295"><span id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21296">    18.64%  openssl        libcrypto.so.1.1         [.] __bn_mul4x_mont</span></div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21297"><span id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21298">     4.92%  openssl        libcrypto.so.1.1         [.] MOD_EXP_CTIME_COPY_FROM_PREBUF</span></div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_20998"></div><div dir="ltr" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"><span id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21300">     1.50%  openssl        libcrypto.so.1.1         [.] bn_mul_add_words</span></div><div dir="ltr" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"><span><br></span></div><div dir="ltr" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"><span><br></span></div><div dir="ltr" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"><span id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21309">   <b> x86-64 heavy hitters</b></span></div><div dir="ltr" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"><span><br></span></div><div dir="ltr" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"><span>      </span><span id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21374" style="font-family:menlo;font-size:11px">    </span></div><div dir="ltr" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"><span style="font-family:menlo;font-size:11px"><br></span></div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21420"><span id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21421">    30.93%  openssl          libcrypto.so.1.1         [.] __bn_sqrx8x_reduction</span></div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21422"><span id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21423">    17.65%  openssl          libcrypto.so.1.1         [.] bn_sqrx8x_internal</span></div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21424"><span id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21425">    12.65%  openssl          libcrypto.so.1.1         [.] mulx4x_internal</span></div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21426"><span id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21427">     8.91%  openssl          libcrypto.so.1.1         [.] bn_mul_add_words</span></div><div dir="ltr" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"></div><div dir="ltr" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21428"><span id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21429">     7.14%  openssl          libcrypto.so.1.1         [.] bn_mulx4x_mont</span></div><div dir="ltr" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"><span style="font-family:menlo;font-size:11px"><br></span></div><div dir="ltr" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"><span style="font-family:menlo;font-size:11px"><br></span></div><div dir="ltr" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"><span id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21482" style="font-family:menlo;font-size:11px">Code looks different between x86 and ARM64. Is it due to the ISA or ARM64 not yet catching up with</span></div><div dir="ltr" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"><span id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21501" style="font-family:menlo;font-size:11px">super efficient X86-64.</span></div><div dir="ltr" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"><span style="font-family:menlo;font-size:11px"><br></span></div><div dir="ltr" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"><font face="Menlo" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21542"><span id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21541" style="font-size:11px">Basically are we stuck with 1:5 (if we extrapolate A72 to 2Ghz) or is there an optimal code that</span></font></div><div dir="ltr" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"><font face="Menlo" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21574"><span id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21573" style="font-size:11px">we need to pick up for ARM64.  I compiled openssl from github (latest).</span></font></div><div dir="ltr" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"><font face="Menlo"><span style="font-size:11px"><br></span></font></div><div dir="ltr" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"><font face="Menlo"><span style="font-size:11px"><br></span></font></div><div dir="ltr" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"><div id="m_2807092552910165809gmail-yui_3_16_0_ym19_1_1486116436224_224711" style="font-family:helveticaneue,"helvetica neue",helvetica,arial,"lucida grande",sans-serif"><br></div></div><div dir="ltr" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"><font face="Menlo"><span style="font-size:11px"><br></span></font></div><div dir="ltr" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"><font face="Menlo"><span style="font-size:11px"><br></span></font></div><div dir="ltr" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"><font face="Menlo" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21591"><span id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21590" style="font-size:11px">Any pointers will be extremely helpful.</span></font></div><div dir="ltr" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"><font face="Menlo"><span style="font-size:11px"><br></span></font></div><div dir="ltr" id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"><font face="Menlo"><span style="font-size:11px"><br></span></font></div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"><font face="Menlo"><span style="font-size:11px">Thanks,</span></font></div><div id="m_2807092552910165809gmail-yiv9242732826yui_3_16_0_ym19_1_1486076254258_21299"><font face="Menlo"><span style="font-size:11px">-vijay</span></font></div></div></div></div></div></div></div>