Date: Sat, 1 Jul 2006 09:28:50 +0400 From: Solar Designer <solar@...nwall.com> To: john-users@...ts.openwall.com Subject: Re: intel c++ compiler and john I wrote: > > There should be no speedup from the use of another/better C compiler for > > DES-based crypt(3) hashes ... On Sat, Jul 01, 2006 at 01:06:37AM +0300, Ali Polatel wrote: > Yes there is no speedup for DES. > > icc: > Benchmarking: Traditional DES [64/64 BS MMX]... DONE > Many salts: 660608 c/s real, 925221 c/s virtual > Only one salt: 610726 c/s real, 852969 c/s virtual > gcc: > Benchmarking: Traditional DES [64/64 BS MMX]... DONE > Many salts: 660902 c/s real, 925633 c/s virtual > Only one salt: 604608 c/s real, 846789 c/s virtual I've got three questions/comments: 1. Why are you building for MMX and not SSE2? 2. Since both the MMX and the SSE2 implementations of bitslice DES are assembly code not affected by the C compiler choice, you could want to try "make generic" instead - but you'd need to be building for x86-64, not plain x86, in order to achieve comparable performance. 3. There appears to be quite some load on the system (this is seen from the real vs. virtual differences). Your results would be more accurate under no load. > > For MD5- and Blowfish-based crypt(3), there might be a little room for > > improvement ... Note that I was speaking of the MD5-based crypt(3) when rebuilt from plain C code (e.g., with "make generic"), not of raw MD5. For the latter, things are somewhat different since the contributed patch does not bother to use an assembly implementation. When benchmarking raw MD5 with gcc vs. icc, you've actually compared these two compilers (with their particular optimization and target CPU selection options): > icc: > Benchmarking: Raw MD5 [raw-md5]... DONE > Raw: 2685K c/s real, 3750K c/s virtual > > gcc: > Benchmarking: Raw MD5 [raw-md5]... DONE > Raw: 2581K c/s real, 3615K c/s virtual Yes, not much difference here. > OpenBSD blowfish is equal in both versions , That's because you were benchmarking assembly code. You should have used "make generic" to give the compiler a chance to produce better (or worse) code for your CPU. -- Alexander Peslyak <solar at openwall.com> GPG key ID: B35D3598 fp: 6429 0D7E F130 C13E C929 6447 73C3 A290 B35D 3598 http://www.openwall.com - bringing security into open computing environments -- To unsubscribe, e-mail john-users-unsubscribe@...ts.openwall.com and reply to the automated confirmation request that will be sent to you.
Powered by blists - more mailing lists
Powered by Openwall GNU/*/Linux - Powered by OpenVZ