|
|
Message-ID: <4BF27EDA.7090809@banquise.net>
Date: Tue, 18 May 2010 13:49:46 +0200
From: bartavelle@...quise.net
To: john-users@...ts.openwall.com
Subject: Re: C compiler generated SSE2 code
Le 18/05/2010 01:32, Solar Designer a écrit :
> Can you upload it to the wiki, please?
>
> http://openwall.info/wiki/john/patches
Done, but I made a quick git patch.
>> gcc 15696
>> icc 32364
>> clang 19644
>
> It's a bit weird that gcc performs so poorly here. I am getting
> near-perfect SSE2 code for bitslice DES (an unreleased revision of the
> source code) with gcc 4.5.0. With properly tweaked compiler options
> (primarily to control function inlining), it slightly outperforms the
> hand-crafted SSE2 assembly code currently in JtR, in fact.
GCC actually performs a tad better when computing 2 groups of 4
passwords at once instead of 3. I did set 3 for 64 bit mode because it
was faster with icc.
I added printf("round %d\n", round); round++; between each MD5 round to
easily differentiate them.. I tweaked the arch.h a bit too, so here are
the actual benchs (without printf), and sample compiled code (with printf):
gcc : 10944
clang : 18186
icc : 27160
http://bigbox.banquise.net/jtr/gcc-4.3.2
http://bigbox.banquise.net/jtr/clang-103935
http://bigbox.banquise.net/jtr/icc-10.1
This does speak for itself :) The icc does disentangle the whole stuff,
but is still faster with 3 loops (only 2 in the sample).
Do you mind giving bench of your SSE code with ICC ? Or just share it so
that I could try it :)
> http://gcc.gnu.org/onlinedocs/gcc-4.5.0/gcc/Statement-Exprs.html
I didn't knew about them and will investigate further.
>> gcc version 4.3.2 (Debian 4.3.2-1.1)
>
> You could want to try 4.5.0 (build it from source).
To be honest, when I found that gcc 4.4.3 performed SIGNIFICANTLY slower
than 4.3.2 on this, I just gave up on it. I'll eventually try.
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.