Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120116150312.GA19757@openwall.com>
Date: Mon, 16 Jan 2012 19:03:12 +0400
From: Solar Designer <solar@...nwall.com>
To: john-dev@...ts.openwall.com
Subject: Re: bitmaps

On Mon, Jan 16, 2012 at 06:49:09PM +0400, Solar Designer wrote:
> 1. Extract hash2 for index+1.
> 2. Extract hash1 for index.
> 3. Do bitmap lookup 1 for hash1, but don't use the value yet.
> 4. Do bitmap lookup 2 for hash2, but don't use the value yet.
> 5. Use the result of bitmap lookup 1.
> 6. Use the result of bitmap lookup 2.
> 
> This got me to 7.5M c/s for one thread (non-OpenMP build) at 10M hashes,
> as measured at the same time point as the 5.7M above.  For a longer
> running session, this reduces to 6.6M c/s presumably as less similar
> passwords are tried (lookups against the charsets in inc.c throw more of
> the bitmap out of cache?)  At 1M hashes, the speedup is very small
> (since the bitmap fits in L2 cache here).

Adding 8-way OpenMP on top of this trick, I get 24M c/s at 10M hashes,
up from 21M c/s without the above trick.

I guess scheduling more than two memory accesses per thread may provide
a little bit of further speedup.

Alexander

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.