Custom Optimization flags

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Custom Optimization flags

John-757
Hey guys,

I've got a couple of quick questions regarding building openSSL with
custom compiler optimization flags. I'm attempting to optimize the
builds of some select OS components specifically for the Intel Atom
under Linux, (I'm using the 2.6.37 kernel, glibc 2.13, binutils 2.21,
gcc 4.5.2; my toolchain has been optimized mostly with the CFLAGS='-O3
-fomit-frame-pointer -march=atom -mtune=atom') and am wondering the
following:

  * How sensitive is it that the openSSL testsuite (make test) will
detect incorrect aggressive compiler optimizations? My guess as to an
answer is 'very', given the size of the testsuite, and the sensitivity
to incorrect data that the crypto problem-space exhibits.
  * Can the openSSL build system detect the specific x86 extensions that
a given processor supports, and include the relevant asm code? (This may
be done at run-time dynamically instead, but how does the library know
what the fastest code path should be?)
  * Does OpenSSL 1.0.0d have a code-path for the Atom?
  * Does anyone else have any experience involving tuning OpenSSL for
the Atom? If so, I'd like to hear the specifics of your results in
optimizing for this processor. If you have had any experience, I'd
encourage you to share your results either on-list or privately.
  * (probably more of a question for the dev list): openssl does not
have a parallel-build-safe build system... Is there a way to benchmark
multi-threaded processors & multi-core processors using the test-suite
that makes use of every possible execution path? This would be a
remarkably useful (synthetic) benchmark for real-world crypto
performance on various architectures.

Provided that I had a bit of direction and support, I'd be willing to
add it to the test suite in small patches. I *would* need to know more
than I currently know about crypto though :)

For those wondering, this is the compile line I'm using with gcc 4.5.2:
        gcc -fPIC -DOPENSSL_PIC -DZLIB_SHARED -DZLIB
        -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN \
        -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3 -march=atom \
        -mtune=atom -fomit-frame-pointer -pipe -Wall
        -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2
        -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
        -DMD5_ASM -DRMD160_ASM -DAES_ASM -DWHIRLPOOL_ASM

For those wondering, I'm seeing test suite run-times of about 2 + 1/4
minutes to run using single-thread execution on an atom.

Thanks for your help,
John
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    [hidden email]
Automated List Manager                           [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Custom Optimization flags

Eric S. Eberhard-2
In real life I have found various optimizations to cause more trouble
than not, and to not really change real-world performance.  Unless
you are in a hard loop encrypting/decrypting I don't think anyone
will notice.  I do 10s of thousands of encryption/decryption calls
each day and they add no noticeable change to performance.  If it
becomes a hassle, my advise, don't bother. Eric

At 11:24 PM 4/14/2011, you wrote:

>Hey guys,
>
>I've got a couple of quick questions regarding building openSSL with
>custom compiler optimization flags. I'm attempting to optimize the
>builds of some select OS components specifically for the Intel Atom
>under Linux, (I'm using the 2.6.37 kernel, glibc 2.13, binutils 2.21,
>gcc 4.5.2; my toolchain has been optimized mostly with the CFLAGS='-O3
>-fomit-frame-pointer -march=atom -mtune=atom') and am wondering the
>following:
>
>   * How sensitive is it that the openSSL testsuite (make test) will
>detect incorrect aggressive compiler optimizations? My guess as to an
>answer is 'very', given the size of the testsuite, and the sensitivity
>to incorrect data that the crypto problem-space exhibits.
>   * Can the openSSL build system detect the specific x86 extensions that
>a given processor supports, and include the relevant asm code? (This may
>be done at run-time dynamically instead, but how does the library know
>what the fastest code path should be?)
>   * Does OpenSSL 1.0.0d have a code-path for the Atom?
>   * Does anyone else have any experience involving tuning OpenSSL for
>the Atom? If so, I'd like to hear the specifics of your results in
>optimizing for this processor. If you have had any experience, I'd
>encourage you to share your results either on-list or privately.
>   * (probably more of a question for the dev list): openssl does not
>have a parallel-build-safe build system... Is there a way to benchmark
>multi-threaded processors & multi-core processors using the test-suite
>that makes use of every possible execution path? This would be a
>remarkably useful (synthetic) benchmark for real-world crypto
>performance on various architectures.
>
>Provided that I had a bit of direction and support, I'd be willing to
>add it to the test suite in small patches. I *would* need to know more
>than I currently know about crypto though :)
>
>For those wondering, this is the compile line I'm using with gcc 4.5.2:
>         gcc -fPIC -DOPENSSL_PIC -DZLIB_SHARED -DZLIB
>         -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN \
>         -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3 -march=atom \
>         -mtune=atom -fomit-frame-pointer -pipe -Wall
>         -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2
>         -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
>         -DMD5_ASM -DRMD160_ASM -DAES_ASM -DWHIRLPOOL_ASM
>
>For those wondering, I'm seeing test suite run-times of about 2 + 1/4
>minutes to run using single-thread execution on an atom.
>
>Thanks for your help,
>John
>______________________________________________________________________
>OpenSSL Project                                 http://www.openssl.org
>User Support Mailing List                    [hidden email]
>Automated List Manager                           [hidden email]


Eric S. Eberhard
(928) 567-3727          Voice
(928) 567-6122          Fax
(928) 301-7537                           Cell

Vertical Integrated Computer Systems, LLC
Metropolis Support, LLC

For Metropolis support and VICS MBA Support!!!!    http://www.vicsmba.com

Pictures of Snake in Spring

http://www.facebook.com/album.php?aid=115547&id=1409661701&l=1c375e1f49

Pictures of Camp Verde

http://www.facebook.com/album.php?aid=12771&id=1409661701&l=fc0e0a2bcf

Pictures of Land Cruiser in Sedona

http://www.facebook.com/album.php?aid=50953&id=1409661701

Pictures of Flagstaff area near our cabin

http://www.facebook.com/album.php?aid=12750&id=1409661701

Pictures of Cheryl in a Horse Show

http://www.facebook.com/album.php?aid=32484&id=1409661701


Pictures of the AZ Desert

http://www.facebook.com/album.php?aid=58827&id=1409661701

(You can see why we love this state :-) )








______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    [hidden email]
Automated List Manager                           [hidden email]